25
IT-DEV-CON – 2011. 04. 06. Addig nyújtózkodj, ameddig a felhőd ér! Kőnig Tibor [email protected] | blogs.msdn.com/tibork-on-ms | twitter.com/tibork Microsoft Magyarország

Addig nyújtózkodj, ameddig a felhőd ér!

Embed Size (px)

DESCRIPTION

Addig nyújtózkodj, ameddig a felhőd ér!. Kőnig Tibor. tibork@ microsoft.com | blogs.msdn.com / tibork-on-ms | twitter.com / tibork. Microsoft Magyarország. Amiről szó lesz. A minta. Rajzfilm helyett…. A Mandelbrot-halmazból származó képek készítése - PowerPoint PPT Presentation

Citation preview

IT-DEV-CON – 2011. 04. 06.

Addig nyújtózkodj, ameddig a felhőd ér!

Kőnig [email protected] | blogs.msdn.com/tibork-on-ms | twitter.com/tibork

Microsoft Magyarország

IT-DEV-CON

Lazán csatolt szerepkörökből álló felhőalkalmazások készítése

Felhőalkalmazások menedzselése távolról a Service Management API segítségével

Automatikusan skálázódó felhőalkalmazások létrehozása

Amiről szó lesz

IT-DEV-CON

A minta

IT-DEV-CON

Rajzfilm helyett…

IT-DEV-CON

A Mandelbrot-halmazból származó képek készítéseFilm „forgatása” a Mandelbrot-halmazban tett utazásrólAz alkalmazás összetevőinek skálázása

manuálisanautomatikusan, a rendszer valamely jellemzője (pl. a képrajzolási feladatokat tartalmazó várakozási sor) alapján

A feladatA tavalyi 24 órás programozói verseny feladatára alapozva

IT-DEV-CONA Mandelbrot-halmaz pontjainak

kiszámítása// Egy ponthoz tartozó iteráció kiszámításaprivate static int Iterate(Complex point, int iterationCount){

Complex z = Complex.Zero;int i = 0;while (z.Magnitude < 4.0 && i < iterationCount){

z = z * z + point;i++;

}return i;

}

DemóIT-DEV-CON

Egy fáziskép megrajzolása, avagy Mandelbrot a saját gépen

IT-DEV-CON

Azure Storage

Azure Compute

Egy fáziskép megrajzolásaFeladat fogadása várakozási sorból, kép tárolása konténerben

renderermessages sor

jobs konténer

Mandelbrot Renderer

munkavégző szerepkör

Mandelbrot Explorer

webes szerepkör

DemóIT-DEV-CON

Egy fáziskép megrajzolása, avagy Mandelbrot a felhőben

IT-DEV-CON

Adattárolási szolgáltatásokBlob Storage – bináris állományok és leíró adataikTable Storage – tabuláris adatokQueue Storage – várakozási sorok

HasználatREST APIClient API (.NET-osztálykönyvtár)Egyéb osztálykönyvtárak

Felhasznált technológiaAzure Storage

IT-DEV-CONAz Azure Storage programozása

(az Azure Storage Sample segédkönyvtárral)

// A rendererjobs sor megnyitása, ha kell, létrehozásaQueueHelper queueHelper = new QueueHelper("Storage", true);queueHelper.CreateQueue("renderermessages");// A jobs konténer megnyitása, ha kell, létrehozásaBlobHelper blobHelper = new BlobHelper("Storage", true);blobHelper.CreateContainer("jobs");while (true){

// Ha van üzenet, beolvasása a sorbólCloudQueueMessage message = null;if (queueHelper.GetMessage("renderermessages", out message))

…}

IT-DEV-CON

Azure Storage

Azure Compute

Fázisképek sorozatának elkészítéseVárakozási sorban érkező feladat további feladatokra bontása

dispatchermessages sor

renderermessages sor

jobs konténer

moviedata tábla

Mandelbrot Renderer

munkavégző szerepkör

Mandelbrot Dispatcher

munkavégző szerepkör

Mandelbrot Explorer

webes szerepkör

DemóIT-DEV-CON

Fázisképek sorozatának elkészítése

