Top Banner
Modernizing Your Data Platform with Hybrid IT A Closer Look at SQL Server in the Microsoft Cloud Story
30
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Modernizing your data platform   hybrid it - final

Modernizing Your Data

Platform with Hybrid IT

A Closer Look at SQL Server in the Microsoft

Cloud Story

Page 2: Modernizing your data platform   hybrid it - final

Contents

Copyright Information ...................................................................................................... 3

Hybrid IT – Your Database Anywhere ............................................................................. 4

Hybrid IT - A Portfolio View of Database Applications .............................................................................4

Traditional Bare Metal Deployment...................................................................................................................................... 5

Cloud Deployment – Public Cloud, Private Cloud........................................................................................................... 5

The Microsoft Public Cloud and SQL Server ................................................................... 9

Why & When Cloud Deployment Makes Sense ..........................................................................................9

SQL Server in a Windows Azure Virtual Machine ............................................................................................................ 9

Windows Azure SQL Database .............................................................................................................................................12

Delivering on Common Cloud Scenarios ...................................................................... 16

SQL Server in Windows Azure Virtual Machine Scenarios ..................................................................... 16

Windows Azure SQL Database Scenarios ................................................................................................... 24

Hybrid Scenarios ................................................................................................................................................ 27

Hybrid IT and SQL Server Delivering Choice ................................................................ 30

01

Page 3: Modernizing your data platform   hybrid it - final

Copyright Information © 2012 Microsoft Corporation. All rights reserved. This document is provided "as-is." Information and

views expressed in this document, including URL and other Internet Web site references, may change

without notice. You bear the risk of using it. This document does not provide you with any legal rights to

any intellectual property in any Microsoft product. You may copy and use this document for your internal,

reference purposes. You may modify this document for your internal, reference purposes.

Page 4: Modernizing your data platform   hybrid it - final

Hybrid IT – Your Database Anywhere Take almost any application scenario, from the largest public web sites to small departmental applications

and you will find the vast majority rely on a database management system of some description. In some

respects, developers and IT professionals have become desensitized to the ubiquity of the relational

database - it’s simply part of the stack for a modern application. As organizations look to take advantage

of cloud computing, the availability of cloud-enabled database systems will be critical to their success.

This whitepaper sets out the Microsoft vision of relational database management systems in the context

of cloud computing. It is a hybrid IT vision, one that leverages the industry standard Microsoft SQL Server

technology set and makes it available across the spectrum of deployment approaches available to

customers today.

Figure 1: Modern IT departments will meet business needs through a combination of on-premises and cloud

hosted delivery.

Hybrid IT - A Portfolio View of Database Applications

The concept of Hybrid IT recognizes that customers will typically have a portfolio of different applications

deployed across their business. Customers have a breadth of environments with unique requirements.

Some applications require detailed and complex hardware configurations such that they may never be

deployed into the type of commoditized, ‘one size fits all’, environment offered by cloud computing.

Equally there are workloads in many businesses that are extremely compelling for massive scale public

clouds - it can be economically infeasible to provision sufficient levels of hardware for applications with

massive peaks and troughs in demand. Microsoft’s goal with Hybrid IT is to offer customers a breadth of

choices in how and where they run their applications, while at the same ensuring they can leverage a

common set of server products, tools, and expertise across their portfolio of solutions.

Page 5: Modernizing your data platform   hybrid it - final

Figure 2: Each approach to database deployment brings unique benefits and challenges.

Workloads are moving to the right.

Traditional Bare Metal Deployment

Despite massive improvements in virtualization technology in the past 10 years, the fact remains that

there is still a significant performance penalty to be paid in virtualizing certain workloads. Large, complex

and mission critical Online Transactional Processing systems (OLTP) remain the preserve of massive

dedicated servers with the operating system and database platform installed directly ‘on the metal .’

Non-Virtualized, Dedicated Hardware

For most workloads, virtualization is an ideal approach, delivering significant total cost of ownership

benefits. However, in situations where scale up matters; where customers need to extract the most

performance possible out of, in many cases, some of the largest server machines money can buy; where

every little bit of extra performance counts; customers will need to run on the metal.

A corollary of this requirement to run in a non-virtualized fashion is that applications will typically have

specific server hardware dedicated to their operation.

Physical Tuning

A key benefit of running significant dedicated hardware resources is that there are many opportunities for

advanced physical tuning. The most significant area for a database deployment such as SQL Server is the

physical configuration of the storage sub-system. The ability to undertake physical tuning is something

that is lost when moving to cloud environments.

Cloud Deployment – Public Cloud, Private Cloud

While a private cloud may have all the characteristics of a public cloud, that does not necessarily mean

that they must have all of those characteristics. For example, many private clouds do not implement a full

charge back accounting mechanism. Nevertheless as organizations mature their private cloud strategy,

Page 6: Modernizing your data platform   hybrid it - final

the service and service levels offered by private clouds will begin to align more closely with those offered

by public cloud providers.

Pooled & Virtualized

Server virtualization underpins both private and public cloud environments. However, a cloud-based

approach to computing requires more than just the mere virtualization of workloads. Many on-premises

virtualization environments are targeted at specific applications. Though virtualized, applications must run

on specific, dedicated server hosts. In some cases this is by technical necessity, in others because a

