3. What is cloud computing?
• Hardware and software resources that
are available over the Internet
• Typically as a set of web services
• Groups of resources are pooled into a
singular entity
• Enables quicker time to market
• Lowers maintenance costs over time
• Allows scalability as application needs
increase
4. Variations of cloud computing
• IaaS/NaaS: Amazon AWS, OpenStack
• Elasitic/scalable cloud agnostic VMs (typically priced
based on size)
• Supporting web services
• PaaS: Windows Azure, Google App Engine, Heroku
• Scalable cloud aware runtimes
• Supporting web services
• SaaS: Office 365, Google Apps
• Managed web applications
5. Windows Azure
• Announced PDC 2008
• Proper CTP at PDC 2009
• Deals with all the “enterprise” things you’d expect (e.g. geo
replication/failover)
• Number of different programming languages supported (C#, C++,
Java, PHP, Ruby, Python, Node.js, etc.)
• Native SDKs for many languages + REST API
• Deep integration and tooling
• Supports dim sum style integration
6. Azure Platform Services
Native SDKs, REST API
Cloud
Services
(Web Role,
Worker Role)
SQL
Database
Storage
(Blob, Queues,
Table)
Service
Bus
Caching
7. Azure as a “platform”
The underlying Azure philosophy is to be the new cloud-aware
operating system of the Internet, a very different take from Amazon’s
initial stance.
Traditional OS Azure OS
Application Executable Web Role
System Service (CRON Job) Worker Role
File System Blob Storage
Database SQL Database or Table Storage
8. Compute Services
• Virtual Machines
• Similar to Amazon, where it is essentially an elastic VPS
• Deploy any image (not just Windows)
• Can be securely connected to on-premises LAN
• Cloud Services
• Hosting container of custom code in either web or worker role instances
• Provides load balancing, health monitoring, and integrated staging
environments
• Managed via web interface or API
• Can be securely connected to on-premises LAN
9. Compute Services (Continued)
• Websites
• Similar to Cloud Services web role, but more like shared hosting
• Support for scaling horizontally
• Support multiple languages and databases
• Deploy via FTP upload, TFS, GIT
• Provides “gallery” of pre-baked components (Wordpress blog, etc.)
• Mobile Services
• Native SDKs for Windows Phone, iOS, Android
• User authentication via 3rd party (e.g. Google, Microsoft, Twitter, Facebook)
• Push notification support
10. Data Services
• SQL Database
• Almost exactly like working with local SQL server
• Automagically clustered and replicated for reliability and performance
• Supports scheduled replication to “on-premises” SQL Server
• Table Storage
• NoSQL database for non-relational data up to 100TB
• Replicated 3X across separate fault domains
• Uses “partition” and “row” key to spatially separate data for parallel access
• Limit of 1MB or 255 properties per row, 1000 rows per query
• Only supports strings for keys and basic value-types for values
11. Data Services (Continued)
• Blob Storage
• Similar to a file system, but with SDK to read/write streams, HTTP available
• Supports very large files
• Comes with versioning support and metadata
• Queues
• Reliable messaging service
• Support for small messages (< 64KB) in large queues (< 100TB)
• Message is guaranteed to be delivered … at least once
• Lease based access of messages (30 seconds – 7 days)
• Ordering is not guaranteed
12. App Services
• Media Services
• Just too expensive to even talk about!
• Content Delivery Network
• One-click to add support to storage account
• Caching
• Per-role-instance caching or shared
• Simple API for reading/writing object
• Easy to integrate with ASP.NET session
13. App Services (Continued)
• Service Bus
• Reliable messaging service
• Very similar to queues, but more robust
• Supports medium messages (< 256 KB) in medium queues (< 5GB)
• Message is guaranteed to be delivered … exactly once
• Lock based access of messages (60 seconds w/ “renew” API call to extend)
• Ordering is FIFO guaranteed