Upload
oscar-salinas
View
20
Download
0
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 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;
}
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
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
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
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
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
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ó