IT-DEV-CON

Azure Storage

Azure Compute

Film elkészítéseFázisképek figyelése, filmkészítési utasítás kiadása

Mandelbrot Producer

munkavégző szerepkör

producermessages sor

jobs konténer

moviedata tábla

Mandelbrot Dispatcher

munkavégző szerepkör

Mandelbrot Explorer

webes szerepkör

DemóIT-DEV-CON

Film elkészítése

IT-DEV-CON

Azure Storage

Azure Compute

Alkalmazás manuális skálázásaSzerepkör példányszámának növelése a többitől függetlenülFabric

Fabric Controller

Service Management API

Mandelbrot Producer

munkavégző szerepkör

managermessages sor

operationdata tábla

Mandelbrot Renderer

munkavégző szerepkör

Mandelbrot Dispatcher

munkavégző szerepkör

Mandelbrot Explorer

webes szerepkör

Mandelbrot Manager

munkavégző szerepkör

DemóIT-DEV-CON

Alkalmazás manuális skálázása

IT-DEV-CON

Cél: a Windows Azure portálon, interaktív módon elvégezhető műveletek elérhetővé tétele programból is

tárolási fiókok, hosztolt szolgáltatások, tanúsítványok és más objektumok kezelése

HasználatREST API (nincs menedzselt osztálykönyvtár)azonosítás tanúsítványok segítségével

Felhasznált technológiaService Management API

IT-DEV-CONService Management API -

RESTSzolgáltatás konfigurációjának megváltoztatása:

https://management.core.windows.net/<subscription- id>/services/hostedservices/<service- name>/deploymentslots/<deployment-slot>/?comp=config

A kérés törzse:<?xml version="1.0" encoding="utf-8"?><ChangeConfiguration xmlns="http://schemas.microsoft.com/windowsazure">

<Configuration>base-64-encoded-configuration-file

</Configuration></ChangeConfiguration>

IT-DEV-CONService Management API -

Kód// A hosztolt szolgáltatás megadott környezetébe (slot) telepített // alkalmazás adatainak kiolvasásapublic string GetDeployment(string HostedService, string Slot){

string requestID = "";string response = SendServiceManagementRequest(

String.Format("https://management.core.windows.net/{0}/" + "services/hostedservices/{1}/deploymentslots/{2}", SubscriptionID, HostedService, Slot),

"GET", Certificate, "2009-10-01", "application/xml", null, out requestID);

       return response;}

IT-DEV-CON

Azure Storage

renderermessages sor

Azure Compute

Alkalmazás automatikus skálázásaSzerepkör példányszámának növelése pl. a sor hossza alapjánFabric

Fabric Controller

Service Management API

Mandelbrot Producer

munkavégző szerepkör

operationdata tábla

Mandelbrot Renderer

munkavégző szerepkör

Mandelbrot Dispatcher

munkavégző szerepkör

Mandelbrot Explorer

webes szerepkör

Mandelbrot Manager

munkavégző szerepkör

DemóIT-DEV-CON

Alkalmazás automatikus skálázása

IT-DEV-CON

Azure Storage

Azure Compute

A teljes alkalmazásVirtuális gépek, tárolási megoldások, platformszolgáltatásokFabric

Fabric Controller

Service Management API

Mandelbrot Producer

munkavégző szerepkör

dispatchermessages sor

renderermessages sor

producermessages sor

managermessages sor

jobs konténer

moviedata tábla

operationdata tábla

Mandelbrot Renderer

munkavégző szerepkör

Mandelbrot Dispatcher

munkavégző szerepkör

Mandelbrot Explorer

webes szerepkör

Mandelbrot Manager

munkavégző szerepkör

IT-DEV-CON

Aszinkron, hibatűrő kommunikáció a szerepkörök között

várakozási sorokSzabványos felületen (REST) elérhető, gyakorlatilag korlátlan mértékben skálázható erőforrások

virtuális gépekadattárolás

Hibrid megoldásokegyüttműködés a „föld” és a „felhő” között

ÖsszefoglalásA megfelelően felépített alkalmazás rugalmasan skálázható

IT-DEV-CON