Azure Service Platform – An Introduction

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.

Enterprise Application Sample for Windows Azure

 

 

Microsoft has released an end to end enterprise application sample for Windows Azure and Microsoft cloud technologies.

It is a service-oriented application based on the .NET Framework 4.0, including ASP.NET and Windows Communication Foundation (WCF).

It illustrates many of the .NET enterprise development technologies that can be used for building highly scalable, “cloud-connected” applications.

The application demonstrates a single code base that works on traditional servers, Hyper-V private clouds, and in the Windows Azure public cloud, including hybrid cloud scenarios.

The download includes the automated setup for the .NET StockTrader 5.5 and the Configuration Service 5.5, with associated technical documents that explain how to run and reconfigure the .NET StockTrader service-oriented application. Additional documentation in the download provides the steps necessary to implement the Configuration Service 5.5 in your own applications and services for central configuration management; distributed caching; load-balancing and failover across clustered service nodes. The sample includes:

· .NET StockTrader 5.5 composite Web application and middle tier services.
· Optional Windows Azure Projects for deploying to the cloud.
· New modes for Advanced Web Service (WS-*) message-level security and interoperability with a variety of non-Microsoft platforms via the SOA architecture.
· Configuration Service 5.5 with technical guides and samples.
· Capacity planning tool for running multi-agent benchmarks against the .NET StockTrader services.
· WSTest 1.5 Web services benchmark.

 

 

Developer Training Kits – Windows Azure, SQL Server 2012, Visual Studio, Windows Phone

Windows Azure training kit is released today which has all the new features added to the new Windows Azure announcement.

  • 12 new hands-on labs for Windows Azure Virtual Machines
  • 11 new hands-on labs for Windows Azure Web Sites
  • 2 new hands-on labs demonstrating Windows Azure with Windows 8 Metro-style applications
  • Several new hands-on labs for Node.js and PHP using Mac OS X
  • Updated content for the latest Windows Azure SDKs, tools, and new Windows Azure Management Portal
  • New and updated presentations designed to support individual sessions to a full 3 day training workshops.

Windows Azure Service Bus Training Kit

Check the below links if you are looking for Visual Studio & SQL Server 2012 Training kits.

Visual Studio 2011 Training kit

SQL Server 2012 Training kit

Visual Studio 2010 Training kit

Windows Phone 7.5 Training kit

Developer’s Guide to the Enterprise Library 5.0 Integration Pack for Windows Azure

Developer’s Guide to the Microsoft Enterprise Library Integration Pack for Windows Azure is an extension to the Microsoft Enterprise Library 5.0 that can be used with Windows Azure.

It includes the Autoscaling Application Block, the Transient Fault Handling Application Block, a protected configuration provider and the Blob configuration source.

Get the ebook (epub/mobi/pdf) from here.

Rich set of features in the New Windows Azure

ScottGu announced today the new Windows Azure features releasing today.

Windows Azure portal is based on REST API’s and it can be accessed directly through program or command line.

Features list include

1. Hosting custom VHD in cloud.

2. 10 Free websites one can host in a shared resource.

3. GIT/TFS based deployments.

4. Distrubuted caching

5. New SDK release today supporting new languages.

Read Scott’s full post here.

Link to the Chalk talk from the Azure team.

Check these Top Blog Posts

Visual Studio 2012 and the Windows Azure SDK for .NET (S.Somasegar)

Announcing the June 2012 Release of Windows Azure SDK for .NET – Now with Support for Visual Studio 2012 RC (Jason Zander)

Windows Azure – No Kidding (Scott Hanselman)

Windows Azure just got a lot friendlier to node.js developers (Glenn Block)