Introduction to Windows Azure(2)

+9

No comments posted yet

Comments

Slide 4

Key points here are to start to message that Windows Azure is designed for the cloud. Scalability and Availability are the key design points here – remind people throughout the talk that its designed to be scalable and available. Last point is important. Windows Azure only runs in Microsoft data centers. It’s not a shrink wrapped version of windows that they can buy and run in data centers themselves. There are no plans to do this.

Slide 5

You can draw the comparison between the desktop/server OS and the cloud OS. The desktop abstracts away things like printers, display drivers, memory etc. So you only have to worry about building your desktop application. The Cloud OS does this for the cloud, but instead of printers, display drivers etc. it does it across multiple servers, networking compoents, provides a “cloud file system” for storage, a programming environment etc. The last 2 points: 1. Interoperability – the storage etc uses REST based protocols. 2. Designed for Utility Computing – Rather than charging a per-seat license etc. you will be likely charged based on consumption. The details of this are not know, so don’t speculate, other than we will be competitive.

Slide 6

Windows Azure is not about letting you setup and run an entire OS with your application. Instead it is about running your service, using commodity servers that are managed by Microsoft. Microsoft take care of deploying your service, patching the OS, keeping your service running, configuring hardware, infrastructure etc. All of this is automated. All you need to worry about is writing the service.

Slide 7

Here are some of the features we’ll walk through in the next few minutes.

Slide 8

This is the exploding cloud diagram

Slide 9

Windows Azure runs on Windows Server 2008 running .NET 3.5 SP1. At MIX09, we opened up support for Full Trust and FastCGI. Full Trust is starred here because while Full Trust gives you access to p/invoke into native code, it is code that still runs in user mode (not administrator). However, for most native code that is just fine. If you wanted to call into some Win32 APIs for instance, it might not work in all instances because we are not running your code under a system administrator account. There are 2 roles in play A web role – which is just a web site, asp.net, wcf, images, css etc. A worker role – which is similar to a windows service, it runs in the background and can be used to decouple processing. There is a diagram later that shows the architecture, so don’t worry about how it fits together just yet. Key to point out the inbound protocols are HTTP & HTTPS – outbound are any TCP Socket, (but not UDP). All servers are stateless, and all access if through load balancers.

Slide 10

This should give a short introduction to storage. Key points are its durable (meaning once you write something we write it to disk), scalable (you have multiple servers with your data), available (the same as compute, we make sure the storage service is always running – there are 3 instances of your data at all times). Quickly work through the different types of storage: Blobs – similar to the file system, use it to store content that changes, uploads, unstructured data, images, movies etc. Tables – Semi-structured, provides a partitioned entity store (more on partitions etc. in the Building Azure Services Talk) – allows you to have tables containing billions of rows, partitioned across multiple servers. Queues – Simple queue for decoupling Computer Web and Worker Roles. All access is through REST interface. You can actually access the storage from outside of the data center (you don’t need compute) and you can access storage via anything that can make a HTTP request. It also means table storage can be accesses via ADO.NET Data Services.

Slide 11

Remind them the cloud is all the hardware across the board. Point out the automated service management,

Slide 12

Developer SDK is a Cloud in a box, allowing you to develop and debug locally without requiring a connection to the cloud. You can do this without Visual Studio as there are command line tools for executing the “cloud in a box” and publishing to the cloud. There is also a separate download for the Visual Studio 2008 tools, which provide the VS debugging and templates. Requirements are any version of Visual Studio (including Web Developer Express), Vista SP1, Win7 RC or later.

Slide 13

There is a small API for the cloud, that allows you to do some simple things, such as logging, reading from a service configuration file, and local file system access. The API is small and is easy to learn.

Slide 14

To allow us to deploy and operate your service in the cloud, we need to know the structure of your service. You describe your service and operating parameters through the use of a service model. This service model tells us which roles you have, any service configuration and can also describe the number of instances you need for each role within your service. Whilst this model is simple today, the model will be extended to allow you to describe a much richer operational model – e.g. allowing scale-out and scale-down based upon consumption and performance. This file is also where you would store configuration that may change once deployed. Since all files within a role are read-only, you cannot change either an app.config or web.config file once deployed, the only configuration you can change is in the service model.

Slide 16

If you have already presented the overview session, you may wish to skip this. For the demo: Create a new cloud Web project named Hello World. Change the title on the default.aspx page to say “Hello cloud” Point out the different parts of the project solution, including the 2 projects and service configuration files. Hit F5, to execute the project, then right click the fabric icon from the icon tray to show the developer UI. Show the nodes on the UI for the service. Close the Web Browser (to/or stop debugging)