particular department is the ‘owner’ of that node. A cloud environment is predicated on the pooling of

hardware resources and while virtualization is a key to pooling capacity, in and of itself it’s not enough.

Pooling is the mechanism by which resources are aggregated and then made available as a homogenous

pool of capacity capable of running any workload. Workloads that run on a pooled cloud environment are

agnostic as to the physical hardware on which they are actually deployed.

Because of the advanced physical tuning required, the Tier-1 workloads discussed above are a pooling

anti-pattern. For example, a SQL Server workload that requires a particular approach to physical tuning

and certain hard drive spindle layouts, could be virtualized but does not lend itself to the use of pooled

resources because it has unique resource demands that are unlikely to be demanded by other

applications. Put those specific spindle configurations into a pool and chances are nobody else will want

to use them.

Elasticity

Elasticity refers to the ability of the cloud to respond to peaks and troughs in demand. Many business

processes have a seasonal characteristic. Indeed the agrarian analogy of annual hay-making is illustrative

here; most farmers will bring in outside contractors with their associated machinery to make their hay

because it is simply uneconomic to have the large tractors and hay bailers required lying idle for most of

the year. Information technology workloads are also highly seasonal yet the machinery deployed to

support them is typically purchased in sufficient capacity to meet the peak load and ‘stored in the shed’

for the remaining time.

The canonical example of a seasonal workload is the sale of tickets for sporting and cultural events. When

a large event goes on sale the number of customers seeking tickets can, in many cases, outstrip supply.

Historically customers would camp all night outside the ticketing office in order to obtain their tickets - in

the online world this natural queuing mechanism breaks down and instead prospective event goers

swarm the virtual ticketing office, often overloading it.

Because cloud resources are both generic and pooled, it is easy to justify having spare capacity ‘sitting

around.’ A cloud provider, be they public or private, will typically endeavor to have a portion of their

capacity freely available at all times to deal with peaks. Public clouds are at a distinct advantage here.

Because public clouds operate at massive scale, with thousands of customers accessing their pooled

resources, they are able to maintain significantly more absolute headroom than a smaller private cloud-

1% of a 100 server cloud doesn’t permit much of a spike in load whereas 1% of a 10,000 server cloud

does. Elasticity is the hardest cloud characteristic to achieve in a private data center as it requires an

organization to have capacity lying idle, the avoidance of which is usually a key justification for cloud

based deployment in the first place.

Page 7: Modernizing your data platform   hybrid it - final

Some workloads such as the ticketing example above are simply not feasible in a private cloud

environment. A good test of the caliber of a cloud is to ask the question “how many times more capacity

does the cloud have deployed than my expected elastic demand?” It should be measured in orders of

magnitude and not just mere multiples; if you expect to need 10s of servers on a burst basis then look for

a cloud that has at least 1000s of nodes.

Self Service

Self service in cloud computing serves two complimentary goals. First, it helps to further drive down the

costs of providing the service by reducing or eliminating the labor typically required to provision

resources. Second, if done well, it’s a measure that benefits users too by providing self-service capability.

Cloud consumers are empowered to directly access resources; no complicated approval process; no need

to wait for the request to become a business priority to IT.

A cloud environment will provide users with delegated rights to provision resources on demand from the

pool. It will ensure that their workloads can’t interfere with others and that they may only provision

resources up to the capacity level to which they’re entitled, or in the case of a public cloud that their credit

limit extends to. Self service drives business agility. It allows organizations to try new things and reach new

markets quickly. Whether in a private cloud inside the enterprise or out in Windows Azure, applications

are able to be taken from development to production much more quickly than other deployment

approaches.

Usage Based

Most shared IT environments suffer from the ‘tragedy of the commons’1- if IT capacity is ‘free’ at the

margin then there is no incentive for conservation by any one consumer despite this being in the interest

of all consumers collectively. Consumers are used to paying on a per unit basis for other resources such as

water, gas and electricity. The pay-per-use model offered by cloud computing provides incentives to turn

off capacity that is not being used.

The public cloud vendors obviously need to charge for their services and so those environments will

always be metered and billed. In private clouds the situation varies; implementing a charge-back model is

complex, particularly if the business does not have existing accounting systems in place to support it, but

there are significant benefits to be had. The goal of pay-per-use in a private cloud environment is to drive

user behavior, ensuring that cloud resources are treated as scarce and conserved where possible. Quotas

and other resource allocation mechanisms may be more appropriate for some private cloud

environments.

One challenge for public and private cloud operators alike is “which meter to use .” What should be

counted in order to determine charging? The metric needs to be well correlated to the actual cost of

providing the service but also remain sufficiently simple that cloud consumers can understand it. It makes

little sense to measure on ‘query hours’ if cloud consumers haven’t the foggiest idea of how the expected

number of required query hours can be derived for their particular application.

1 "The Tragedy of the Commons". Science 162 (3859): 1243–1248. 1968.

http://www.sciencemag.org/cgi/reprint/162/3859/1243.pdf

Page 8: Modernizing your data platform   hybrid it - final

The charging model is the mechanism by which a cloud provider signals efficiency. In a cloud

environment, where every real resource is obscured by layers of virtualization, customers should architect

their application to be cost optimized as a primary consideration.

