Microsoft sees four fundamental requirements for any cloud computing offering. First it must have the ability to scale as customer demand requires. Second, it must provide automated service management, delivering more than just disk space and processors; it must have but the to seamlessly failover scale up scaled down and optimize management of the applications and services it hosts. Third must be highly available, with the highest level of reliability as well as redundancy and fail-over. Finally a must for multi-tenancy, concurrent hosting of multiple customers to optimize utilization and control costs.Beyond these fundamental requirements, there are also a number of considerations -- variables -- for cloud computing platforms. They may be located on premises (within IT data center) or remotely hosted by the provider and accessed over the Internet. The infrastructure they provide may support a single type of technology, or have the ability to host heterogeneous, interoperable technologies. The business model costs might be optimized for operating expenses or towards capital investment. The hardware and networking resources might be leased or owned. And the management of the IT systems might be self directed by the business or performed by a third party, perhaps cloud computing platform provider.
From the customer’s perspective, SQL Azure provides logical databases for application data storage. In reality, each customer’s data is actually stored in multiple SQL Server databases, which are distributed across multiple physical servers. Many customers may share the same physical database, but the data is presented to the customer through a logical database that abstracts the physical storage architecture and uses automatic load balancing and connection routing to access the distributed data. Security and isolation is managed automatically.The key impact of this model for the customer is a move from managing physical servers to focus on logical management of data storage through policies.
The Microsoft Cloud<br />Data Center Infrastructure<br />
Windows Azure<br />Compute – instance types: Web Role & Worker Role. Windows Azure applications are built with web role instances, worker role instances, or a combination of both.<br />Operating system as an online service; with automated provisioning and services management<br />Development, service hosting, & management environment<br />.NET, Java PHP, Python, Ruby, native code (C/C++, Win32, etc.)<br />ASP.NET providers, FastCGI, memcached, MySQL, Tomcat<br />Full-trust – supports standard languages and APIs<br />Secure certificate store<br />Management API’s, and logging and diagnostics systems<br />Multiple roles – Web, Worker, Virtual Machine (VHD)<br />Multiple VM sizes<br />1.6 GHz CPU x64, 1.75GB RAM, 100Mbps network, 250GB volatile storage<br />Small (1X), Medium (2X), Large (4X), X-Large (8X)<br />In-place rolling upgrades, organized by upgrade domains<br />Walk each upgrade domain one at a time<br />Each instance runs on its own VM (virtual machine), replicated as needed<br />The Fabric Controller communicates with every server within the Fabric. It manages Windows Azure, monitors every application, decides where new applications should run – optimizing hardware utilization.<br />Guest VM 3<br />Guest VM 2<br />Guest VM 1<br />Host VM<br />Maintenance OS<br />Guest VM 1<br />Host VM<br />Host VM<br />
SQL Azure<br />Highly available, scalable, and consistent distributed relational database service; with geo-replication and geo-location of data<br />VM 5<br />VM 6<br />VM 4<br />DBA role places more focus on policy/logical management<br />SQL Server<br />SQL Server<br />SQL Server<br />SQL DB<br />SQL DB<br />SQL DB<br />Shared infrastructure at SQL database and below<br />Each user database is replicated to one or more servers (configurable based on SLA)<br />Client requests are routed to current “primary server” for read and write operations (based on SQL session)<br />Security, lockdown and isolation enforced in SQL tier<br />Highly scalable and state-of-the-art HA technology<br />Automatic failure detection; client request re-routed to new primary on failure <br />High SLA guarantee using logical replication (hot standby replicas)<br />Automatic management, self-healing and load balancing across shared resource pool<br />Security Model<br />Uses regular SQL security model<br />Authenticate logins, map to users and roles<br />Authorize users and roles to SQL objects<br />Supports standard SQL logins<br />Logins are username + password strings<br />Service enforces use of SSL to secure credentials<br />Upcoming support for AD Federation, WLID, etc.<br />Connectivity Model<br />Connect using common client libraries<br />ADO.NET, OLE DB, ODBC, etc.<br />Clients connect to a database directly<br />Cannot hop across DBs<br />UserDB1<br />UserDB2<br />UserDB3<br />UserDB4<br />UserDB1<br />UserDB2<br />UserDB3<br />UserDB4<br />UserDB1<br />UserDB2<br />UserDB3<br />UserDB4<br />SQL Azure database provisioning (databases, accounts, roles, …, metering, and billing)<br />Scalability and Availability: fabric, failover, replication, and load balancing<br />
Windows Azure platform AppFabric<br />Internet-scoped overlay-network bridging across IP NATs and firewalls with federated access control<br />Service Bus<br />Expose RESTful or SOAP services over the internet through firewall and NAT boundaries<br />Communicate bi-directionally between apps and services in an interoperable manner<br />Choose relays, queues, routers, and other message patterns and types<br />Scale out naturally and reliably as apps and services grow<br />Access Control<br />Integrate authorization into apps to control “what users are allowed to do”<br />Federate with multiple identity systems across organizations and ID providers<br />Easily apply fine-grained access control rules<br />Secure Service Bus communications<br />Scale out naturally and reliably as apps and services grow<br />
Sign up at the Windows Azure Platform developers’ portal<br />Windows Azure access<br />Developer tools <br />White papers<br />Sample applications<br />Plan pilot applications, proofs of concept, and architectural design sessions with Windows Azure partners<br />http://www.azure.com<br />
Web Role and Worker Role<br />Service Instance<br />Service Instance<br />Worker Role<br />Web Role<br />.NET in Windows Azure<br />default.aspx<br />RoleEntry Point<br />IIS<br />bind port(x)<br />SQL Database<br />http://instance:x<br />http://instance:y<br />Service<br />Bus<br />Access Control<br />http://app:80<br />Fabric Controller<br />Load Balancer<br />Table<br />Storage<br />Blob<br />Storage<br />Queue<br />
Web Role and IIS/FastCGI with Native Runtime<br />Service Instance<br />Service Instance<br />Web Role<br />PHP in Windows Azure<br />php<br />-cgi<br />index.php<br />FastCGI<br />IIS<br />bind port(x)<br />SQL Database<br />http://instance:x<br />http://instance:y<br />Service<br />Bus<br />Access Control<br />http://app:80<br />Fabric Controller<br />Load Balancer<br />Table<br />Storage<br />Blob<br />Storage<br />Queue<br />