Slide 17

In this next section, we’ll dig a little deeper on storage. Recall there are 3 types of storage. Recall the design point is for the cloud, there are 3 replicas of data, and we implement guaranteed consistency. In the future there will be some transaction support and this is why we use guaranteed consistency. Access is via a storage account – you can have multiple storage accounts per live id. Although the APU is REST, there is a sample .net storage client in the SDK that you can compile and use within your project. This makes working with storage much easier.

Slide 18

Blobs Blobs are stored in containers. There are 0 or more blobs per container and 0 or more containers per account. (since you can have 0 containers, but then you would not have any blobs either) Typically url in the cloud is http://accountname.blob.core.windows.net/container/blobpath Blob paths can contain the / character, so you can give the illusion of multiple folders, but there is only 1 level of containers. Blob capacity at CTP is 50gb. There is an 8k dictionary that can be associated with blobs for metadata. Blobs can be private or public: Private requires a key to read and write Public requires a key to write, but NO KEY to read. Use blobs where you would use the file system in the past.

Slide 19

Queues are simple: Messages are placed in queues. Max size is 8k (and it’s a string) Message can be read from the queue, at which point it is hidden. Once whatever read the message from the queue is finished processing the message, it should then remove the message from the queue. If not the message is returned to the queue after a specific user defined time limit. This can be used to handle code failures etc.

Slide 20

Tables are simply collections of Entities. Entites must have a PartitionKey and RowKey – can also contain up to 256 other properties. Entities within a table need not be the same shape! E.g.: Entity 1: PartitionKey, RowKey, firstname Entity 2: PartitionKey, RowKey, firstname, lastname Entity 3: PartitionKey, Rowkey, orderId, orderData, zipCode Partitions are used to spread data across multiple servers. This happens automatically based on the partition key you provide. Table “heat” is also monitored and data may be moved to different storage endpoints based upon usage. Queries should be targeted at a partition, since there are no indexes to speed up performance. Indexes may be added at a later date. Its important to convey that whilst you could copy tables in from a local data source (e.g. sql) it would not perform well in the cloud, data access needs to be re-thought at this level. Those wanting a more traditional SQL like experience should investigate SDS.

Slide 21

Once you have built and tested your service, you will want to deploy it. The key to deployment and operations is the service model. To deploy – first you build your service, this takes the project output + Content (images, css etc.) and makes a single file. It also creates and instance of your service metadata. Next you would visit the web portal and upload the 2 solution files – from there the “cloud” takes care of deploying it onto the correct number of machines and getting it to run. To increase and decrease capacity today, you would edit the configuration from the web portal. For more than 1 instance, you should be deployed across fault domains, meaning separate hardware racks. In the portal you have a production and staging area, with different urls. You can upload the next version of your project into staging, then flip the switch – which essentially changes the load balancers to point to the new version.

Slide 22

So how do we do the automated deployment & manage your service. 1st – remember the service metadata tells us exactly what we need to deploy and how many instances etc. There is no OS footprint, so your service can be copied around the data center without any configuration requirements. The OS itself is on a VHD, so it was copied to the hardware. The hardware itself was also booted from VHD, which was also copied around. Therefore, to put a new version of your software, or the OS that hosts it, all we need to do is copy it to a new machine and spin it up. It also means we can patch and test the OS offline. No live patching!!!

Slide 23

In this demo you want to deploy the hello world you created early to the portal.

Slide 24

Now your service is deployed, how do YOU monitor it? 1st – you cannot attach a debugger to the cloud – that would be impractical (which one of the 700 instances would you like to attach too?) and not a good idea from a security viewpoint. To get diagnostic information – you must write it to the Windows Azure logs. These logs can be retrieved from the portal at any time, copied to your local machine for analysis. You will expect detailed consumption reporting by PDC

Slide 25

Some key things to remember Design points are scalability and availability – think it terms of lots of small servers rather than a single BIG server. Table storage is semi-structured – ITS NOT A RELATIONAL DATABASE – IT NEVER WILL BE. THAT IS SDS. Everything is stateless (you can maintain state in table or blob storage if YOU want to) Decouple everything using queues, and write code to be repeatable without breaking anything – in other words design for failure! Instrument and log your application yourself. Work on the idea that once you are on – stay on. How will you patch/update your service once it is switched on?

Slide 1

Hyderabad Techies Microsoft Developer User Group - Hyderabad Windows Azure Overview “Learn while we share “

Slide 2

Windows Azure – An OS for Architecture in the Clouds Nithin Mohan T K Technology Specialist Blog: http://www.nithinmohantk.info nithinmohantk@nithinmohantk.info Twitter @ nithinmohantk