Compliance

Some application scenarios require compliance with specific enterprise or industry standard policies.

These policies will typically relate to security, systems management, and legal matters. Policies range from

simple things such as which anti-virus software is to be installed on servers, through to complex

Information Security Management Systems standards such as ISO/IEC 27001.

The more control an organization has over the entire systems stack, the more amenable that system is to

compliance with all imaginable policies and requirements. An enterprise policy requiring air-gap

deployment is obviously unsuitable for deployment in a public cloud and, equally, an isolated private

cloud cannot co-exist on pooled hardware with an internet connected private cloud. The more onerous

the compliance requirements the more likely they are to require a dedicated environment running within

the complete control of the enterprise deploying them.

The major public cloud vendors have moved quickly to audit and certify their systems against industry

standard frameworks. For many small and mid-sized organizations the costs of achieving compliance can

be too onerous. For these smaller organizations public cloud computing actually presents new

opportunities to deploy applications into a certified environment without the cost of implementing those

standards within their own data center.

Some compliance challenges will remain insurmountable to public cloud computing. Customers who

require complete jurisdiction over their systems will often need to ensure that data is located only within a

certain country and that systems are only accessible by their own staff. For these customers the use of

dedicated systems or private cloud environments will remain the only feasible solution.

Up to date details of the Compliance of Windows Azure against various industry standards can be found

at http://www.windowsazure.com/en-us/support/trust-center/compliance/

Page 9: Modernizing your data platform   hybrid it - final

The Microsoft Public Cloud and SQL Server Windows Azure provides two broad options to enable the use of SQL Server databases.

The first is to run Microsoft SQL Server in a Windows Azure Virtual Machine. This approach is most akin to

an on-premises deployment. Customers have complete control over both the operating system and the

installed applications and as such can achieve almost complete compatability with on-premises SQL

Server. Customers purchase Azure VM time at a few cents an hour with the option to either ‘bring-your-

own’ SQL Server license or rent the SQL Server license by the hour as well. SQL Server in an Azure VM is

ideal for customers looking to move existing tier 2 & 3 applications to the cloud.

The second offering is called Windows Azure SQL Database. SQL Database is a true platform-as-a-service

in the cloud. Customers purchase this service on a database by database basis and Microsoft manages the

service all the way to the database level meaning that customers do not need to take responsibility for the

operating system or even patching the database server software. It is most suited to customers building

new applications and provides additional benefits such as high availability and scale-out that are complex

to achieve in either the Virtual Machine approach or on-premises.

Figure 3: The Microsoft public cloud offers two distinct approaches to SQL Server.

Why & When Cloud Deployment Makes Sense

SQL Server in a Windows Azure Virtual Machine

Windows Azure Virtual Machines allow customers to create a server in the cloud that they run and

manage. These servers can run Windows Server 2008 R2 or a number of different Linux distributions.

Customers have complete control over their server, they can install the applications of their choice and as

such can now run almost any workload in the Windows Azure cloud. Installing and running SQL Server

into Windows Azure Virtual Machines is a key scenario that Microsoft is delivering and supporting.

From a compatibility point of view, running SQL Server in a Windows Azure VM is the same as running

SQL Server hosted in a virtual machine on-premises. For enterprise customers looking to move tier 2 and

tier 3 database applications this approach offers an ideal path to the cloud. Applications can typically be

moved to the cloud without making any code changes. As cloud technology matures customers are likely

to begin moving some of their tier 1 workloads as well.

Customers will typically create a cloud server using pre-built virtual machine images from the Windows

Azure Image Gallery; Microsoft provides several images configured with SQL Server Web, Standard or

Enterprise. Once the server is created and started it’s simply a matter of moving the database itself onto

Page 10: Modernizing your data platform   hybrid it - final

the server using one of the common SQL Server database migration techniques including backup/restore

and file detach/attach.

Alternatively customers can pick up the entire on premise virtual machine and upload this to Windows

Azure. While this approach is not strictly supported by the platform yet, it is a suitable approach for

organizations looking to quickly move servers into the cloud for things such as development and test

environments. For production environments it is recommended that customers create a virtual machine

either on premises or using a template image and then move just the database itself.

Figure 4: SQL Server in a Windows Azure Virtual Machine provides an

ideal path to move existing applications to the cloud.

SQL Server running in a Windows Azure Virtual Machine offers a low cost, low touch

migration path for existing apps. The key driver in the total cost of ownership for tier

2 and tier 3 apps is the cost of developing and maintaining the applicaton itself. In

many cases the operational costs, inefficient as they are in many on-premises data

centers, are still dwarfed by the costs involved in writing and modifying the

application code; any cloud migration approach promising operational savings yet

requiring major code changes will be doomed to failure. Moving databases to Windows Azure Virtual

Machines typically requires no code changes.

At general availability a Windows Azure Virtual Machine running SQL Server Standard Edition (including

licenses) will cost from 66.5 cents per hour or about $480 dollars per month. For workloads suitable for

SQL Server Web Edition the costs will start at just 16 cents per hour (approx. $115 per month).

Customers can achieve even greater cost efficiencies by achieving higher database densities. As for an on-

premises SQL Server it’s posible to run 10s or 100s of light load databases on a single virtual machine for

a single low monthly cost.

