Udvikling med Windows Azure Nikolaj Winnes

Slides:



Advertisements
Similar presentations
Page 1 Ricardo Villalobos Windows Azure Architect Evangelist Microsoft Corporation Designing, Building, and Deploying Windows Azure applications.
Advertisements

The Microsoft Cloud Azure Platform This presentation incorporates some content from Microsoft.
“It’s going to take a month to get a proof of concept going.” “I know VMM, but don’t know how it works with SPF and the Portal” “I know Azure, but.
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
Distributed Systems Tutorial 9 – Windows Azure Storage written by Alex Libov Based on SOSP 2011 presentation winter semester,
Azure Henrik Westergaard Hansen ISV Developer Evangelist
Overview Of Microsoft New Technology ENTER. Processing....
12 → Wed Umbraco User Group Kristofer Liljeblad Windows Azure Kristofer Liljeblad, Microsoft Developer Evangelist
Platform as a Service (PaaS)
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
Cloud Computing Systems Lin Gu Hong Kong University of Science and Technology Sept. 21, 2011 Windows Azure—Overview.
WINDOWS AZURE STORAGE 11 de Mayo, 2011 Gisela Torres – Windows Azure MVP Aventia-Renacimiento Twitter:
Cross Platform Mobile Backend with Mobile Services James
Windows Azure SQL Database and Storage Name Title Organization.
Cloud Computing 360 Bill Zack, Architect Evangelist, Microsoft Blog: blogs.msdn.com/billzack.
Training Workshop Windows Azure Platform. Presentation Outline (hidden slide): Technical Level: 300 Intended Audience: Developers Objectives (what do.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
Components of Windows Azure - more detail. Windows Azure Components Windows Azure PaaS ApplicationsWindows Azure Service Model Runtimes.NET 3.5/4, ASP.NET,
Introduction To Windows Azure Cloud
Windows Azure featureISO 27001SSAE 16 SOC 1 Type 2 EU Model Clauses HIPAA BAA Web Sites Virtual Machines Cloud Services Storage (Tables,
Migrating Business Apps to Windows Azure Marc Müller Principal Consultant, 4tecture GmbH
Scott Zimmerman Solutions Architect, SOA/.NET/Azure/BizTalk.
Azure in a Day Training Azure Blobs Module 1: Azure Blobs Overview Module 2: Blob Accounts – DEMO: Setting up a Blob Account – DEMO: Mapping a custom.
MSDN Event. WINDOWS AZURE STORAGE Windows Azure Storage Storage in the Cloud –Scalable, durable, and available –Anywhere at anytime access –Only pay.
Ruby on Rails & Windows sriramkrishnan.com.
Larisa kocsis priya ragupathy
Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL
Windows Azure Storage – Essential Cloud Storage Services Denver Cloud Computing User Group
Jimmy Narang 1. A service in the cloud has to: Be able to handle arbitrary node failures Be available all the time Be able to scale up or down on demand.
Windows Azure Tour Benjamin Day Benjamin Day Consulting, Inc.
Mostafa Abdollahi Mazandaran University Of Science And Technology January 2011.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Overview of Cloud Computing Sven Rosvall ACCU
Windows Azure Storage Name Title Microsoft Corporation.
WINDOWS AZURE STORAGE SERVICES A brief comparison and overview of storage services offered by Microsoft.
T.N.C.Venkata Rangan CEO, Vishwak Solutions Your Data on Cloud.
Pradeep S Pushpendra Singh Consultants, Neudesic Technologies, Hyderabad, India.
Virtual techdays INDIA │ august 2010 Building & Migrating Web applications using Windows Azure storage Ramaprasanna Chellamuthu │ Developer Evangelist;
Visual Studio Windows Azure Portal Rest APIs / PS Cmdlets US-North Central Region FC TOR PDU Servers TOR PDU Servers TOR PDU Servers TOR PDU.
Windows Azure Storage Anton Boyko. US Europe Asia Can choose geo-location to host storage account:
Windows Azure Virtual Machines Anton Boyko. A Continuous Offering From Private to Public Cloud.
 Brad Calder Director/Architect Microsoft Corporation ES04.
 Mike Martin  Architect  MEET Member  Crew Member of Azug  Windows Azure Insider  Windows Azure MVP  
3 TIME IT CAPACITY Actual Load Allocated IT-capacities Too Much Power Not Enough Power Load Forecast.
Azure in a Day Training: Windows Azure Module 1: Windows Azure Overview Module 2: Development Environment / Portal – DEMO: Signing up for Windows Azure.
Data Patterns in Cloud Computing Régis Mauger Infrastructure Architect Pierre Couzy Technical Architect
1 Neil Kidd MTC Architect - DPE NeilKidd Neil Kidd MTC Architect - DPE NeilKidd.
Microsoft Cloud Computing. Topics to be covered 1.Environmental Features of windows azure 2.What is Cloud Computing 3.Roles in Cloud Computing 4.Benefits.
Technology Drill Down: Windows Azure Platform Eric Nelson | ISV Application Architect | Microsoft UK |
Building Cloud Solutions Presenter Name Position or role Microsoft Azure.
Windows Azure Boot CampWindowsAzureBootCamp.com. Windows Azure Boot CampWindowsAzureBootCamp.com.
Copyright © New Signature Who we are: Focused on consistently delivering great customer experiences. What we do: We help you transform your business.
Windows Azure Custom Software Development Mobile Middleware Windows Azure Storage Dipl.-Ing. Damir Dobric Lead Architect daenet
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
WINDOWS AZURE AND THE HYBRID CLOUD. Hybrid Concepts and Cloud Services.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
BlobContainerAccount sally pictures IMG001.JPG IMG002.JPG movies MOV1.AVI.
Platform as a Service (PaaS)
Platform as a Service (PaaS)
Design considerations for storing data in the Cloud
Platform as a Service.
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
03 | Data Storage Bruno Terkaly | Technical Evangelist
Outline Virtualization Cloud Computing Microsoft Azure Platform
Windows Azure Cloud.
Introduction to Building Applications with Windows Azure
Saranya Sriram Developer Evangelist | Microsoft
MS AZURE By Sauras Pandey.
Building global and highly-available services using Windows Azure
Presentation transcript:

Udvikling med Windows Azure Nikolaj Winnes

Udvikling med Windows Azure Cloud Computing er et af tidens allerstørste buzzwords. Leverandører bruger udtrykket til at promovere alt fra webhosting til miljøer med global tilgængelighed og always-on. Hvad er facts og hvad er fup, og hvordan kan vi som udviklere bygge løsninger der får fordel af denne nye verden. I oktober 2008 løftede Microsoft sløret for deres Cloud Computing vision. Helt centralt i denne vision står Windows Azure, et operativ system til skyen. I denne session vil vi kigge på de muligheder og begrænsninger du har som udvikler med Windows Azure. Vi viser hvordan du kommer i gang med udvikling på Windows Azure. Sessionen vil dække de forskellige udviklingsfaser: analyse, design, udvikling, test og udrulning af en Windows Azure applikation.

Hvad er cloud computing ? IaaS (Infrastructure) Virtual servers PaaS (Platform) IDE Database CDN SDK/Services Deployment Management Saas (Software) Applikationer

Udbydere PaaSIaaSSaaS Amazon Microsoft Salesforce Google

Azure platformen

Getting started Signing up Visual Studio support SDK Project types Development Fabric Debugging locally Logging in the cloud

I begyndelsen var... Portalen Sådan kommer du igang

Web Web Roles WebForms ASP.NET MVC

HELLO AZURE! demo

Storage Tables Blobs Queues SQL Data Services

Blob blob.mov azure.pdf sql.pdf Blob Storage ContainerAccount library e-books screencasts

Storage Account And Blob Containers Storage Account – An account can have many Blob Containers Container – A container is a set of blobs – Sharing policies are set at the container level Public READ or Private – Associate Metadata with Container Metadata is pairs Up to 8KB per container – List the blobs in a container BlobContainerAccount sally pictures IMG001.JPG IMG002.JPG movies MOV1.AVI

Blob Namespace Blob URL / Example: Account – sally Container – music BlobName – rock/rush/xanadu.mp3 URL: Blob Container Account sally pictures IMG001.JPG IMG002.JPG movies MOV1.AVI

Blob Features And Functions Store Large Objects (up to 50 GB each) Standard REST PUT/GET Interface / – PutBlob Inserts a new blob or overwrites the existing blob – GetBlob Get whole blob or by starting offset, length – DeleteBlob – Support for Continuation on Upload Associate Metadata with Blob – Metadata is pairs – Set/Get with or separate from blob data bits – Up to 8KB per blob

Continuation On Upload Scenario Want to upload a large 10 GB file into the cloud If upload fails in the middle, need an efficient way to resume the upload from where it failed (rather than starting over)

Uploading A Blob Via Blocks Uploading a Large Blob 10 GB Movie Windows Azure Storage Block Id 1 Block Id 2 Block Id 3 Block Id N blobName = “TheBlob.wmv”; PutBlock(blobName, blockId1, block1Bits); PutBlock(blobName, blockId2, block2Bits); ………… PutBlock(blobName, blockIdN, blockNBits); PutBlockList(blobName, blockId1,…,blockIdN); blobName = “TheBlob.wmv”; PutBlock(blobName, blockId1, block1Bits); PutBlock(blobName, blockId2, block2Bits); ………… PutBlock(blobName, blockIdN, blockNBits); PutBlockList(blobName, blockId1,…,blockIdN); TheBlob.wmv Benefit: Efficient continuation and retry Parallel and out of order upload of blocks

PutBlockList Example Block Id 1Block Id 3Block Id 2 BlobName = ExampleBlob.wmv Block Id 4 Block Id 2Block Id 3 Block Id 4 Example Uploading Blocks Out of Order Same Block IDs Unused Blocks Sequence of Operations – PutBlock(BlockId1) – PutBlock(BlockId3) – PutBlock(BlockId4) – PutBlock(BlockId2) – PutBlock(BlockId4) – PutBlockList(BlockId2, BlockId3, BlockId4)

Blob As A List Of Blocks Blob – Consists of a List of Blocks Properties of Blocks – Each Block defined by a Block ID Up to 64 Bytes, scoped by Blob Name – Blocks are immutable – A block is up to 4MB Do not have to be same size

BlockList Operations PutBlockList for a Blob – Provide the list of blocks to comprise the readable version of the blob – If multiple blocks are uploaded with same Block ID – Last committed block wins – Blocks not used will be garbage collected GetBlockList for a Blob – Returns the list of blocks that represent the readable (committed) version of the blob Block ID and Size of Block is returned for each block

REST PutBlock PUT ?comp=block &blockid=BlockId1 &timeout=60 HTTP/1.1 Content-Length: Content-MD5: HUXZLQLMuI/KZ5KDcJPcOA== Authorization: SharedKey dvd: F5a+dUDvef+PfMb4T8Rc2jHcwfK58KecSZY+l2naIao= x-ms-date: Mon, 27 Oct :00:25 GMT ……… Block Data Contents ……… AccountContainer Blob Name

REST PutBlockList PUT ?comp=blocklist &timeout=120 HTTP/1.1 Content-Length: Authorization: SharedKey dvd: QrmowAF72IsFEs0GaNCtRU143JpkflIgRTcOdKZaYxw= x-ms-date: Mon, 27 Oct :00:25 GMT BlockId1 BlockId2 ……………… AccountContainer Blob Name

REST GetBlob GET HTTP/1.1 Authorization: SharedKey dvd: RGllHMtzKMi4y/nedSk5Vn74IU6/fRMwiPsL+uYSDjY= X-ms-date: Mon, 27 Oct :00:25 GMT Get whole blob GET ?timeout=60 HTTP/1.1 Range: bytes= Get a range of the blob

Blob Enumeration – Delimiter Enumerates the list of blobs in a container – Hierarchical listing: prefix + delimiter – Continuation: NextMarker + Marker Container “movies” has: Action/Rocky.avi Action/Rocky2.avi Drama/Crime/GodFather.avi Drama/Crime/GodFather2.avi Drama/LordOfRings.avi Thriller/TheBlob.wmv List top level “directories” REST Request: GET ?comp=list &delimiter=/ Results: Action Drama Horror Container “movies” has: Action/Rocky1.wmv Action/Rocky2.wmv Action/Rocky3.wmv Action/Rocky4.wmv Action/Rocky5.wmv Drama/Crime/GodFather1.wmv Drama/Crime/GodFather2.wmv Drama/Memento.wmv Horror/TheBlob.wmv

Blob Enumeration – Prefix Enumerates the list of blobs in a container – Hierarchical listing: prefix + delimiter – Continuation: NextMarker + Marker Container “movies” has: Action/Rocky1.avi Action/Rocky2.avi ……… Action/Rocky5.avi Drama/Crime/GodFather1.avi Drama/Crime/GodFather2.avi Drama/Gladiator.avi Horror/TheBlob.wmv List directory “Drama”: REST Request: GET ?comp=list &prefix=Drama/ &delimiter=/ Results: Drama/Crime Drama/Memento.wmv Container “movies” has: Action/Rocky1.wmv Action/Rocky2.wmv Action/Rocky3.wmv Action/Rocky4.wmv Action/Rocky5.wmv Drama/Crime/GodFather1.wmv Drama/Crime/GodFather2.wmv Drama/Memento.wmv Horror/TheBlob.wmv

Container “movies” has: Action/Rocky1.wmv Action/Rocky2.wmv Action/Rocky3.wmv Action/Rocky4.wmv Action/Rocky5.wmv Drama/Crime/GodFather1.wmv Drama/Crime/GodFather2.wmv Drama/Memento.wmv Horror/TheBlob.wmv Blob Enumeration – MaxResults Enumerates the list of blobs in a container – Hierarchical listing: prefix + delimiter – Continuation: NextMarker + Marker Max Results and Next Marker REST Request: GET ?comp=list &prefix=Action &maxresults=3 Results: Action/Rocky1.wmv Action/Rocky2.wmv Action/Rocky3.wmv OpaqueMarker1

Blob Enumeration – Continuation Enumerates the list of blobs in a container – Hierarchical listing: prefix + delimiter – Continuation: NextMarker + Marker Using Continuation Marker REST Request: GET ?comp=list &prefix=Action &maxresults=3 &marker=OpaqueMarker1 Results: Action/Rocky4.wmv Action/Rocky5.wmv Container “movies” has: Action/Rocky1.wmv Action/Rocky2.wmv Action/Rocky3.wmv Action/Rocky4.wmv Action/Rocky5.wmv Drama/Crime/GodFather1.wmv Drama/Crime/GodFather2.wmv Drama/Memento.wmv Horror/TheBlob.wmv

Summary Of Windows Azure Blobs Easy to use REST Put/Get/Delete interface Can read from any Offset, Length of Blob Conditional Put and Get Blob Max Blob size – 50 GB using PutBlock and PutBlockList – 64 MB using PutBlob Blocks provide continuation for blob upload Put Blob/BlockList == Replace Blob for CTP – Can replace an existing blob with new blob/blocks

BLOB STORAGE DEMO

Table storage

Data Model Table – A Storage Account can create many tables – Table name is scoped by Account Data is stored in Tables – A Table is a set of Entities (rows) – An Entity is a set of Properties (columns) Entity – Two “key” properties that together are the unique ID of the entity PartitionKey – enables scalability RowKey – uniquely identifies the entity within the partition

Table Partition – all entities in table with same partition key value Application controls granularity of partition Partitioning Partition Key Document Row Key Version Property 3 ChangedOn Property 4 Description Examples DocV1.08/2/2007Committed version Examples DocV2.0.19/28/2007 Alice’s working version FAQ DocV1.05/2/2007Committed version FAQ DocV1.0.17/6/2007 Alice’s working version FAQ DocV1.0.28/1/2007 Sally’s working version Partition 1 Partition 2

Partitioning Guidelines Performance – Use a PartitionKey that is common in your queries Entities with same partition key value are clustered Scalability – We monitor partition traffic – Automatically load balance partitions Each partition can potentially be served by a different storage node Scale to meet the traffic needs of your application – More partitions – makes it easier to balance load

Partition Key Document Row Key Version Property 3 ChangedOn Property 4 Description Examples DocV1.08/2/2007Committed version Examples DocV2.0.19/28/2007 Alice’s working version FAQ DocV1.05/2/2007Committed version FAQ DocV1.0.17/6/2007 Alice’s working version FAQ DocV1.0.28/1/2007 Sally’s working version Partition 1 Partition 2 Getting all versions of FAQ is fast – Access single partition Get all documents before 5/30/2008 takes longer – Have to traverse all partitions Entity Locality

Entities and Properties Each Entity can have up to 255 properties Every Entity has fixed key properties – Partition key – Row key No fixed schema for rest of properties – 2 entities in the same table can have different properties – Properties stored as pairs Each entity has a system maintained version

USING AZURE TABLE STORAGE demo

Web + Worker Queue Example Cloud Storage (blob, table, queue) Web Role LB n Worker Role m

Windows Azure Queues Provide reliable message delivery – Simple, asynchronous work dispatch – Programming semantics ensure that a message can be processed at least once Queues are Highly Available, Durable and Performance Efficient Access is provided via REST

Account, Queues And Messages An Account can create many Queues – Queue Name is scoped by the Account A Queue contains Messages – No limit on number of messages stored in a Queue But a Message is stored for at most a week Messages – Message Size <= 8 KB – To store larger data, store data in blob/entity storage, and the blob/entity name in the message

Queue Programming API Queues – Create/Clear/Delete Queues – Inspect Queue Length Messages – Enqueue (QueueName, Message) – Dequeue (QueueName, Invisibility Time T) Returns the Message with a MessageID Makes the Message Invisible for Time T – Delete(QueueName, MessageID)

C1C1 C1C1 C2C2 C2C2 Dequeue And Delete Messages Producers Consumers P2P2 P2P2 P1P1 P1P Dequeue(Q, 30 sec)  msg 2 1. Dequeue(Q, 30 sec)  msg

C1C1 C 1 C2C2 C2C2 Dequeue And Delete Messages Producers Consumers P2P2 P2P2 P1P1 P1P Dequeue(Q, 30 sec)  msg 2 3. C2 consumed msg 2 4. Delete(Q, msg 2) 7. Dequeue(Q, 30 sec)  msg 1 1. Dequeue(Q, 30 sec)  msg 1 5. C 1 crashed msg1 visible 30 seconds after Dequeue Benefit: Insures that every message can be processed at least once 3 3

Summary Of Windows Azure Queues Provide reliable message delivery – Allows Messages to be retrieved and processed at least once No limit on number of messages stored in a Queue Message size is <=8KB

Logic Worker roles Queues Workflow services Service Bus

WORK, WORK, WORK demo

.NET Services Workflow Service Bus Access Control

SQL Data Services “ SQL Data Services, with TDS support, will be available as a public CTP in mid calendar year 2009 and commercially available in the second half of calendar year ” marts 2009

Live Services

Deployment TildelingKopieringKonfigurationStart Load balancering

Deployment Windows Azure automates a lot of tasks for you, including initial deployment of your application. I thought I’d take a moment to describe at a high level what’s happening behind the scenes during that initial deployment and starting of an application. Allocation – The Fabric Controller looks at the inventory in the data center and finds VMs within servers that fit all the requirements of your application. One of those requirements is that resources are allocated across fault domains. As an example, a specific rack in the data center might be a fault domain. The Fabric Controller ensures that the hardware running your application isn’t all on one rack, so that if an entire rack goes down, your application stays up. Place role bits on nodes – The next step is to deploy the bits for your application’s roles (e.g. web role and worker role) onto the individual virtual machines that were allocated in step 1. If there’s been a recent update to the OS image, it’s possible at this point that a new OS image needs to first be copied to the machine and booted. Configuration settings – The next step is to apply any application-specific configuration settings that affect the setup of the virtual machine (like IIS settings). Start roles – Now we’re ready to actually start roles. For web roles, this means turning your web application on in IIS. For worker roles, this means invoking your role binary. Configure load balancers – If your application includes a web role, the next step is to configure the load balancer to route traffic to your web role. At this point your application is running. If you’re interested in more detail about how these steps happen in the data center (and a lot more), I highly recommend Erick Smith and Chuck Lenzmeier’s PDC session “Under the Hood: Inside the Windows Azure Hosting Environment.”Erick Smith and Chuck Lenzmeier’s PDC session “Under the Hood: Inside the Windows Azure Hosting Environment.”

Migrating Existing apps Mail CNAME Web Services CAS 3rd Party components

Fordele  Ingen infrastruktur at vedligeholde  Global tilstedeværelse (snart)  Høj tilgængelighed og stabilitet (nogen gange)  Ubegrænset skalering (næsten)  Du betaler for hvad du bruger (også når du ikke bruger det)

Bagdele  Standarder  Lock-in  Arkitektur  Migrering