Slide 3

Agenda What is Windows Azure Windows Azure Features Compute Storage Developer SDK Automated Service Management

Slide 4

What is Windows Azure? An operating system for the cloud Reduce the complexity of internet scale applications Designed to be scalable & available A service running Microsoft datacenters

Slide 5

What is Windows Azure? An Operating System for the cloud Hardware Abstraction across multiple servers Distributed Scalable, Available Storage Deployment, Monitoring and Maintenance Automated Service Management, Load Balancers, DNS Programming Environments Interoperability Designed for Utility Computing

Slide 6

Why Windows Azure? OS Takes care of your service in the cloud Deployment Availability Patching Hardware Configuration You worry about writing the service

Slide 7

What is Windows Azure? Features Automated Service Management Compute Storage Developer Experience

Slide 8

What is Windows Azure? Compute Storage Developer SDK

Slide 9

Developer Tools What is Windows Azure? Compute .NET 3.5 SP1 Server 2008 – 64bit Full Trust* Web Role IIS7 Web Sites (ASP.NET, FastCGI) Web Services (WCF) Worker Role Stateless Servers Http(s) Storage

Slide 10

Developer Tools What is Windows Azure? Compute Storage Durable, scalable, available Blobs Tables Queues REST interfaces Can be used without compute

Slide 11

All of the hardware Hardware Load Balancers Servers Networks DNS Monitoring Automated service management What is Windows Azure? Compute Storage Developer Tools

Slide 12

What is Windows Azure? Compute Storage Developer SDK Windows Azure SDK Local compute environment Local Mock Storage Command line tools Small Managed API Logging, working storage Microsoft Visual Studio 2008 add-in

Slide 13

Windows Azure API RoleManager Logging WriteToLog Configuration GetConfigurationSetting LocalResource GetLocalResource

Slide 14

Service Models Describes your Service <?xml version="1.0" encoding="utf-8"?> <ServiceDefinition name="CloudService1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"> <WebRole name="WebRole"> <ConfigurationSettings> <Setting name="AccountName"/> </ConfigurationSettings> <LocalStorage name="scratch" sizeInMB="50"/> <InputEndpoints> <!-- Must use port 80 for http and port 443 for https when running in the cloud --> <InputEndpoint name="HttpIn" protocol="http" port="80" /> </InputEndpoints> </WebRole> <WorkerRole name="WorkerRole"> <ConfigurationSettings> <Setting name="AccountName"/> <Setting name="TableStorageEndpoint"/> </ConfigurationSettings> </WorkerRole> </ServiceDefinition>

Slide 15

Windows Azure Datacenter Your Service Service Architecture LB Internet Worker Service Worker Service LB

Slide 16

My First Service demo

Slide 17

Storage Blobs, Tables, Queues Designed for the cloud 3 replicas Guaranteed consistency Accessible directly from the internet via REST API Does not require compute Access via storage account Sample Storage Client in SDK

Slide 18

Blobs 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

Slide 19

Queues Simple asynchronous dispatch queue Create and delete queues Message: Retrieved at least once Max size 8kb Operations: Enqueue Dequeue RemoveMessage

Slide 20

Tables 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

Slide 21

Service Lifecycle Create service package Binaries + Content + Service Metadata Deploy via web portal Add & remove capacity via web portal Deployed across fault domains Upgrade with zero downtime

Slide 22

Automated Service Management You tell us what, we take care of how What Service metadata How Metadata describes service No OS footprint Service is copied to instances Instances were copied to physical hardware Physical hardware booted from VHD All patching is performed offline

Slide 23

Deploying Services demo

Slide 24

Service Monitoring Cannot Attached Debugger to Cloud Event logs Retrieve logs via web portal Detailed consumption reporting

Slide 25

Design Considerations Scale and availability are the design points Storage isn’t a relational database Stateless Stateless front ends, store state in storage Use queues to decouple components Instrument your application Once you are on - stay on Think about patching & updates

Slide 26

Learning Windows Azure www.azure.com Download the SDK You don’t need cloud access to develop! Look at the samples in the SDK Windows Azure Platform Training Kit 3 Windows Azure labs Follow the team bloggers

Slide 27

Summary Windows Azure is the OS for the cloud Lets you build services without the operational worry Designed for Scalability & Availability Automated Service Management Compute Storage Developer SDK Utility computing - Pay-as-you-go pricing

Slide 28

Q & A

Slide 29

Thank you all Visit my blog @ http://www.nithinmohantk.info

URL:
More by this User
Most Viewed