Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Azure Resource Manager programozása C#-al

Hasonló előadás


Az előadások a következő témára: "Azure Resource Manager programozása C#-al"— Előadás másolata:

1 Azure Resource Manager programozása C#-al
//Halányi Ferenc

2 Azure Resource Manager programozása C#-al
Bevezető Miért ARM? Rövid összehasonlítás a Classic modellel ARM Programozási lehetőségek áttekintése Célok és felhasználhatóság Programozzuk C#-al! Első lépések, első Nugetek Bejelentkezés az Azure-ba Alapvető erőforrások létrehozása VM-ek létrehozása és menedzselése

3 Hogy merült fel az igény?
Matematikai modellekre épülő valós idejű döntéstámogató és optimalizációs szoftver megoldások Időszakosan nagy CPU terhelés Futási idő érzékenység Aktuális bejövő adatoktól és rendszer állapottól függő tervezési erőforrás szükséglet Nemzetközi több telephelyes elérés biztosítása > Szükséges optimalizálni az erőforrás költségeket is

4 Azure Resource Manager
Bevezető Azure Resource Manager

5 Classic vs ARM Classic (v1) ARM (v2)
Microsoft ki fogja vezetni, de néhány funkció még csak itt érhető el XML alapú Cloud Service konténer integrálta a VM-eket a hálózattal Régi portál: ARM (v2) JSON alapú Resource Groupba csoportosítható minden erőforrás VM, NIC, LB, IP address, DNS független egymástól Új portál: További infó:

6 ARM előnyök fejlesztői szemmel - 1
Gyors: Párhuzamosan menedzselhetőek az erőforrások Template függőségeket, hivatkozásokat beépítve kezeli Kompatibilitás biztosított api-version= paraméter minden kérésben Beszédes URI minden erőforráshoz 1 klikkel törölhető az egész mű Resource Group törölhető benne lévő erőforrásokkal együtt ! Néhány erőforrás nevének elengedése hosszú idő is lehet pl: SQL Server

7 ARM előnyök fejlesztői szemmel - 2
Azure Resource Explorer JSON Template lekérhető tetszőleges erőforrásról Használható menedzselésre is JSON Template módosítható, infrastruktúra frissítésre kerül Alapvető parancsok kiadhatóak GUI-n, akár paraméterekkel Paraméterezett PowerShell parancsok lekérhetőek QuickStart Templates 260+ JSON Template különféle szcenáriókra

8 Azure Portál - Azure Resource Manager
//DEMO Azure Portál - Azure Resource Manager

9 ARM Programozási lehetőségek
JSON + REST API a közös interfész Minden parancs GET vagy JSON POST kérésre képződik le Hibakereséshez és visszafejtéshez elegendő egy HTTPS proxy Pl: Fiddler Web Debugger Több megközelítés PowerShell parancsok JSON Template Azure automatizáló szolgáltatások C# - Microsoft Nugetek Nem alternatívák, feladatfüggő a felhasználásuk

10 ARM Programozási lehetőségek - PowerShell
1500+ Azure parancs Lefedi a teljes Azure funkcionalitást Külön Rm parancsok a Resource Manager modellhez Az elkészült scripteket a felhőben is lehet futtatni Automation Account + Scheduler Job Inkább kisebb management feladatok ellátására, üzemeltetésre célszerű használni Példa ARM VM létrehozására PowerShell-ből: windows-resource-manager-vms/

11 ARM Programozási lehetőségek – JSON Template
Komplett infrastruktúra létrehozható egy Template-ből Paraméterezhető, a futtatáskor át lehet adni változókat Támogat alapvető szöveges, matematikai funkciókat és ciklust is PowerShell-ből vagy a Portálon keresztül deployolható ARM kezeli a korrelációkat, többszálasítást és hiba esetén az újrapróbálkozást Visual Studio Support: Azure SDK Azure SDK újdonságok: -> van még 2-7, 2-7-1, 2-8 is

12 Virtual machine scale sets
Azure automatizálás Virtual machine scale sets Metrikák alapján automatikus elindítás és leállítás Nem kell létrehozni és beállítani egyenként a VM-eket Gyorsabb, mint az egyenkénti VM létrehozás JSON Template alapján működik SQL elastic pools Adatbázisok összefogása a terhelés kiegyenlítése érdekében Nem használható egyetlen adatbázis automatikus méretezésére Automation Account + Scheduler Job

13 ARM Programozási lehetőségek – C#
Microsoft által kiadott Nugetek Elfedik a webes hívásokat Wrappelik a JSON objektumokat C# objektumokkal Folyamatosan fejlesztik őket Egyre több Azure funkcionalitást fednek le Pár hetente jelenik meg új stabil és prerelease verzió Teljesen integrált, saját infrastruktúrát menedzselő alkalmazás hozható létre

14 Teljesen automatikus infrastruktúra menedzsment
C# Célok – előnyök - 1 Felhasználói tevékenység és üzleti adatok alapján dinamikus infrastruktúra kezelés Erőforrás optimalizáció Teljesen automatikus infrastruktúra menedzsment Azure Portálra, VM-ekbe akár be se szükséges lépni Homogén fejlesztés: teljes szoftver C# alapon Azure Nugetekhez Intellisense támogatás

