2. Agenda Why the Cloud? Azure Services Platform: The Big Picture Windows Azure RDBMS in the Cloud: SQL Azure Middleware in the Cloud: AppFabric Using MySQL & PHP on Windows Azure Wordpress @ Windows Azure
3. Challenges Building Apps # of users? After 1 month? 6 months? 1 yr? Capacity? Servers? Bandwidth? Storage? How do you scale up or down over time? How can you handle peak loads? How do you provide high availability? What are the upfront capital costs? How quickly can you go live? How do you reduce your operations costs?
21. Building for Scale We’re running scale services now 30B Live ID authentications/month 2B Live Search queries/month 10B MSN page views/month 240B Messenger messages/month We’re preparing for your services Quincy, WA: Complete, approx 500K sq ft San Antonio, TX: Phase 1 of 2 complete, approx 500K sq ft Chicago, IL: Opening Spring/Summer 09, approx 550K sq ft Dublin, Ireland: Opening Summer 09, approx 570K sq ft
23. The Windows Azure PlaformFormerly known as the Azure Services Platform AppFabric SQL Azure Applications Live Services Windows Azure Applications Windows Mobile Windows Vista/XP Windows Server Others
24. Windows AzureAn illustration Application Compute Storage Fabric Config .NET Services SQL Azure Applications Live Services Windows Azure Applications Windows Mobile Windows Vista/XP Windows Server Others
25. Windows Azure Compute Service A closer look HTTP/TCP Web Role Worker Role main() { … } HTTP ASP.NET, WCF, PHP. IIS Load Balancer Agent Agent Fabric Application Storage Compute Fabric VM …
27. Windows Azure StorageA closer look at tables . . . Table Table Table Entity . . . Entity Entity Property Property Property Storage Accounts Name Type Value
28. Using QueuesThe suggested application model To scale, add more of either main() { … } Worker Role Web Role 1) Receive work 4) Do work ASP.NET, WCF, PHP. 2) Put work in queue 3) Get work from queue Queue
29. SQL AzureFormerly known as SQL Services SQL Azure Database Others (Future) .NET Services SQL Azure Applications Live Services Windows Azure Applications Windows Mobile Windows Vista/XP Windows Server Others
31. SQL Azure DatabaseUsing one or multiple databases SQL Azure Database Database Application Database Database Application Database
32. AppFabricInfrastructure in the cloud Access Control Service Bus .NET Services SQL Azure Applications ? Live Services Windows Azure Applications Windows Mobile Windows Vista/XP Windows Server Others
33. Access Control Service STS Rules 3) Return new token ? 5) Use new token to determine what this user can do 4) Present new token 2) STS creates new token according to rules 1) Present token Application Client User Access Control Service Bus Access Control
34. Service Bus 2) Discover endpoints Registry 1) Register endpoints 3) Access application Endpoints Application Application Organization X Organization Y Access Control Service Bus Service Bus
35. Windows Azure + Interoperability Windows Azure Capabilities On-Demand Computational Resources Storage at Massive Scale Automated Service Management Goal: Give You More Time to Write Code …with Skills of your Choice Languages: Tools Application Components PHP
36. Interoperability in this Session Popular Technologies, Used by Sites: Facebook, Wikipedia Apps: WordPress, MediaWiki …with Windows Azure Benefits Get Started Easily: PHP/Eclipse Developer Experience Maintain and Scale: Leverage Platform Primitives Cloud Storage Inter-role Communication + Endpoint Discovery …
37. Using PHP with Windows Azure Running PHP Code in Windows Azure Eclipse Tooling Build, Test, Deploy PHP Projects Create New or Use Existing PHP Projects Scaling PHP Apps Using Cloud Storage from PHP Using Windows Azure Storage Using SQL Azure
38. Running PHP in Windows Azure How to Do It Host in Web role (like .NET) Supply PHP runtime Point to runtime via FastCGI configuration in Web.config Web.roleConfig Eclipse Tooling @ http://windowsazure4e.org does the above for you PHP Web Role Instance 1 VIP Load Balancer PHP Web Role Instance 2
39. PHP + Cloud Storage Windows Azure Storage On-Premises VIP PHP Web Role Load Balancer PHP App SQL Azure Windows Azure Platform
40. PHP with Windows Azure Storage Windows Azure SDK for PHP @ http://phpazure.codeplex.com PHP programming model for Windows Azure Storage Features PHP classes for Blobs, Tables & Queues Store PHP sessions in Table Storage
41. PHP with SQL Azure SQL Server Driver for PHP @ http://sqlsrvphp.codeplex.com/ Supports PHP access to SQL Azure Features Choose between SQL Server and SQL Azure by changing connection string Use from on-premises or in Windows Azure
43. MySQL in a Windows Azure Application Running MySQL in a worker role Copy MySQL to the worker role sub-directory Copy to read-write local storage Configure MySQL to listen on the right port Monitor MySQL health Consuming MySQL Discover IP address and port Normal access from then on Handle topology changes
48. MySQL Solution Accelerator Built by our partner, Infosys Master/slave configurations in a worker role Leverage Windows Azure Drive Master election and replication on startup Failover and recovery Scale up/down slaves Periodic backups - full and incremental Available with source code
49. Administering MySQL Some users prefer a command-line Instance Manager solution accelerator Built by our partner Infosys Command-line access to worker role instances Server runs in each worker role instance Client runs in a web role Worker Worker
50. Spotlight: WordPress Technology Requirements Web server w/PHP support, MySQL for storage, What we’ve added : phpMyAdmin and Instance Manager MySQL Solution Accelerator MySQL 1 MySQL 2 Worker Role VIP Load Balancer Instance Manager WordPress PhpMyAdmin Web Roles Blob Storage
51.
52.
53. Conclusions Cloud platforms are here Microsoft is placing a big bet with the Windows Azure platform Microsoft has significant strengths in this area Starting with credibility and customer trust In many ways, this market is yours for the taking
54. Azure Summary Comprehensive cloud services platform Abstracts you from the infrastructure Flexibility to mix & match services Connectivity to on-premises environments Familiar programming model & tools Rich client experiences with Live Services Standard protocols & formats (HTTP, REST, ...)
55. Learn More On Channel 9 Expand your PDC experience through Channel 9 Explore videos, hands-on labs, sample code and demos through the new Channel 9 training courses channel9.msdn.com/learn Built by Developers for Developers….
56. Resources Azure Services Training Kit Downloadable hands-on labs, demos, and presentations http://www.azure.com Azure Services Management Tools (Sample) PowerShell CmdLets and MMC console for managing the services http://code.msdn.microsoft.com/AzureManagementTools Azure Services Platform Forums http://www.microsoft.com/azure/blog.mspx Explore videos, hands-on labs, sample code and demos http://channel9.msdn.com/learn
60. PricingWindows Azure platform (1) Windows Azure Compute: $0.12/hour for each running VM Storage: Data: $0.15/GB per month (tables, blobs) Access: $0.01/10,000 operations (tables, blobs, queues) Bandwidth: $0.10/GB in, $0.15/GB out AppFabric Messages: $0.15/100,000 message operations Includes Service Bus messages and Access Control tokens Bandwidth: $0.10/GB in, $0.15/GB out
61. PricingWindows Azure platform (2) SQL Azure Database Web Edition Data: $9.99/month for a database up to 1 GB Bandwidth: $0.10/GB in, $0.15/GB out Business Edition Data: $99.99/month for a database up to 10 GB Bandwidth: $0.10/GB in, $0.15/GB out
Notas del editor
Slide objectives: Welcome & introductionsSpeaking Points: THANK YOU! – First, I want to thank you for investing your time to learn about the Azure Services Platform. We do not take it lightly when we have partners and customers take their time to learn about our new technologies. I hope that this is an informative and beneficial event. Notes:
Slide objectives: Explain the agenda and set expectations about what attendees will learn about in this presentation.Speaking Points: For the next 75 minutes in this session, you will learn about Microsoft’s Cloud Services initiatives and receive a very quick tour of the Azure Services Platform. The objective for this session is to help you understand what Azure is, how to use it, how to get started, and how to dig deeper.Polling questions: By a show of hands, how many of you heard about the Azure announcements made at the Microsoft Professional Developers Conference in October? How many of you would consider yourselves ISVs? Enterprise organizations? Small/medium businesses? System Integrators? Other?You have no doubt heard a lot of noise about “Cloud Computing”, “Utility Computing”, and “Cloud Services”. Before diving into the details about Azure, we will first talk about what is happening in the industry around the cloud. We will then define the Azure Services Platform and discuss some of the individual services that make up the platform.I will summarize the SDKs and service availabilityFinally, I will share the high-level roadmap and we will have some time for Q&A. Scope:This is a overview level session. I will show some brief demos and some code, but we will spend most of the time defining the Azure Services Platform and giving you an overview of the services through slides. I will intentionally show you simple demos to help you understand the concepts for the services and how they can be used. We will dive much deeper in the following sessions.Notes:
Slide objectives: Provide some context for why there is hype/interest in the cloud by focusing on some of the practical issues developers face when building web applications. Speaking Points: Today there are a number of challenges that you face when building web applications.For example, imagine you are building what you hope will be the next big social networking site or online game. Or perhaps you are building a commerce site for selling tickets to sporting events. One of the first things you have to try to guestimate is the number of users. How many people do you expect to use your web application or service? After 1 month? After 6 months? Or after a year?Do you expect that the number of users will continue to scale up?How do users translate into capacity? Into servers? Or storage requirements?How do you scale up or down your web application over time? If you consider the online gaming scenario, you can imagine that when a new game is launched there is a spike in traffic and usage, but overtime the usage slows.How can you handle peak loads? For example, if you are selling tickets for a major sporting event and the tickets go on sale at a specific time – how do you ensure that you can scale to thousands of concurrent users?How do you provide high availability – not just during the peak loads, but how do you ensure a quick response time for all of your worldwide users?What are the upfront capital costs to build out the infrastructure? How quickly will the infrastructure be available? Or if you have an established application, how can you reduce your operations costs?Most of these challenges have little to do with which programming languages, tools, or application frameworks you are using.These are some of the problems that we believe the cloud can help address.
Slide objectives: Explain what the cloud is in relationship to on-premises servers and hosted severs. Speaking Points: To put the cloud in perspective, let’s first think about the available options for deploying and running your application today. Today, there are a few established approaches for deploying and running applications.ServerOn one side you have on-premises servers or a self-hosted model. With on-premises servers, you bring your own machines, connectivity, software, and in some cases software licenses.You have complete control of the environment, the software stack, the hardware, etc.However, you also have complete responsibility. Your organization must have the skills and expertise to operate and manage the environment and software. You must take on the responsibility of patching the environment, replacing hardware, etc.These days, very few people want to be in this business. However, on-premises servers are not going away anytime soon. In some cases organizations have to maintain solutions running in an on-premises environment due to regulatory, data, or privacy requirements.Hosted ServersAn established alternative to the on-premises model is with a hosted environment.With hosted servers, you are effectively renting capacity – including machines, connectivity, and in some cases software.With this model, you have less control then when you’re managing your own servers. For instance, you can’t walk up to a machine, and plug in an external drive to load data. Or easily make hardware or software adjustments to optimize for performance. However, you also have fewer responsibilities when it comes to operating, updating, patching, and managing the environment. What is generally much more attractive about a hosted model is the cost model.The upfront capital costs can be much lower then building out your own infrastructure. However, one of the downsides is that you generally pay for the fixed capacity on a monthly basis – even if your application is idle. CloudWhat we are starting to see in the industry is the emergency of the cloud as a platform for building and running applications. So what is the cloud and how does it relate to these established options for running your apps?A cloud platform is designed as a shared, multi-tenant infrastructure.Cloud platforms utilize virtualization to: share hardware resources, provide isolation of applications or tenants, and also to provide a more dynamic infrastructure.Ability to scale out your application over multiple server instances.Because it is a shared infrastructure, there is even less control compared to a hosted environment. As this is an emerging space, there is a wide range of different types of cloud solutions. Some of the solutions focus purely on providing virtualized infrastructure. Servers you can remote into. However, many cloud platforms are starting to focus on raising the level of abstraction – so you can focus on building and deploying applications rather than remoting into machines and maintaining or patching servers. Services – services provided by the infrastructure and services you would consume programmaticallyFinally, one of the primary reasons why organizations ranging from startups, independent software vendors, and large enterprises are starting to investigate the cloud is the pricing model. With a cloud platform, you can expect a pay as you go pricing model – where you pay for what you use. [build arrow] I believe it’s important to understand that the cloud is part of a continuum. It is one ofpotential approaches that you can begin to use to deploy and run your applications. However, it’s important to understand that the cloud is not the silver bullet. It is not the perfect solution for every application.
Slide objectives: Frame the problems with applications today and the reasons for Cloud Computing / Services.Speaking Points: Some of you maybe asking why? Why do we need a new type of platform? So what makes the cloud attractive to organizations?Problems today:Many of the challenges with building applications today have very little to do with development tools, programming languages, or frameworks. Rather, many of the challenges that organizations face are related to the infrastructure required to deploy, run, and manage applications. Startups - For example, imagine you were a startup building the next social networking site or online game You have to worry about numerous issues that are unrelated to the functionality of the application.[Capacity]You have to think about the capacity requirements for the application.Will it be used by a few thousand users or hundreds of thousands or millions?How do users translate to bandwidth, storage, and server requirements?Will the usage be consistent during all times of the year? Will it be consistent over the lifetime of the application?Can you handle spikes in demand if there were sudden demands for the app? (Digg Effect)Ultimately, most organizations end up paying for more capacity then they need.[Deployment, operations, and versioning]Then you have to worry about deploying and operating your applicationHow do you deploy your application over multiple servers?How do you role out updates to the app without taking it offline?How do you manage patches? Enterprise - For established organizations, some of these decisions and problems may have already been addressed through a shared data center or an established staff and processes. However, in enterprise organizations we often find that apps are silos of their own servers. Established organizations also still have to spend a significant amount of capital and operations funding. IT resources are applied to maintaining applications rather than delivering new value and functionality. ISV - Finally, if you’re an ISV who builds applications for use by other businesses you have to worry about a number of additional problems. You have to think about your customer’s capacity, which gets factored into the cost of ownership. Often, your ability to sell your application is dependent on your customers ability to consume it.Your customers often have existing assets such as order fulfillment systems, ERP systems, multi-terabyte databases, etc. that are running on-premise. You must be able to easily integrate with these assets. So many things get in the way for building new appsInfrastructure - Operations, Patching, OS ManagementBuilding and maintaining costly infrastructureSo why is there so much hype around the cloud?When we talk with partners and customers, there are a few general reasons why they’re starting to find the cloud attractive. 1 - First, they view it as a way to reduce their capital and operations costs. A Cloud Platform provides a utility-like model to compute and storage resources – where organizations can only pay for what they use. This is often referred to as a “Pay as you go” model. 2 - Second, the cloud can potentially simplify the deployment and management of applicationsBy relieving organizations from worrying about infrastructure and capacity.3 - Cloud Services can improve time to market for new applications. Instead of spending weeks or months deploying servers and infrastructure to support new applications – organizations can quickly deploy applications to the cloud or use storage in the cloud where vendors provide pre-provisioned data centers.4 - Finally, Cloud Services can make it much easier to scale up or down as needed. Instead of building out capacity for peak usage or not having enough capacity to deal with usage spikes, with the cloud the platform vendor manages the capacity and you only use (and pay for) what you need. Think of this as “Pay as you grow”Notes:
Slide objectives: Ensure that the audience understands our experience and investments in running and operating services.Speaking Points: IntroMicrosoft hasn’t been running services quite as long as we’ve been making software – but we have been in the business for a while and at huge scale. Just a few numbers from our consumer businessLive Search: 2.16B queries per month, 41 languagesMSN: 550M unique users, 10B+ page views per monthLive ID: 1B+ Authentications/dayMessenger: 8.2B messages/dayMicrosoft has rapidly expanded its data center operations since embarking on the Software + Services strategy in 2005, and willcontinue to do so for the foreseeable future. Initially the company focused on leased facilities. Now we design and build our own data centers. These will soon be the largest and most advanced such facilities in the world—the Northlake facility near Chicago, for instance, will cover more than 500,000 square feet and deliver significant gains in energy efficiency and environmental performance. Data CentersThis is a listing of just the new Microsoft-owned data centers. Designing and building these facilities ourselves allows Microsoft greater control over power efficiency and related environmental impacts. The list below is partial:Quincy, WA: Complete, approx 500K sq ft, 27MW, uses entirely hydro-electric powerSan Antonio, TX: Opening Fall 08, approx 475K sq ft, 27MW, uses recycled water for coolingChicago, IL: Opening Spring/Summer 09, approx 550K sq ft, up to 60MW when full, 1st floor up to 220 double-stacked containers, 2nd floor standard raised-floor data center space, will use outside air for coolingDublin, Ireland: Opening Summer 09, approx 570K sq ft, up to 27MW, will use outside air for coolingInnovation:With the Chicago data center, the entire first floor will house containerstrucks will haul up to 200 containers into the building and back them into their slotsFacilities personnel will hook up Internet connections and power and cooling equipment; then each of the containers will be up and runningContainers provide: Energy efficiency, Cost, Deployment speedNotes:
Slide objectives: Summarize the top 7 takeaways for the Azure Services Platform. These are the key value propositions for developers.Speaking points: Comprehensive cloud services platformCloud computing, general purpose, & user-centricAbstraction, flexibility, and choiceAbstracts infrastructure, machines, and connectivityMix & match services as neededConnectivity to on-premises products Familiar programming model & tools Apply your .NET & Visual Studio skills to the cloudRich client experiences with Live ServicesStandard protocols & formats (HTTP, REST, ATOM, ...)Community-based libraries & samplesInterop with multiple platformsNotes: