Addig nyújtózkodj, ameddig a felhőd ér! - PowerPoint PPT Presentation

oscar-salinas
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Addig nyújtózkodj, ameddig a felhőd ér! PowerPoint Presentation
Download Presentation
Addig nyújtózkodj, ameddig a felhőd ér!

play fullscreen
1 / 25
Download Presentation
Addig nyújtózkodj, ameddig a felhőd ér!
64 Views
Download Presentation

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. 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

  2. Amiről szó lesz

  3. A minta

  4. Rajzfilm helyett…

  5. A Mandelbrot-halmazból származó képek készítése • Film „forgatása” a Mandelbrot-halmazban tett utazásról • Az alkalmazás összetevőinek skálázása • manuálisan • automatikusan, a rendszer valamely jellemzője (pl. a képrajzolási feladatokat tartalmazó várakozási sor) alapján • A feladat • A tavalyi 24 órás programozói verseny feladatára alapozva

  6. A Mandelbrot-halmaz pontjainak kiszámítása // Egy ponthoz tartozó iteráció kiszámítása privatestaticintIterate(Complexpoint, intiterationCount) { Complex z = Complex.Zero; int i = 0; while (z.Magnitude < 4.0 && i < iterationCount) { z = z * z + point; i++; } return i; }

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

  8. Egy fáziskép megrajzolása • Feladat fogadása várakozási sorból, kép tárolása konténerben Azure Compute Mandelbrot Explorer webes szerepkör Mandelbrot Renderer munkavégző szerepkör Azure Storage renderermessages sor jobs konténer

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

  10. Adattárolási szolgáltatások • Blob Storage – bináris állományok és leíró adataik • Table Storage – tabuláris adatok • Queue Storage – várakozási sorok • Használat • REST API • Client API (.NET-osztálykönyvtár) • Egyéb osztálykönyvtárak • Felhasznált technológia • Azure Storage

  11. Az Azure Storage programozása(az Azure Storage Sample segédkönyvtárral) // A rendererjobs sor megnyitása, ha kell, létrehozása QueueHelperqueueHelper = newQueueHelper("Storage", true); queueHelper.CreateQueue("renderermessages"); // A jobs konténer megnyitása, ha kell, létrehozása BlobHelperblobHelper = newBlobHelper("Storage", true); blobHelper.CreateContainer("jobs"); while (true) { // Ha van üzenet, beolvasása a sorból CloudQueueMessagemessage = null; if (queueHelper.GetMessage("renderermessages", outmessage)) … }

  12. Fázisképek sorozatának elkészítése • Várakozási sorban érkező feladat további feladatokra bontása Azure Compute Mandelbrot Explorer webes szerepkör Mandelbrot Dispatcher munkavégző szerepkör Mandelbrot Renderer munkavégző szerepkör Azure Storage dispatchermessages sor renderermessages sor jobs konténer moviedata tábla

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

  14. Film elkészítése • Fázisképek figyelése, filmkészítési utasítás kiadása Azure Compute Mandelbrot Explorer webes szerepkör Mandelbrot Dispatcher munkavégző szerepkör Mandelbrot Producer munkavégző szerepkör Azure Storage producermessages sor jobs konténer moviedata tábla

  15. Film elkészítése

  16. Alkalmazás manuális skálázása • Szerepkör példányszámának növelése a többitől függetlenül Fabric Fabric Controller Service Management API Azure Compute Mandelbrot Explorer webes szerepkör Mandelbrot Dispatcher munkavégző szerepkör Mandelbrot Renderer munkavégző szerepkör Mandelbrot Producer munkavégző szerepkör Mandelbrot Manager munkavégző szerepkör Azure Storage managermessages sor operationdata tábla

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

  18. 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álat • REST API (nincs menedzselt osztálykönyvtár) • azonosítás tanúsítványok segítségével • Felhasznált technológia • Service Management API

  19. Service Management API - REST Szolgá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>

  20. Service Management API - Kód // A hosztolt szolgáltatás megadott környezetébe (slot) telepített  // alkalmazás adatainak kiolvasása publicstringGetDeployment(stringHostedService, stringSlot) { stringrequestID = ""; stringresponse = 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, outrequestID); returnresponse; }

  21. Alkalmazás automatikus skálázása • Szerepkör példányszámának növelése pl. a sor hossza alapján Fabric Fabric Controller Service Management API Azure Compute Mandelbrot Explorer webes szerepkör Mandelbrot Dispatcher munkavégző szerepkör Mandelbrot Renderer munkavégző szerepkör Mandelbrot Producer munkavégző szerepkör Mandelbrot Manager munkavégző szerepkör Azure Storage renderermessages sor operationdata tábla

  22. Alkalmazás automatikus skálázása

  23. A teljes alkalmazás • Virtuális gépek, tárolási megoldások, platformszolgáltatások Fabric Fabric Controller Service Management API Azure Compute Mandelbrot Explorer webes szerepkör Mandelbrot Dispatcher munkavégző szerepkör Mandelbrot Renderer munkavégző szerepkör Mandelbrot Producer munkavégző szerepkör Mandelbrot Manager munkavégző szerepkör Azure Storage dispatchermessages sor renderermessages sor producermessages sor managermessages sor jobs konténer moviedata tábla operationdata tábla

  24. Aszinkron, hibatűrő kommunikáció a szerepkörök között • várakozási sorok • Szabványos felületen (REST) elérhető, gyakorlatilag korlátlan mértékben skálázható erőforrások • virtuális gépek • adattárolás • Hibrid megoldások • együttműködés a „föld” és a „felhő” között • Összefoglalás • A megfelelően felépített alkalmazás rugalmasan skálázható