15 Azure erőforrások állapotának lekérdezése és menedzselése
C# Célok – előnyök- 2 Azure erőforrások állapotának lekérdezése és menedzselése Jövőben: előfizetési állapot és korlátok is Pl: Alkalmazás funkció korlátozása, keret túllépés csökkentése érdekében Jelenleg csak erőforrás felhasználás kérdezhető le Számítási idő, tárhely foglaltság, konkrét költségek nem Részletes statisztika érhető el, óránkénti és napi felbontásban

16 ARM Nugetek C# Programozása

17 Microsoft.Azure.Management névterű nugetek
ARM Nugetek Microsoft.Azure.Management névterű nugetek ! Microsoft.WindowsAzure névtér a Classic-hoz van! Minden ARM Client külön nugetben van Folyamatosan frissülnek Stabil és Prerelease verziók Sok a különbség közöttük Microsoft.IdentityModel.Clients.ActiveDirectory a Microsoft.Azure.Management.Compute prerelease Microsoft.Azure.Management.Network preview preview Microsoft.Azure.Management.Resources preview preview Microsoft.Azure.Management.Sql prerelease Microsoft.Azure.Management.Storage preview preview

18 Aktuális stabil ARM Nuget verziók - 1
Sok a hiányosság Nem fedik el teljesen a HTTP layert Többnyire AzureOperationResponse-ból származó válaszok HttpStatusCode vizsgálata szükséges Nincsenek közös interfészek DatabaseCreateOrUpdateResponse DeleteOperationResponse ComputeLongRunningOperationResponse

19 Aktuális stabil ARM Nuget verziók - 2
ARM funkciók implementálása kódból szükséges Hibakezelése és újrapróbálkozási stratégia Többszálasítás Hivatkozott erőforrások megfelelő sorrendben hozandóak létre Hivatkozott adatok (pl: IP cím) lekérdezése Erőforrás tulajdonságok stringként vannak kezelve Lokációk: „North Europe” ! A legtöbb helyen csak „northeurope” formátumot fogad el Méretezések: „Standard_D1”, „S0”

20 Prerelease ARM Nuget verziók - 1
Folyamatosan frissülnek, akár heti rendszerességgel Teljesen elfedik a HTTP layert Csak C# Azure erőforrás objektum be és kimenetű függvények vannak Egymásra épülő erőforrások létrehozhatóak egyetlen kérésben VM, NIC, IP cím esetén már a teljes objektum fa megadható

21 Prerelease ARM Nuget verziók - 2
Még nem egységesek, nem kompatibilisek egymással Management kliensek bejelentkezési logikája változik Eddig: Microsoft.Azure.TokenCloudCredentials Prerelease: Microsoft.Rest.ServiceClientCredentials SubscriptionId megadása szükséges ! De SQL, Subscription nugetekben még nem frissült Erőforrás string helyett segédosztály VirtualMachineSizeTypes Van a stabilban is, de a D sorozat még nincs benne!

22 Külön réteg, kifelé nincsenek Azure objektumok
Saját Azure Wrapper Külön réteg, kifelé nincsenek Azure objektumok Azure nuget verzió független Bejelentkezési logika egységes Általánosított hibakezelés Erőforrás stringek helyett osztályok Nem teljes, az éppen használt Azure funkciók kerülnek bele

23 C# ARM Nugetek áttekintése
//DEMO C# ARM Nugetek áttekintése

24 Bejelentkezés, azaz Token kérése
OAuth2 interfész Felhasználónév + jelszó vagy tanúsítvány a hitelesítéshez Siker esetén Token (b64 string), 1 óra lejárat Auzre ManagementClient-ek létrehozásakor kell átadni Microsoft.IdentityModel.Clients.ActiveDirectory - ADAL 2.21.* a legfrissebb stabil nuget 3.*-alpha, szükséges a többi prerelease nugethez ! Hozzá kell adni a futtatott projecthez is, különben exception!

25 Azure hitelesítési módok
Felhasználó alapú Egyszerű beállítani, de nem biztonságos, inkább fejlesztéshez ! Azure AD felhasználó jelszava alapesetben egy idő után lejár Tanúsítvány alapú Biztonságos, éles környezetben ajánlott Azure AD Application beállítása szükséges a Portálon ClientId az alkalmazás beállításaiból kimásolható Windows Azure Service Management API jog delegálás Új portálon Role Based alapon finomítható a hozzáférés Vagy a menedzser felhasználó Azure portál administratorként való felvétele

26 Hitelesítés beállítása Portálon
//DEMO Hitelesítés beállítása Portálon

27 ARM ManagementClient-ek
Egy kliens egyszerre egy előfizetéshez használható Érdemes szálanként létrehozni a klienseket Elnevezés nem egységes ResourceManagementClient NetworkResourceProviderClient ComputeManagementClient SqlManagementClient SubscriptionClient

28 Példa C# program https://github.com/haliferi/azurenuget
//DEMO Példa C# program

29


Letölteni ppt "Azure Resource Manager programozása C#-al"

Hasonló előadás


Google Hirdetések