Windows AZURE services Vadym Fedorov, July 2010
Windows AZURE services
Vadym Fedorov, July 2010
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
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
Details and Examples of Cloud
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
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
What is Azure Programmatically?
Web Role (Web UI). Worker Role (similar to a windows service). Storage.
Blobs. Data. Queues. – key to scalability.
Web Role
AzureStorag
e
Browser
Browser
Browser
Browser
Browser
Web Role
Web Role
N L B
Worker Role
Worker Role
Worker Role
N L B
p1 p2 p3
Desktop And Related Azure ConceptsDesktop
EXE Application
Configuration Manifest DLL
Windows forms library
Windows service Local data stores
Windows Azure
Service package Service
configuration Service definition Service role
Web role Worker role
Internet data stores
“Typical” Azure Application
Your Data
Your Application
LB
Web Site(ASPX, ASMX,
WCF)
Web Site(ASPX, ASMX,
WCF)Web Role
(ASPX, WCF, PhP)
Worker Service
Worker Role
LB
Queues
Blobs
TablesInternet
Windows Azure Platform
Your Relational Data
Tables Views SPs Triggers
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.
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
Storage Services
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
Worker Role No inbound
network connections
Can read requests from queue in storage
Storage Service
Public Internet
Worker Role
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
Windows Azure Storage Abstractions
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
Block
Blob Storage Concepts
BlobContainerAccount
Account
Pictures
IMG001.JPG
IMG002.JPG
Movies MOV1.AVI
Block AAAA
Block AAAB
Block AAAC
Simple asynchronous dispatch queue Create and delete queues
Message: Retrieved at least once Max size 8kb Operations:
• Enqueue• Dequeue• RemoveMessage
Queues
Queue Storage Concepts
MessageQueueAccount
Account
Thumbnail Jobs
128x128, http…//:
256x256, http…//:
Indexing Jobs
http…//:
http…//:
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
Table Storage Concepts
EntityTableAccount
Account
Users
Name=…hash…=
Name=…hash…=
PhotoIndex
Tag=…id…=
Tag=…,id…=
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
SQL Azure
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
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
Only SQL Authentication. No exposing of the physical administrative functions. 2 types of accounts:
1GB databases. 10GB databases.
SQL Azure. Deeper look.
Windows Azure and SQL Azure
Azure Storage SQL Azure
Vision Highly scalable, highly available store in the Cloud
Scalable, highly available relational store in the Cloud
Access Uses WCF Data Services - REST
SqlClient + TSQL(Use Azure Web Role + WCF Data Services if REST is required)
Relational? (today) No Yes – but with some limitations
Relational? (tomorrow)
No Yes – with less and less limitations
Analogy File System RDBMS – as it is
Developing – languages and tools
Software Development Kit
Develop Run
Code
Data
RelationalData
Portal
Deploy
Api
Software Development Kit
Local Machine
Windows Azure Simulation Environment
Development Fabric Development Storage SQL Server Express
Tools
Develop locally. Visual Studio 2008/2010 Project Plugin. Development Storage. Development Fabric. Sql Server Express running locally.
Write Applications for Windows Azure
Microsoft Visual StudioDevelopment Environment
End Users
Windows Azure Platform
Developers
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
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