Warning: Parameter 1 to wp_default_styles() expected to be a reference, value given in /var/www/jacobkorsgaard.com/public_html/wp/wp-includes/plugin.php on line 571

Warning: Parameter 1 to wp_default_scripts() expected to be a reference, value given in /var/www/jacobkorsgaard.com/public_html/wp/wp-includes/plugin.php on line 571
Jacob Korsgaard » TechED’09: Windows Azure Platform
Home > Uncategorized > TechED’09: Windows Azure Platform

TechED’09: Windows Azure Platform

November 10th, 2009 Leave a comment Go to comments

Min første breakout session var med David Chappell omkring hvad Windows Azure egentlig er og hvorfor det er interessant.

Jeg har længe hørt om det her cloud computing og har haft en vag idé om hvad det går ud på. Det viser sig at være ca. det og det viser sig også at den undren jeg havde omkring hvad man skulle bruge det til også var berettiget.

clip_image002

Der er flere forskellige services når man snakker Windows Azure:

  • Windows Azure
  • SQL Azure
  • .NET Services

David snakkede ikke så meget om .NET Services så det vil jeg heller ikke skrive om.

Windows Azure er et operativ system i “the cloud”. Hvad det egentlig betyder, er at det program du skriver til Windows Azure kan køre på maskinerne i Microsofts kæmpe data centre. Som David siger, så har de helt garanteret flere maskiner end du har!

Når du skriver en applikation til Windows Azure, uploader den til clouden og kører den, oprettes der en instans af en Virtual Machine som dit program får lov at køre i. Du kan køre mange forskellige Windows programmer på Azure, både managed og unmanaged. Ud over bare normale processer kan du også lave web applikationer som behandles lidt specielt på Windows Azure. Du kan starte så mange VM’s du vil med instanser af dit program, men de deler ikke state på nogen måde og fungerer som havde du startet to processer på din egen maskine i realiteten.

Dette bliver rigtig spændende hvis du laver en web applikation, da det er muligt at starte flere VMs til den på clouden. Hvis du går det har Windows Azure operativ systemet en Load Balancer, som vælger hvilken VM en klient bliver forbundet til når han vil bruge din applikation. Dette er faktisk lidt problematisk da du så ikke kan gemme state for dine klienter på server side, fordi du ikke kan være sikker på at de på næste request bruger samme VM! Så skal du lave web applikationer på Azure, tænk stateless!

En anden ting at huske når man laver programmer til Windows Azure er at du ikke har administrator adgang, overhovedet. David siger dette ofte er et problem for folk, som vil porte deres eksisterende kode til Azure, fordi, uden de rigtig er klar over det, er der masser af deres programmer som kræver administrator adgang.

At køre programmer på en maskine i et datacenter er ikke så interessant hvis du ikke kan gemme eller loade data ind, så der findes selvfølgelig også Storage til Windows Azure. Der er overordnet 3 forskellige former for data til Windows Azures Storage. Storage foregår via en RESTFUL http/https service!

Queues er som navnet hentyder til, køer af data som man bruger til at sende data mellem VMs. Det skulle foregå lidt som man ville forvente det. Du kan sætte noget data i kø for at blive konsumeret af en Worker proces engang når den får tid for eksempel.

Blobs er blot binære klumper af data, det kan være billeder eller hvad man nu kan forestille sig. Der kan oprettes containers med lister af binære objekter og de tilgås selvfølgelig med RESTFUL.

Sidst har vi Tables som måske kunne lyde til at være Relationelle tabeller som vi kender dem fra databaser, men det er det ikke! Det er i stedet blot en tabel af data, det betyder at du opretter en Table og giver den et navn samt en primary key. Udover den primary key kan du gemme properties på hver ”row” i tabellen som er typed og indeholder data, disse properties kan man tænke på som kolonner, men det brister så snart man finder ud af at hver row kan have forskellige properties, der er ikke nogen begrænsning på den måde. Man kan selvfølgelig lave sine egne begrænsninger på client side. Tables er designet til at håndtere MASSIVE mængder af data, som man f.eks. kender det fra Web 2.0 applikationer som facebook.

Hvis man ikke kan nøjes med Queues, Blobs og Tables kan man også få en egentlig SQL database med SQL Azure. Den virker som man ville forvente en SQL server ville virke og hvis man har en SQL Azure database kan man endda tilgå den fra lokale applikationer. Problemet med SQL Azure er at man max kan bruge 10GB pr. database og så vidt jeg lige kunne anskue på publikum, så er det mere end almindeligt at skulle bruge mere end det. Man kan altid lave flere databaser, men det er ikke så smart igen da det både koster ekstra og er besværligt at segregere ens data.

Prisen for Windows Azure er:

· $0.12/timen for hver Virtual Machine man kører (det er ikke CPU timer men ”wallclock” timer)

· $0.15/GB Blobs, Queues og Tables om måneden.

· $0.01/10.000 operationer på Blobs, Queues og Tables

· $0.15/GB data downloadet fra Windows Azure og $0.10/GB uploadet til det.

· $9.99/Month for 1GB SQL Azure

· $99.99/Month for 10GB SQL Azure

Mange sad hen mod slutningen af sessionen og tænkte, hvorfor skulle vi ikke bare bruge hosting i stedet. David mente der at der findes nogle applikationer som er specielt egnet til Azure og mange som overhovedet ikke er. Det kommer alt an på hvad du skal bruge. Jeg vil lige nævne nogle af dem han nævnte var rigtig gode som Cloud Computing applikationer.

· Kæmpe applikationer som store Web 2.0 apps, fordi man meget let kan skalere meget stort uden at skulle have sine egne datacentre.

· Software som en service. Hvor du har en applikation andre betaler for at bruge, der vil du gerne koncentrere dig om at køre applikationen og holde den, ikke så meget IT administration.

· Applikationer som har variabel load. Et godt eksempel han havde var online billet bestilling til koncerter. Der er der ikke meget aktivitet på ens applikation indtil der kommer en koncert hvor alle vil have en billet i hvilket tilfælde det er meget simpelt at starte flere VMs og håndtere det kæmpe store load. For så at vende tilbage til få VMs og på den måde spare en masse penge under ”downtime”.

· Short Lived apps. Marketing kampanger og lignende hvor det bare skal op og køre hurtigt for at blive lukket ned let igen inden for kort tid.

· Parallel Processing, fordi man kan skalere smertefrit på Azure og andre cloud computing services er de ideelle til at lave store udregninger.

· ”Apps that fail fast or scale fast!”. Igen nævnes der Web 2.0 applikationer, hvis man finder på et nyt koncept og skal teste det, skal man enten let kunne stoppe siden igen hvis siden fejler og spare omkostninger hurtigt. Ellers hvis det bliver en succes skal man kunne opskalere hurtigt til mange brugere! I begge tilfælde er Cloud Computing perfekt, fordi du kan bare lukke dit abonnement og så lukker din app, eller du kan tilføje flere VMs og på den måde skalere smertefrit.

· Joint Ventures, samarbejde mellem flere firmaer hvor de måske ikke er så trygge ved at et af firmaerne hoster servicen.

· Sidst er det data storage, hvis du blot vil bruge storage faciliteterne til ens virksomhed.

Næste post bliver noget kortere og omkring nogle få af de nye interessante features i Visual Studio 2010 til at lave WPF applikationer.

  1. No comments yet.
  1. No trackbacks yet.