Microsoft SQL Server provides a range of capabilities well beyond being a Relational

Database Management System. These capabilities include rich reporting technology,

ETL tooling and job management and scheduling. Most of these ancialliary features

Page 11: Modernizing your data platform   hybrid it - final

are not yet available in Windows Azure SQL Database and this has been a blocker for some customers

looking to move their applications to the cloud.

Deploying SQL Server in a Windows Azure VM means that customers can take advantage of the full

feature set of whichever version of SQL Server they have deployed. With a couple of minor exceptions2

customers have access to the complete feature set of the SQL Server boxed product. Features specifically

supported include;

• SQL Server Integration Services

• SQL Server Analysis Services

• SQL Server Reporting Services

• SQL Server Agent

Customers using SQL Server in a Windows Azure VM are also freed from some of the physical limitations

inherent in the SQL Database platform based approach. For example, customers are not limited to 150GB

of data per database as they are with Windows Azure SQL Database.

As Platform as a Service, SQL Database shields customers from having to manage the

underlying operating system and configure their database servers. However, many

enterprises require advanced management and configuration on the servers that run

their applications. By using SQL Server in a Windows Azure VM customers have

complete control over their deployment. This means that they can configure both

Windows and SQL Server as they wish. If an application requires the use of third party tools or

technologies then these can be installed as well. Enterprise customers may have specific policies for SQL

Server deployments such as password strength requirements or virus scanners; these can be easily

installed and enforced on a Windows Azure VM.

Using the Windows Azure Virtual Network customers can domain-join their Windows Azure VMs to on-

premises domains. This enables development of hybrid applications spanning both on-premises and off-

premises deployment under a single corporate trust boundary.

Windows Azure provides management of all of the infrastructure that underlies the

Windows Azure Virtual Machine. Customers do not need to manage any of the

physical hardware or physical network configuration.

However, with the control described above comes a greater degree of responsibility

than that required by Windows Azure SQL Database. Customers are responsible for

patching the operating system along with ensuring that SQL Server is updated and so forth. It’s just a

Windows Server, so standard management technologies including Microsoft System Center 2012 can be

used to help drive this process.

The virtual machine VHD’s are stored in Windows Azure Storage and as such benefit from the high

availability storage provided by that service. But, to achieve a true high availability database solution,

customers will need to configure the AlwaysOn feature of SQL Server 2012; this capability is not yet

2 At General Availability there will be no support for failover clustering. During the Preview period there is

no support for SQL Server AlwaysOn; this will be supported at General Availability.

Page 12: Modernizing your data platform   hybrid it - final

supported by the Windows Azure VM. The fastest path to a highly available database in Windows Azure is

through the use of Windows Azure SQL Database.

At General Availability customers will be provided with a 99.9% uptime Service Level Agreement for their

virtual machine. Customers will be responsible for the uptime of the applications running on that virtual

machine, including the SQL Server database service itself.

Windows Azure SQL Database

Windows Azure SQL Database provides a highly available, scalable, multi-tenant relational database

operating in the Windows Azure cloud. SQL Database is ideal for new cloud designed applications. These

apps can take advantage of unique scalablity features available in SQL Database. As SQL Database is

highly compatable with SQL Server it is also possible to migrate many existing apps to SQL Database with

minimal database and code changes. For customers with simple databases that can be migrated in this

way, SQL Database offers a very low TCO and benefits that can be hard to achieve on-premises such as

high availablility and scale-out. It can be a great choice for applications that will be run entirely in the

cloud or, in scenarios where some latency can be tolerated, as the data store for on-premises applicatons

connected remotely to the cloud.

SQL Database has a number of features that make it unique in the marketplace; features that are not

available in any other vendor’s cloud offering. These features provide capabilities that are ideal for the

types of always-on, massive scale applications demanded today. However, these features also require that

application developers specifically support the feature in their code and as such lend themselves most

easily to customers building new applications rather than migrating existing apps.

The first of these is a feature called SQL Federation. Federation allows customers to scale out their

database by providing tooling and T-SQL support for the database sharding pattern. Given an

appropriately architected application, SQL Database can achieve almost limitless scale in terms of both

data volumes and transactional load. To take advantage of this feature requires a specific approach to

both database and application design. At a minimum, Federation will require significant rework of an

existing application; ideally application developers will build their application for the sharding pattern

from the outset.

The other unique feature of SQL Database is that it provides very high levels of high availability out of the

box. The platform maintains three transaction consistent copies of the database distributed across fault

tolerant regions of an Azure datacenter. Should any one replica fail, SQL Database will automatically re-

route traffic to the remaining operational copies, create a new replica and then bring that replica back to

transactional consistency. While such sophisticated HA features are available for on-premises and in IaaS

deployments, the complexity of setting them up puts them beyond the reach of most customers. Even the

smallest databases, just a few dollars per month in SQL Database, are configured for high availability. To

take full advantage of this feature developers need to ensure that their code is able to reliably deal with

database disconnections; SQL Database will disconnect an application’s connections if the workload needs

to be moved to another replica. These disconnection events should be handled by retry logic (a code

block is available from Microsoft) and this retry logic should be incorporated even into on-premises

applications that utilize SQL Server 2012 AlwaysOn configurations.

