Inside Microsoft Azure


Published on

A Web architect who doesn't usually use Microsoft technologies explains Microsoft's cloud offering, Azure, in terms that hopefully other UNIX/open source people will understand.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Inside Microsoft Azure

  1. 1. National InstrumentsConfidential<br />
  2. 2. Inside Microsoft Azure<br />Ernest Mueller<br />Web Systems Architect<br /><br />
  3. 3. Why Azure?<br />
  4. 4. You’ve Sold Your Soul<br />
  5. 5. It’s PaaS, not IaaS<br />
  6. 6. Is That Better?<br />
  7. 7. What Is Azure?<br />
  8. 8. It’s Magic Fairy Dust<br />You don’t have to worry about the servers!<br />You just deploy your code!<br />You don’t need ops!<br />You don’t need provisioning or monitoring or anything, Azure “does it all for you!”<br />Just right click in Visual Studio and you’re all cloudy! Update your resume!<br />
  9. 9. Cold Iron Truth<br />Of course, that’s all BS if you want to do much “real.”<br />But speaking as a open source/Linux/Java sysadmin of 18 years experience who has been known to say “Microsoft is the devil” – Azure is actually pretty good.<br />And it’s even easy to understand, once you dismiss the notion that it’s all “PaaS pixie dust” – it’s more like an IaaS offering with some cool additional facilities. <br />Allow me to explain in sysadmin straight-talk terms. Many of you know AWS so I’ll compare to it some.<br />
  10. 10. Azure Compute<br />In your “hosted service,” you define tiers called “roles” instead of individual boxes; you then specify how many “instances” (VMs) run per role.<br />There are three types of roles:<br />Web Role: Win2k8 VM with IIS on it<br />Worker Role: Win2k8 VM without IIS on it<br />VM Role: uploaded Hyper-V VM with Win2k3-8 image of your choice – with some limitations<br />
  11. 11. Azure Instance Sizing<br />Extra Small - 1x1 GHz, 768 MB RAM, 20 GB disk, $0.05/instance-hour<br />Small - 1x1.6 GHz, 1.75 GB RAM, 225 GB disk $0.12/instance-hour<br />Medium – 2x1.6 GHz, 3.5 GB RAM, 490 GB disk, $0.24/instance-hour<br />Large – 4x1.6 GHz, 7.0 GB RAM, 1000 GB disk, $0.48/instance-hour <br />Extra Large- 8x1.6 GHz, 14 GB RAM, 2040 GB disk, $0.96/instance-hour<br />Note that these match Amazon EC2 Windows instance specs and costs closely<br />But what about the details, you ask?<br />
  12. 12. Role B<br />Count: 2<br />Update Domains: 2<br />Fault Domains: 2<br />Size: Medium<br />Role A<br />Count: 3<br />Update Domains: 2<br />Fault Domains: 3<br />Size: Large<br /><br /><br />Load<br />Balancer<br /><br /><br /><br />Fault Domain 2<br />Fault Domain 1<br />Fault Domain 3<br />
  13. 13. The Secret Sauce<br />It’s model driven automation from XML config files – see demo<br />The Azure Fabric checks instance health, balances stuff, controls upgrades. You can hook it for events like “RoleChanging”.<br />Managed deployment and upgrades<br />Local compute and storage emulator (that’s a killer feature!) and Visual Studio integration<br />And you can do everything via REST and/or command line!!!<br />
  14. 14. Deployment<br />You (or VS) runs cspack.exe which creates a .cspkg package (just a .zip file) and your .cscfgconfig file (just XML)<br />It uploads it to storage and then you can do an in place update (rolling through upgrade domains) or a “VIP swap” of staging to production<br />
  15. 15. Demo<br />WARNING! I am not a .NET programmer and use Windows Server only when forced to by software requirements.<br />But I can still do this!<br />If you have deep Microsoft-type questions, though, “I don’t know.” Sorry!<br />
  16. 16. Important Lessons - Compute<br />Do not use local instance storage for ANYTHING important. It is ephemeral and role instances may be stopped and started at any time by Azure to move them around.<br />Functional role limitations reduced (running in admin mode, installing using registry, full IIS, startup tasks now allowed)<br />There is a limit of five kinds of role in a hosted service. Use multiple hosted services for complex architectures.<br />Your app’s directory is READ ONLY when deployed/running.<br />Fault domains and upgrade domains are largely Azure managed, you can say “how many upgrade domains.”<br />
  17. 17. Azure Storage<br />It’s all REST access, or APIs wrapping REST<br />One “storage account” has a 100 TB limit<br />Blobs – you know, files, like S3. Only one writer at a time but you can make read-only copies.<br />Page blob – optimized for streaming, up to 1 TB<br />Block blob – optimized for random access, up to 200 GB<br />Queues – you can put 8 KB XML messages in them.<br />Drives – a page blob mounted as a NTFS drive<br />
  18. 18. More Storage<br />Tables – noSQL style tables, arbitrary fields, partition and row keys for addressing. 1 MB entities with up to 255 properties each. Super scalable.<br />SQL Azure- like SQL Server 2008 in Azure, with limitations of course. 50 GB max database size. No transaction log you can get to.<br />
  19. 19. Important Lessons - Storage<br />SQL Azure – no transaction cost, pay by size ($9.99/GB)<br />Azure Tables/Blobs/etc – pay by size ($0.15/GB) and per transaction ($0.01/10k), looking funny at it is a transaction<br />Azure Queues – “you probably don’t want to use them, use SQL Azure.” No guarantees against multiple readers getting the same message.<br />Use a distributed caching midtier for dynamic persistence like memcachedor Velocity (Azure AppFabric cache).<br />Azure Sync the new direction for replication/DR<br />
  20. 20. Important Lessons - Networking<br />Under the covers it’s F5 load balancers.<br />Each role has a limit of 5 public or internal “endpoints” (VIPs) you define in the .csdef file.<br />Azure Service Bus allows some pub-sub <br />Azure Connect is a new agent-based VPN node connect option, can connect on premise to Azure… kinda<br />You can Remote Desktop to instances now too<br />You can query the Azure Fabric to get addresses of other instances for peer to peer connection<br />
  21. 21. Important Lessons - Operations<br />Azure does not “autoscale.” It will scale, when you insert the integer number of VMs you want.<br />The fabric monitors the instances at a very low level and the “Azure Diagnostics API” just dumps perfmon/log data to storage – it’s up to you to monitor apps and interpret the data (there’s a SCOM plugin for Azure now)<br />Cumulux = RightScale for Azure, look them up<br />
  22. 22. Using Azure Right<br />The Azure architecture is specifically optimized for doing things “its way.” “Its way” is luckily arguably the “right way.” Ideally you are writing .NET code that has<br />asynchronous processes (event-driven design) <br />parallelization <br />idempotent operations (handle duplicity) <br />de-normalized, partitioned data (sharding) <br />shared nothing architecture <br />fault-tolerance by redundancy and replication <br />
  23. 23. Using Azure Right<br />You can run tomcat, memcached, and mySQL on it – “but you may not want to”<br />You can install more legacy Windows apps now with their newest release – but there are still a lot of limitations, and the cuter your app tries to be with low level stuff, the less likely it’ll work in Azure<br />
  24. 24. Why Azure Is Cool To An Old Crusty UNIX Guy<br />The XML config/definition and Azure Fabric – anyone remember PIE? We implemented these concepts for our Amazon apps because they are so necessary.<br />The staging/production VIP swap thing makes for easy continuous integration.<br />Almost everything can be command lined/REST APIed so you can integrate with your existing tools.<br />
  25. 25. Azure Resources<br />Make sure and get all the “Azure stuff” – it’s a long and painful list of installs.<br />Windows Azure Platform Training Kit is great<br />Azure boot camps -<br />Ryan Dunn’s blog -<br />Cerebratatools -<br />Codeplex stuff like Azure Storage Explorer<br />
  26. 26. Azure Resources<br />You can get some free Azure in a number of ways – MSDN comes with a minimal entitlement<br /> 30 day pass<br /> for startups<br /> for web design firms<br /> for HS/college students<br />Talk to your Microsoft rep – they offer MTC visits and “TAP/Metro” early access programs<br />