These are my notes from Cloud OS Event conducted by Microsoft. It gives a high level overview of Azure service platform.
- Industry has defined three categories of Cloud services:
- IaaS (Infrastructure as service) – a set of infrastructure level capabilities such as an operating system, network connectivity, etc. that are delivered as pay for use services and can be used to host applications.
- PaaS (Platform as Service) – higher level sets of functionality that are delivered as consumable services for developers who are building applications. PaaS is about abstracting developers from the underlying infrastructure to enable applications to quickly be composed.
- SaaS (Software as Service) – applications that are delivered using a service delivery model where organizations can simply consume and use the application. Typically an organization would pay for the use of the application.
Packaged Software
With packaged software a customer would be responsible for managing the entire stack – ranging from the network connectivity to the applications. This is what we have today.
- IaaS
- With Infrastructure as a Service, the lower levels of the stack are managed by a vendor. Some of these components can be provided by traditional hosters in fact most of them have moved to having a virtualized offering.
- The customer is still responsible for managing the OS through the Applications.
- For the developer, an obvious benefit with IaaS is that it frees the developer from many concerns when provisioning physical or virtual machines.
- PaaS
- With Platform as a Service, everything from the network connectivity through the runtime is provided and managed by the platform vendor.
- The Windows Azure best fits in this category today.
- PaaS offerings further reduce the developer burden by additionally supporting the platform runtime and related application services.
- With PaaS, the developer can, almost immediately, begin creating the business logic for an application.
- Potentially, the increases in productivity are considerable and, because the hardware and operational aspects of the cloud platform are also managed by the cloud platform provider, applications can quickly be taken from an idea to reality very quickly.
- SaaS
- Finally, with SaaS, a vendor provides the application and abstracts you from all of the underlying components.
Azure Storage Options – Fundamental data abstractions to build Cloud Applications
- Blob service, for storing binary and text data
- Queue service, for storing messages that may be accessed by a client
- Queue service provides reliable, persistent messaging within and between services. The REST API for the Queue service exposes two resources: queues and messages.
- Enables workflow between roles
- Load work in a queue
- Producer can forget about message once it is in queue
- Many workers consume the queue
- For extreme throughput (>500 tps)
- Use multiple queues
- Read messages in batches
- Multiple work items per message
- Table service, for structured storage for non-relational data
- Table service provides structured storage in the form of tables.
- Table service supports a REST API that is compliant with the ADO.NET Data Services REST API.
- Developers may also use the .NET Client Library for ADO.NET Data Services to access the Table service.
- Tables store data as entities.
- An entity is a collection of named properties and their values, similar to a row.
- Entity can have up to 255 properties
- Up to 1MB per entity
- Mandatory Properties for every entity
- PartitionKey & RowKey (only indexed properties)
- Uniquely identifies an entity
- Defines the sort order
- Timestamp
- Optimistic Concurrency
- Exposed as an HTTP Etag
- No fixed schema for other properties
- Each property is stored as a <name, typed value> pair
- No schema stored for a table
- Properties can be the standard .NET types
- String, binary, bool, DateTime, GUID, int, int64, and double
- Tables are partitioned to support load balancing across storage nodes.
- Each table has as its first property a partition key that specifies the partition an entity belongs to.
- The second property is a row key that identifies an entity within a given partition.
- The combination of the partition key and the row key forms a primary key that identifies each entity uniquely within the table.
- The Table service does not enforce any schema.
- A developer may choose to implement and enforce a schema on the client side
- Windows Azure drives, for mounting an NTFS volume accessible to code running in Windows Azure service.
- Use existing NTFS APIs to access a network attached durable drive
- Use System.IO from .NET
- Benefits
- Move existing apps using NTFS more easily to the cloud
- Durability and survival of data on instance recycle
- A Windows Azure Drive is an NTFS VHD Page Blob
- Mounts Page Blob over the network as an NTFS drive
- Local cache on instance for read operations
- All flushed and unbuffered writes to drive are made durable to the Page Blob
- Programmatic access to the Blob, Queue, and Table services is available via the Windows Azure Managed Library and the Windows Azure storage services REST API
Identity (Security)
- Integrate with enterprise identity
- Enable single sign-on within your apps
- Enterprise Graph REST API
- Claim Based Identity
- Windows Azure Access Control Service
- Host an STS in cloud for you
- WS-Federation, WS-Trust, Open ID, OAuth
Service Bus
- Secure messaging and relay capabilities
- Easily build hybrid applications
- Enable loosely coupled solutions
- Connectivity
- Service Relay -Rich Options for Interconnecting apps across network boundaries
- Messaging
- Queuing Publish/Subscribe
- Reliable Transfer -Reliable transaction aware cloud messaging infrastructure for business applications
- Service Management
- Service Discovery, Monitoring
- Integration Routing
- Content based routing & process coordination.
Key Capabilities
- Relayed One-Way Unicast and Multicast
- Relayed WCF NET.TCP with Direct Connect Option
- Relayed WCF HTTP with support for REST and SOAP 1.1/1.2
- Endpoint protection with Access Control
Azure Usage Scenarios :
- Ideal for Applications Needing:
- Scalability
- Availability
- Fault Tolerance
- Common Application Uses:
- Web Sites
- Compute Intensive apps
- Device Applications
- Web APIs
- Social Games
Summary :
Windows Azure provides a comprehensive set of services to selectively compose to build cloud applications.
Global Data Center Footprint – 99.95% Monthly SLA.
Flexible & Open Compute Options – Virtual Machines, Web Sites, & Cloud Services
Managed Building Block Services – SQL Database, Cache, Service Bus.