Page 13: Modernizing your data platform   hybrid it - final

Figure 5: Windows Azure SQL Database provides unique capabilities for building massive scale

applications as well as the lowest TCO for new, cloud designed apps.

SQL Database allows organizations to deploy their database applications quickly.

Because there is no data center to build, hardware to provision or software to install , a

new database can be provisioned in minutes. This agility allows organizations to try

new things and reach new markets quickly. Given an appropriate application

architecture, the effort to deploy an application for hundreds of users vs. hundreds of

thousands of users is the same; just a few minutes.

Compared ‘like-for-like’ with both on-premises and SQL Server in Windows Azure VM deployments, SQL

Database delivers the lowest TCO. SQL Database is broadly equivalent to an on premises SQL Server

running with full hot standby servers; not one standby server, but two. Such a solution on premises would

typically require thousands of dollars of investment in hardware and setup time whereas SQL Database

starts at just a few dollars per month. This bears repeating: SQL Database provides a true high availability

enterprise class relational database starting at US $5 per month.

In the completely connected world of the Internet, phenomenal success can be as

hard to deal with as abject failure. If a newly launched business application takes off,

maybe thanks to good press on one of the heavily trafficked blog sites, it will need to

scale fast. Fast in this context means within minutes or hours; if it takes days or weeks

to add more capacity then you may have missed the moment.

To achieve rapid scale out, a deployment platform needs two key properties;

a) An ability to add additional capacity without affecting the operational system and;

b) A strong commitment that there will be sufficient resources available regardless of how quickly

demand grows.

SQL Federation allows developers building applications with SQL Database to shard their data out across

multiple databases. This scale out happens quickly, is transparent to users and does not need significant

amounts of IT Pro input. Databases can even be scaled out, or ‘SPLIT’, while under load. Split operations

(re-sharding) are performed online without application downtime.

Page 14: Modernizing your data platform   hybrid it - final

Because SQL Database is delivered at massive scale there is always ‘spare capacity’ available in real time.

This contrasts with on premises deployment approaches, even private clouds, where a significant new

demand for capacity will typically require new hardware to be deployed into the datacenter first. A very

successful new application will outrun an organization’s ability to procure new server hardware through

their supply chain - it takes days or even weeks to order and provision new on-premises servers.

Figure 6: Federation can be managed using T-SQL, via SQL Server Management Studio, or using the Management

Portal as shown here.

SQL Federation allows customers to scale out their relational databases; this capability is important for

organizations that value strong transactional consistency and other attributes that are typically sacrificed

by ‘NoSQL’ style cloud data stores.

Very few businesses differentiate themselves on how well they manage their IT

infrastrucutre. They certainly want to do a great job; they’ll want to be as good as or

better than their competitors, but, it’s not typically the source of their strategic

advantage. SQL Database allows customers to take advantage of not only the

economies of scale but also qualities of scale.

SQL Database delivers three 9’s (99.9%) SLA backed availability at the database level. This means that

Microsoft guarantees the uptime of not only the servers that run SQL Database, but also your database

itself.

Because it manages both infrastructure and platform components, SQL Database delivers zero downtime

updates (hardware upgrades, software patching, and more) with no customer intervention required. By

Page 15: Modernizing your data platform   hybrid it - final

adopting SQL Database, organizations can deliver their applications with enterprise grade availability

without incurring enterprise levels of cost.

By spending less time operating existing systems, IT teams are free up to spend more time innovating

new systems and improving applications. The IT focus moves from operations to adding strategic value to

the business.

SQL Database is protocol-compatible with SQL Server, meaning that Developers and

IT Pros can use familiar tools such as the Visual Studio IDE and SQL Server

Management Studio. When working with on-premises applications that use SQL

Server, customers use client libraries that implement the tabular data stream (TDS)

protocol to communicate between client and server. Windows Azure SQL Database

provides the same TDS interface as SQL Server meaning that those same libraries can be used by

applications working with data that is stored in Windows Azure SQL Database. Common approaches to

relational database programming include ADO.NET, Entity Framework, and ODBC. SQL Database also

supports other platforms with drivers for JDBC and even PHP and Node.JS. Code developed for on-

premises SQL Server applications can usually be moved easily to Windows Azure SQL Database.

SQL Database is a true Relational Database Management System (RDBMS). The relational database model

and the transactional properties of RDBMS’s remain the gold standard for enterprise application data

storage. Unlike with many other cloud hosted data stores, developers working with SQL Database do not

need to learn new approaches to data-modelling nor make concessions around things such as

transactional consistency. SQL Database supports stored procedures, stored functions and the vast

majority of tried and true SQL Server features.

Page 16: Modernizing your data platform   hybrid it - final

Delivering on Common Cloud Scenarios

SQL Server in Windows Azure Virtual Machine Scenarios

In this section we will address four key scenarios for customers using SQL Server in a Windows Azure

Virtual machine.

Figure 7: SQL Server in a Windows Azure Virtual Machine is targeted at four key scenarios for the initial release.

As it is able to run pretty much any Windows Server based image, the Windows Azure

Virtual Machine feature makes it simple to move an existing application to the cloud.

Both the database tier and application tier can be moved to Windows Azure Virtual

Machines, or, for some workloads such as ASP.NET it may make sense to port to

