Is Azure a good decision for a major production application deployment?

  • Good morning,
    We are migrating databases to SQL Azure to leave the current older infrastructure.  The decisions was made to not upgrade the infrastructure.  The thought was to migrate to the new cloud technology.

    The issue we are seeing is that SQL Azure appears to be slower and more complicated.

    1.  We normally deploy major vendor applications with the vendor database.  We would normally create another database outside of the vendor database for custom tables.  However, with SQL Azure, you can't just query across databases.  You have to create elastic queries.  I am reading that you need to create shards, shard manager, a shard application and a bunch of other things.

    2.  The cross database querying with SQL Azure elastic querying seems to be a lot slower.

    Has any one deployed a major vendor application using SQL Azure as the database backend?  Does it seem to anyone that for major vendor applications that it may still be better to spin up a real good SQL Server VM on premise?

    Thanks for any opinion that you may have to share as we plan our databases deployments for this year.

    Tony

    Things will work out.  Get back up, change some parameters and recode.

  • Yes, SQL Azure's contained database model will take some getting used to, but the issue isn't just about security, there are technical reasons why this is done. In a cloud hosted environment, the infrastructure topology isn't as static as it is with on-premises databases. Databases are routinely shuffled between VMs and data centers, so joining across databases is problematic.

    1.  Work with SQL Azure by containing your user add-on tables in a separate schema rather than a separate database.
    2.  SQL Azure and on-premises are not the only two options, there is also Azure IaaS (infrastructure as a server) hosting where Microsoft provides an instance of Windows Azure upon which you provision a preconfigured non-Azure instance of SQL Server, or you can install SQL Server using your own preexisting media and license.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho

  • Eric M Russell - Wednesday, January 18, 2017 9:16 AM

    Yes, SQL Azure's contained database model will take some getting used to, but the issue isn't just about security, there are technical reasons why this is done. In a cloud hosted environment, the infrastructure topology isn't as static as it is with on-premises databases. Databases are routinely shuffled between VMs and data centers, so joining across databases is problematic.

    1.  Contain your user add-on tables in a separate schema rather than a separate database.
    2.  SQL Azure and on-premises are not the only two options, there is also Azure IaaS hosting where Microsoft provides an instance of Windows Azure upon which you provision a preconfigured non-Azure instance of SQL Server, or you can install SQL Server using your own media and license.

    Now that is a good point that I hadn't considered. 

    1.  Deploy the vendor database.
    2.  Add custom objects with a different schema which keeps the objects in the database.  However, if the vendor reloads or changes anything, custom changes aren't necessarily lost.  That is a good point.
    3.  That should help query performance by keeping the objects in the same database.

    Good point!

    Thanks.

    Things will work out.  Get back up, change some parameters and recode.

  • WebTechie - Wednesday, January 18, 2017 9:23 AM

    Eric M Russell - Wednesday, January 18, 2017 9:16 AM

    Yes, SQL Azure's contained database model will take some getting used to, but the issue isn't just about security, there are technical reasons why this is done. In a cloud hosted environment, the infrastructure topology isn't as static as it is with on-premises databases. Databases are routinely shuffled between VMs and data centers, so joining across databases is problematic.

    1.  Contain your user add-on tables in a separate schema rather than a separate database.
    2.  SQL Azure and on-premises are not the only two options, there is also Azure IaaS hosting where Microsoft provides an instance of Windows Azure upon which you provision a preconfigured non-Azure instance of SQL Server, or you can install SQL Server using your own media and license.

    Now that is a good point that I hadn't considered. 

    1.  Deploy the vendor database.
    2.  Add custom objects with a different schema which keeps the objects in the database.  However, if the vendor reloads or changes anything, custom changes aren't necessarily lost.  That is a good point.
    3.  That should help query performance by keeping the objects in the same database.

    Good point!

    Thanks.<

    Yes, confirm with the vendor if they support creation of user defined schemas and objects. I'm not sure what product this is, but not usual for a vendor to dump and reload the database practically ever, especially without advanced warning.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho

  • WebTechie - Wednesday, January 18, 2017 8:00 AM

    Good morning,
    We are migrating databases to SQL Azure to leave the current older infrastructure.  The decisions was made to not upgrade the infrastructure.  The thought was to migrate to the new cloud technology.

    The issue we are seeing is that SQL Azure appears to be slower and more complicated.

    1.  We normally deploy major vendor applications with the vendor database.  We would normally create another database outside of the vendor database for custom tables.  However, with SQL Azure, you can't just query across databases.  You have to create elastic queries.  I am reading that you need to create shards, shard manager, a shard application and a bunch of other things.

    2.  The cross database querying with SQL Azure elastic querying seems to be a lot slower.

    Has any one deployed a major vendor application using SQL Azure as the database backend?  Does it seem to anyone that for major vendor applications that it may still be better to spin up a real good SQL Server VM on premise?

    Thanks for any opinion that you may have to share as we plan our databases deployments for this year.

    Tony

    Out of interest, is the application a web app, or a desktop app, and will the app piece be on Azure or on premise? 

  • David Atkinson - Monday, January 23, 2017 3:43 PM

    WebTechie - Wednesday, January 18, 2017 8:00 AM

    Good morning,
    We are migrating databases to SQL Azure to leave the current older infrastructure.  The decisions was made to not upgrade the infrastructure.  The thought was to migrate to the new cloud technology.

    The issue we are seeing is that SQL Azure appears to be slower and more complicated.

    1.  We normally deploy major vendor applications with the vendor database.  We would normally create another database outside of the vendor database for custom tables.  However, with SQL Azure, you can't just query across databases.  You have to create elastic queries.  I am reading that you need to create shards, shard manager, a shard application and a bunch of other things.

    2.  The cross database querying with SQL Azure elastic querying seems to be a lot slower.

    Has any one deployed a major vendor application using SQL Azure as the database backend?  Does it seem to anyone that for major vendor applications that it may still be better to spin up a real good SQL Server VM on premise?

    Thanks for any opinion that you may have to share as we plan our databases deployments for this year.

    Tony

    Out of interest, is the application a web app, or a desktop app, and will the app piece be on Azure or on premise? 

    The app is a web app.  It will be mostly hosted in SQL Azure.  However, some components will be in SQL Server 2016 on premise.

    Things will work out.  Get back up, change some parameters and recode.

  • @glenn-2 Wondering if you have started using the Azure SQL Managed Instance? Will be great to hear about your experiences with it.

    https://sqlroadie.com/

  • Eric M Russell - Wednesday, January 18, 2017 9:16 AM

    Yes, SQL Azure's contained database model will take some getting used to, but the issue isn't just about security, there are technical reasons why this is done. In a cloud hosted environment, the infrastructure topology isn't as static as it is with on-premises databases. Databases are routinely shuffled between VMs and data centers, so joining across databases is problematic.

    1.  Work with SQL Azure by containing your user add-on tables in a separate schema rather than a separate database.
    2.  SQL Azure and on-premises are not the only two options, there is also Azure IaaS (infrastructure as a server) hosting where Microsoft provides an instance of Windows Azure upon which you provision a preconfigured non-Azure instance of SQL Server, or you can install SQL Server using your own preexisting media and license.

    I'm liking the cloud less and less.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
    "Change is inevitable... change for the better is not".

    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)
    Intro to Tally Tables and Functions

  • Why no love Jeff? 🙂
    Azure SQL Managed Instance, apparently, lets you "lift and shift" and removes a lot of the restrictions previously in place for Azure SQL.

    https://sqlroadie.com/

  • Arjun Sivadasan - Sunday, April 29, 2018 10:58 PM

    Why no love Jeff? 🙂
    Azure SQL Managed Instance, apparently, lets you "lift and shift" and removes a lot of the restrictions previously in place for Azure SQL.

    Heh... let me know when they finally get it right. 😉

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
    "Change is inevitable... change for the better is not".

    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)
    Intro to Tally Tables and Functions

Viewing 10 posts - 1 through 10 (of 10 total)

You must be logged in to reply to this topic. Login to reply