2. Agenda Cloud Computing - Some terms Why cloud computing? Windows Azure What is Azure Programmatically? Desktop And Related Azure Concepts Services Provided and APIs Tools Reference
3. Cloud Computing - Some terms Term cloud is used as a metaphor for internet A model of computation and data storage based on “pay as you go” access to “unlimited” remote data center capabilities A cloud infrastructure provides a framework to manage scalable, reliable, on-demand access to applications Concept generally incorporates combinations of the following Infrastructure as a service (IaaS) Platform as a service (PaaS) Software as a service(SaaS) Not to be confused with Grid Computing – a form of distributed computing Cluster of loosely coupled, networked computers acting in concert to perform very large tasks
5. Why cloud computing? Data centers are notoriously underutilized, often idle 85% of the time Over provisioning Insufficient capacity planning and sizing Improper understanding of scalability requirements etc Offers startups and SMB’s quick setup, scalability, flexibility and automated management. Pay as you go model helps startups to start small and go big Cost effective solutions to key business demands Move workloads to improve efficiency
6. Windows Azure The Windows Azure provides core technologies for building rich services on top of unreliable but scalable hardware (i.e., a cloud operating system) Supports building applications that scale Programming tools and interfaces are designed to be familiar to traditional desktop programmer Introduce new concepts that are similar to existing ones at a different abstraction level
7. What is Azure Programmatically? Web Role (Web UI). Worker Role (similar to a windows service). Storage. Blobs. Data. Queues. – key to scalability. Browser p1 p2 p3 N L B Web Role Worker Role N L B Browser AzureStorage Web Role Browser Worker Role Browser Web Role Worker Role Browser
8. Desktop And Related Azure Concepts Desktop Windows Azure EXE Application Configuration Manifest DLL Windows forms library Windows service Local data stores Service package Service configuration Service definition Service role Web role Worker role Internet data stores
9. “Typical” Azure Application Your Data Windows Azure Platform Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Role (ASPX, WCF, PhP) Your Application Queues Worker Service Worker Role LB Blobs Internet LB Tables Triggers SPs Views Tables Your Relational Data
10. Services Provided and APIs Services Web Applications (Web Role, Worker Role). Storage – File, Blobs, and Tables. Queues. Timed Processing. APIs REST based. High level library. ASP.NET Providers.
11. Service Concepts Service definition Defines aspects of a service that cannot be changed without redeployment Types of roles and static role configuration Set of configuration settings for a role Contract with the environment code runs Service configurations Defines values for properties that can be dynamically updated for a running deployment Values of a configuration parameter Number of running instances
12. Web Role Web farm that handles request from the internet IIS7 hosted web core Hosts ASP.NET XML based configuration of IIS7 Integrated managed pipeline Supports SSL Public Internet Web Role Load Balancer Storage Services
13. Worker Role No inbound network connections Can read requests from queue in storage Public Internet Worker Role Storage Service
14. Windows Azure Storage Abstractions Blobs – provide a simple interface for storing named files along with metadata for the file Tables – provide structured storage. A table is a set of entities, which contain a set of properties Queues – provide reliable storage and delivery of messages for an application
15. Blobs stored in Containers 1 or more Containers per account Scoping is at container level …/Container/blobpath Blobs Capacity 50GB in CTP Metadata, accessed independently name/value pairs (8kb total) Private or Public container access Use Blobs for file system Blobs
17. Simple asynchronous dispatch queue Create and delete queues Message: Retrieved at least once Max size 8kb Operations: Enqueue Dequeue RemoveMessage Queues
18. Queue Storage Concepts Message Queue Account 128x128, http://… Thumbnail Jobs 256x256, http://… Account http://… Indexing Jobs http://…
19. Entities and properties (rows & columns) Tables scoped by account Designed for billions+ Scale-out using partitions Partition key & row key Operations performed on partitions Efficient queries No limit on number of partitions Use ADO.NET Data Services Tables
21. SQL Azure SQL Azure is an umbrella name for a group of cloud-based technologies for working with relational and other types of data. The first members of this family to appear are SQL Azure Database and “Huron” Data Sync. Familiar SQL Server relational model Uses existing APIs & tools Friction free provisioning and reduced management Built for the Cloud with availability and scale Accessible to all from PHP, Ruby, and Java
22. Constants Constraints Cursors Index management and rebuilding indexes Local temporary tables Reserved keywords Stored procedures Statistics management Transactions Triggers Tables, joins, and table variables Transact-SQL language elements User-defined functions Views SQL Azure. Supported
23. Common Language Runtime (CLR) Database file placement Database mirroring Distributed queries Distributed transactions Filegroup management Full Text Search Global temporary tables Spatial data and indexes SQL Server configuration options SQL Server Service Broker System tables Trace Flags SQL Azure. Not supported
24. Only SQL Authentication. No exposing of the physical administrative functions. 2 types of accounts: 1GB databases. 10GB databases. SQL Azure. Deeper look.
26. Developing – languages and tools Code Software Development Kit Portal Data Relational Data Api Develop Deploy Run
27. Software Development Kit Local Machine Windows Azure Simulation Environment Development Storage SQL Server Express Development Fabric
28. Tools Develop locally. Visual Studio 2008/2010 Project Plugin. Development Storage. Development Fabric. Sql Server Express running locally.
29. Write Applications for Windows Azure Windows Azure Platform End Users Microsoft Visual Studio Development Environment Developers
30. Summary PaaS for Rapid Cloud Development, Deployment and Maintenance For .NET and… for not .NET A new programming model Web role Worker role Blobs, Tables and queues
31. Official Microsoft Azure Site: http://www.microsoft.com/windowsazure/ Windows Azure Training Kit: http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&displaylang=en Windows Azure Application. Riviera: http://code.msdn.microsoft.com/riviera Windows Azure Application examples: http://blogs.msdn.com/goto100/archive/2009/12/23/multi-tenanted-applications-on-windows-azure-and-sql-azure-added-to-my-todo-list-for-2010.aspx References