Windows Azure Cloud Services or even Windows Azure Web Sites; this (PaaS)

application tier can then connect easily to (IaaS) SQL Server running in a Windows Azure VM.

Moving a database from an on-premises SQL Server to SQL Server running in a Windows Azure Virtual

Machine will typically take one of the two paths shown in figure 8.

Page 17: Modernizing your data platform   hybrid it - final

Figure 8: Moving a database to SQL Server in a Windows Azure Virtual Machine will take one of two paths.

Moving the Entire Virtual Machine

Option 1 involves moving the entire virtual machine from an on premises Hyer-V server to Windows

Azure. Moving the entire VM is suited to development and test scenarios, particularly for situations where

the on-premises machine has additional and complex configuration. By moving the entire VM customers

remove the need to recreate that exact configuraton in another machine. To move the whole VM

customers will need to ensure that the server operating system is Windows Server 2008 R2 SP1 x64 or

above and that the version of SQL Server is a 64 bit install of SQL Server 2008 SP3 or later. Customers with

VMs that don’t meet those specific requirements will need to either upgrade or follow the ‘backup &

restore’ approach in option 2.

It’s also possible to move virtual machines running in a third party hypervisor such as VMWare or even

physical bare-metal servers by first migrating these server instalations into Hyper-V. To do this customers

will perform either a Virtual-to-Virtual (V2V) or Physical-to-Virtual (P2V) migration. Microsoft provide tools

in System Center Virtual Machine Manager 2008 R2 or Virtual Machine Manager 2012.

Full supportability of Windows Azure Virtual Machines requires that virtual machine images are

“sysprep’d” before being uploaded. The sysprep process is incompatible with Microsoft SQL Server. As

such, customers taking this migration approach should avoid running sysprep prior to upload; this does,

however, mean that this migration path is not currently supported for production workloads. The

recommended approach is to move just the database file itself as demonstrated in the next section.

Moving Just the Database

Option 2 involves transferring just the database to the cloud. This can take the form of a full database

backup or datafile, or, it may be more appropriate to move the database schema and data separately. A

key benefit of this approach is that customers need only send the database over the wire - it can be a

time consuming process to send the entire Virtual Machine on a slow internet connection.

Customers will need to start by creating a Windows Azure Virtual Machine using an image from the Image

Gallery.

Page 18: Modernizing your data platform   hybrid it - final

Figure 9: Create a new virtual machine from the Image Gallery.

During the Windows Azure Virtual Machines Preview period customers should choose the Microsoft SQL

Server 2012 Evaluaton image.

Figure 10: Choose the Microsoft SQL Server 2012 Evaluation machine image.

Customers need to specify a machine name, provide a strong password for the Windows Administrator

account and choose a machine size. The machine size can be changed later. For testing purposes it will

usually be sufficient to run a Small instance size.

Figure 11: Set virtual machine properties

At present customers should choose to create a standalone virtual machine. The load balancing setting is

not appropriate for SQL Server virtual machines during the Preview release. The remaining settings

determine where the virtual machine is located, how it is resolved for DNS purposes and the subscription

which will be used.

Page 19: Modernizing your data platform   hybrid it - final

Figure 12: Set Networking, DNS, Storage, Datacenter and Subscription properties

Once again, the availability set option will not be relevant for SQL Server in Windows Azure Virtual

Machine deployments until General Availability when support for AlwaysOn will arrive. For now the

availability set value should be set to none. Clicking the button will then start the process of creating

the virtual machine. This is indicated by the green progress indicator at the bottom of the portal. It may

take a few minutes for the Virtual Machine to be created.

Figure 13: A progress indicator will appear in the bottom right of the portal.

Browsing to the list of Virtual Machines in the portal, customers will need to wait a few minutes more for

the Provisioning process to complete - this is indicated in the Status column. A connection cannot be

made until the machine indicates a Status of Running.

Figure 14: Clicking connect will establish an RDP connection to the Virtual Machine.

At this point there are a number of possible approaches customers can use to:

a) Extract a copy of the on-premises database and;

b) Transfer that copy to the Virtual Machine running in the cloud

A detailed guide on these approaches can be found in the article Migrating with SQL Server in Windows

Azure Virtual Machines. The steps below demonstrate how this process can be achieved by taking a

Page 20: Modernizing your data platform   hybrid it - final

backup of the on-premises database, copying this backup file to the server directly over the RDP

connection and then restoring the database file to the SQL Server instance running in the Windows Azure

VM. This approach is well suited to small databases. For additional guidance on selecting an approach

customers should reference the above article.

Figure 15: Take a backup of the on-premises database.

The Remote Desktop protocol makes it easy to transfer small files by simply using cut & paste in Windows

Explorer.

Figure 16: Copy the file from on-premises machine. Paste into Windows Azure VM.

Once copied the file can be restored into the SQL Server instance running in the Windows Azure Virtual

Machine. If the database depends on metadata not stored in the user-database then additional steps may

need to be taken. The article Manage Metadata When Making a Database Available on Another Server

Instance provides guidance on this.

Figure 17: Copy the file from on-premises machine. Paste into Windows Azure VM.

Page 21: Modernizing your data platform   hybrid it - final

When building apps many customers use development, test, and staging servers as

part of their application lifecycle. Sometimes these are merely a virtual machine

hosted in a developer’s desktop but more often such environments are hosted on

dedicated virtual servers. In large organizations, particularly large enterprises and

systems integrators these dev servers can require something more akin to a private

cloud.

Windows Azure Virtual Machines provide a public cloud option to support these workoads. Even where an

application will eventualy be hosted-on premises the use of Windows Azure to run development and

staging servers can be a very cost effective choice. It provides the flexibility of self service machine

provisioning and cost saving benefits of pay-for-use billing.

Windows Azure Storage provides a highly available cloud hosted storage mechanism

at a few cents per gigabyte per month. This, coupled with availability of the Windows

Azure Virtual Machines service, presents new options for customers needing backup

and disaster recovery capabilities.

Customers can use Storage to store backups of either their databases or entire virtual

machines. Windows Azure Storage provides highly available, durable and secure offsite storage for these

files; 3 consistent copies are stored in the primary datacenter and a fourth replica is copied

asynchronously to a secondary data center.

Should disaster strike, customers will have the option of either retrieving the files back out of Storage or

using Windows Azure Virtual Machines, restoring their backed-up machine images and then running them

from the cloud for a period of time.

SQL Server 2012 includes native functionality to enable the use of Storage for database backup and

restore.

Figure 18: Customers create a Windows Azure Storage Account using the portal.

In order to upload backup data directy to Windows Azure Storage, customers will need to retrieve one of

the security keys for their storage account.

Page 22: Modernizing your data platform   hybrid it - final

Figure 19: Storage keys can be retrieved from the portal.

The native Windows Azure Storage backup support is accessed from SQL Server Management Studio

2012 and leverages the BACPAC file format. It’s accessed from the Export Data-Tier Application menu.

Figure 20: Native backup to Azure Storage is provided by the Export Data-tier Application menu.

The wizard provides the option to save the BACPAC file directly to Windows Azure. The storage account

name and key are used by SSMS to authenticate against storage to perform the upload. Customers can

also specify a container within the storage account; containers can be thought of as being a little like

folders in a regular file system.

Page 23: Modernizing your data platform   hybrid it - final

Figure 21: Native backup to Azure Storage is provided by the Export Data-tier Application menu

The Export Wizard will provide detailed progress updates as it completes the reation of the BACPAC file

and uploads it to the specified Azure Storage account.

As well as native backup from SQL Server itself, the Windows Azure Online Backup feature allows users of

Windows Server 2012 and System Center 2012 Data protection Manager to backup other data, including

whole virtual machine images, directly to Windows Azure.

In some situations customers may want to move just a portion of an application into

the cloud. Sensitive data would remain on premise while those portions of the

application requiring additional scale could be moved to into the public cloud.

Consider the canonical e-commerce site. The sensitive information such as customer

details and credit card information may need to remain on-premises, but, in order to

support increased load the product catalogue and shopping cart data could be moved into Windows

Azure.

We discuss these types of Hybrid applications in more detail below.

Page 24: Modernizing your data platform   hybrid it - final

Windows Azure SQL Database Scenarios

In this section we will address the two key scenarios for customers looking to work with Windows Azure

SQL Database.

Figure 22: SQL Database is ideal for developers creating cloud designed apps.

To take advantage of many of the unique capabilities of SQL Database, as outlined

above, an application must be be specifically architected and developed for those

features. For example, to use SQL Federation applications must understand the

constraints presented by the sharding scale out pattern and must know how to access

shard members via the USE federation T-SQL statements.

Building a new cloud-designed application on SQL Database can typically be done by undertaking all

development work connected to a remote database running in Windows Azure SQL Database. Customers

will typically create their server and database(s) from the Windows Azure or SQL Database management

portals. They’ll then connect their existing tools to those remote databases. As noted above , SQL

Database is highly compatibile with SQL Server and as such supports most SQL Server based tools

incuding Visual Studio and SQL Server Management Studio 2012. Customers will use these tools, working

against the remote server, to build out their database schema.

The application tier will usually be built out using the Windows Azure Cloud Services or Windows Azure

Web Sites features. These allow application developers to build applications that can be easily scaled out

behind Windows Azure load balancers. Scale out in the application tier closely matches the appproach of

scaling out the data tier and this means that developers are able to build applications that can deliver on

the massive demands of many of today’s cloud workloads. Developers are not restricted to just the

Microsoft .NET framework; Cloud Services work well with Java and SQL Database works well with the JDBC

drivers for SQL Server 2012. Microsoft also supports an open source project that provides Windows Azure

add-in tooling for Eclipse, a popular Java IDE. Other frameworks such as Ruby, PHP and Node.js are

equally well supported by SQL Database and Windows Azure.

IT Pros will use a combination of the Windows Azure and SQL Database portals and existing SQL Server

management tooling to manage the ongoing operation of the database.

Page 25: Modernizing your data platform   hybrid it - final

Figure 23: SQL Database allows developer to scale out their application in both the app and data tiers.

Creating a new SQL Database is done using the Windows Azure management portal.

Figure 24: Using the Custom Create option for a new SQL Database.

Using the Custom Create option supports creating a new SQL Database server.

Figure 25: Specifing a new server on database creation.

Page 26: Modernizing your data platform   hybrid it - final

It is important to note that a ‘server’ in SQL Database is a logical concept only; the actual database

replicas that make up any given SQL Database instance will be physically located on a number of different

physical nodes within a datacenter.

Figure 26: Creating a new server including login details

SQL Database includes a firewall that protects against connections from unknown IP addresses. Firewall

rules must be created to explicitly open access for each address or address range that is expected to

connect to the database server. Checking the Allow Windows Azure services to access the server option will

set firewall rules permitting other services in Windows Azure such as Windows Azure Compute and

Windows Azure Virtual Machines to access the database server. In order to connect using Management

Studio or other tools from on-premises machines additional rules must be created.

Figure 27: Clicking the server hyperlik will open the server properties to add additional firewall rules.

Figure 28: A firewal rule specifies a range of permitted addresses.

Page 27: Modernizing your data platform   hybrid it - final

Once the server is configured the connection strings can be retrieved from the database properties within

the management portal.

Figure 29: The connection string contains the information required to connect Management Studio.

The information contained in the connection string can be used to connect SQL Server Management

Studio to the remote database.

Figure 30: The connection string contains the information required to connect Management Studio.

From here customers can use the familiar tooling available in Management Studio to create their database

schema. SSMS 2012 also provides support for creating and managing Federations.

Hybrid Scenarios

As well as providing customers with choices as to where they run their app, the concept of hybrid-IT

means that customers can also choose to distribute their app between both the public cloud and their

private data center.

Code Far Apps – A simple path to an enterprise class data tier

SQL Database delivers many enterpise class database features including high availablity. Many

departmental applications would benefit from these capabilities but it is often too expensive to deliver

Page 28: Modernizing your data platform   hybrid it - final

such features on-premises. A code-far hybrid approach involves connecting an on-premises application

over the internet to a SQL Database instance.

Figure 31: A remotely accessed SQL Database can provide an enterprise class database for lightweight apps.

An excellent example of this deployment architecture in action is presented by Microsoft Access 2013

Preview. This new version of Access provides support for building Access 2013 Preview apps that run in

either Office 365 or on-premises servers but which store their data into a Windows Azure SQL Database.

Occasionally Connected Apps with SQL Data Sync

SQL Data Sync is a service built upon the Microsoft Sync Framework. It allows customers to bi-

directionally synchronize data between on-premises SQL Server and SQL Database instances. Because SQL

Data Sync is provided as a service within Windows Azure, there is no need for customers to write custom

code, they simply configure SQL Data Sync in the Azure portal and then install the SQL Data Sync Agent

on the on-premises servers.

Page 29: Modernizing your data platform   hybrid it - final

Figure 32: Using SQL Database and SQL Data Sync allows applications to easily support occasionally connected

deployment.

This hybrid architecure allows customers to build applications that support occasionally connected work.

While the user is disconnected data is stored in a local SQL Server database and then syncronized with the

SQL Database hub once connectivity is restored.

SQL Database + SQL Server in Windows Azure Virtual Machines in a single app

As set out above, SQL Database and SQL Server in a Windows Azure VM have respective strengths;

another Hybrid approach is to combine both into a single application. As an example a customer may

want to take advantage of the scale out capability of SQL Database for their OLTP web application. They

may also need to perform muti-dimensional analysis and reporting, a capability that would require the full

functionality of SQL Server installed into a VM.

Figure 33: Combining both SQL Database and one or more SQL Server instances running within Windows Azure

Virtual Machines allows an application to leverage the strengths of each deployment option.

Page 30: Modernizing your data platform   hybrid it - final

By using SQL Data Sync customers can deploy SQL Database to drive the transaction processing needs of

the application and use the full power of SQL Server Reporting and Analysis Services on-premises to

provide the analytical processing requirements.

Hybrid IT - Delivering Choice Cloud computing provides new opportunities for customers to deploy applications more cheaply or at

much greater scale than ever before. But, at the same time, the Microsoft Hybrid IT strategy recognizes

that most customers will typically have a range of different applications, some of which will be deployed

to the cloud and some of which will remain on premises. Complex applications that require detailed

hardware configurations and optimization, or that house particularly sensitive data, are not well suited to

the types of commodity services delivered by cloud computing; these applications are likely to remain on

premises for some time to come. At the other extreme, some workloads are particularly well suited to

public cloud deployment – applications with highly variable demand for example. Microsoft’s goal with

Hybrid IT is to offer choice for their customers. Microsoft customers have the ability to leverage the same

industry leading technology, techniques and expertise across on-premises servers, private clouds and

public cloud platforms.

Hybrid IT delivers the power of SQL Server, an industry leading DBMS, across the full spectrum of

deployment topologies. It delivers the same familiar SQL Server experience and toolset regardless of

whether a customer chooses to deploy on-premises or into a public or private cloud.

Microsoft SQL Server in a Windows Azure VM allows customers to take advantage of the efficiencies of

cloud computing while also providing almost full feature parity with on-premises SQL Server

deployments. Customers looking to the cloud to deliver new appications to large scale audiences can use

Windows Azure SQL Database to build next generation relational database applications that scale out to

millions of users.

Whatever the specific needs of their application scenario, wherever it may be deployed, customers can be

confident that Microsoft is providing the capability, flexiblity and familiarity that they need.