Azure AZ-900 - blog 1

Ingediend door Dirk Hornstra op 07-okt-2020 23:25

Deze blog gaat over Azure Fundamentals. Ik heb hier al 2 posts over gepubliceerd, dat ging over de online uitzendingen post 1 en post 2. Het is vandaag zondag 4 oktober, ik sta aan het begin van een nieuwe week. Op 19 november staat het examen gepland. Dat lijkt nog ver weg, maar die weken zullen wel net zo snel voorbij gaan als de rest van het jaar. Op een kladbriefje heb ik dus alle datums opgeschreven van 19 november terug naar 5 oktober en daar de datums gevuld met de activiteiten die al gepland zijn (bioscoop, theater, Microsoft .NET conf), zodat ik duidelijk heb op welke datums ik in theorie met Azure aan de slag kan gaan. En eigenlijk ook MOET gaan.

Deze blog-post begin ik met 2 URL's die ik door ga lopen. Tijdens de trainingen kwam aka.ms/azfunpath voorbij. Hier heb je meteen 7.5 uur aan trainingsmateriaal. Als ik er vanuit ga dat ik per avond 2 uur beschikbaar heb, plan ik deze in voor dinsdag 6 oktober tot en met vrijdag 9 oktober. En ergens (DF20 ?) zag ik de url aka.ms/azure.heroes voorbij komen. Je kunt een "badge" krijgen als je bepaalde acties voor Azure hebt gedaan, ziet er cool uit. De "learner" is voor iedereen, maar dan moet je bij een Azure related talk of event geweest zijn (hmm... dat zouden die sessies van 10 en 11 september zijn, toch?). Daar wordt ook nog verwezen naar MS learn, ik denk dat daar het vervolg ligt als ik door de content van azfunpath heen ben. Zo staat daar bij de favorieten: "Inleiding tot het Microsoft Azure Well-Architected Framework", link, die me interessant lijkt.

In ieder geval, op 6 oktober begonnen met deel 1, kennis maken met cloud-concepten van Microsoft Azure (link). Hier loop je eerst door het standaard verhaal heen, dus hoe de scores van het examen opgebouwd zijn uit de onderdelen. Hoe je een free account kunt aanmaken (link). Ik heb dit in het verleden al eens gedaan, waardoor mijn e-mailadres nu als "reeds gebruikt" geregistreerd staat (en ik heb er toen niets mee gedaan omdat ik het weer te druk had met andere dingen) en dat is wel zonde. Maar.. je kunt je ook aanmelden met je Github-account! Daar zitten behoorlijk wat haken-en-ogen aan. Ik weet nog van mijn aanmelden-met-mailadres ervaring dat het een kwestie van gegevens invullen en doorklikken was. Bij de koppeling via Github gaat het via het OAuth proces. Ik kom op een pagina waarbij de foutmelding getoond wordt dat er geen code meegegeven is. Ik krijg de foutmelding dat de ingevulde cijfercode niet klopt en dat ik mijn andere mailadres moet controleren (dat wil ik niet, die wil ik niet gebruiken en daar ontvang ik trouwens ook geen code). Dus nogmaals de stappen doorlopen. Uiteindelijk het scherm om je gegevens in te vullen, koppelen met je mobiele nummer (cijfercode) en vervolgens je creditcard. Wordt niet gebruikt, maar je moet 'm invullen zodat op het moment dat je gaat upgraden deze wel gebruikt kan worden. En dan zou ik naar het volgende scherm moeten gaan, maar kom ik op een too many redirects pagina. Wederom naar azure.microsoft.com en nu gaat het wel goed, ik kan ook meteen door naar portal.azure.com.

We beginnen met de case studie. Het bedrijf Contoso heeft de servers in eigen beheer, groeit tegen de klippen op en zou een goede kandidaat zijn om de boel over te zetten naar Azure. Oh nee, alleen de introductie. Je krijg vervolgens 3 vragen die je moet beantwoorden (simpel) en daarna de vraag of je ook een profiel wilt aanmaken om je score op bij te houden. Nou, vooruit, laten we dat maar doen. Je kunt mijn profiel hier bekijken: https://docs.microsoft.com/nl-nl/users/DirkHornstra-0360

Ik dacht dat ik er al was. Maar natuurlijk niet. Hier zie ik dat ik het eerste blok klaar heb, maar ik moet er nog 3: https://docs.microsoft.com/en-us/learn/paths/explore-microsoft-azure-cloud-concepts/

Op 7 oktober door met het 2e blok, discussie waarom cloud-services top-of-the-bill zijn (link). We beginnen met het voorbeeld van een lamp. Voor jou is het een kwestie van een lamp kopen en zorgen dat je stroom krijgt, je hoeft alleen maar het knopje om te zetten om de lamp aan of uit te zetten. Je betaalt voor de lamp en voor het verbruik. Hoe de electriciteit gemaakt wordt (waterkracht, windmolens) en hoe het je huis bereikt interesseert je niet, als er maar prik op je stopcontact zit. Zou het niet fijn zijn dat het ontwikkelen en deployen van software op een vergelijkbare manier zou werken? Dat is het thema van dit blok. Dat je kunt benoemen wanneer je met een cloud zou moeten werken, de voordelen die het heeft en vervolgens welk deployment-model het beste voor jou zou zijn.

De verschillende onderdelen zijn:

  • Compute power - such as Linux servers or web applications.
  • Storage - such as files and databases.
  • Networking - such as secure connections between the cloud provider and your company.
  • Analytics - such as visualizing telemetry and performance data.


In het bijgaande filmpje wordt gezegd dat veel aanbieders verschillende diensten aanbieden, maar dat compute power en storage daar altijd onderdeel vanuit maken.

Compute Power

Het voorbeeld wordt gegevens van een Virtual Machine in de cloud. Daar kun je jouw besturingssysteem op installeren en vervolgens de benodigde software. De alternatieven zijn containers en serverless computing.

Containers zijn vergelijkbaar met virtuele machines, alleen hebben ze geen besturingsysteem nodig wat ook opgestart hoeft te worden. Het draait als een soort app binnen de runtime. Hierdoor is opstarten snel en kunnen containers ook redelijk simpel naar andere machines overgezet worden. Docker is een belangrijke speler bij containers.

Serverless computing kun je vergelijken met eigen webservices die je aan kunt roepen, bijvoorbeeld om e-mails te versturen. Je betaalt alleen voor daadwerkelijk gebruik, als een Virtual Machine niets staat te doen, of een container moet je ook voor dat "wachten/slapen" betalen. Niet elke applicatie is om te bouwen naar allemaal losse componenten die aan te roepen zijn, maar als het mogelijk is, dan is serverless computing een voordeliger alternatief.

Storage

Opslag wordt aangeboden als een file-system (opslaan van documenten, foto's), maar bijvoorbeeld ook het opslaan van gegevens in een database. Met data-opslag in de cloud kun je de opslag laten vergroten als je vrije ruimte bijna op is. Dat kan soms ook automatisch en betaal je alleen voor het daadwerkelijk gebruikte.

In het volgende scherm ga je naar portal.azure.com en krijg je een paar vragen (hoef je niet te beantwoorden) of je kunt vinden waar iets aangemaakt kan worden.

Dan krijgen we een flinke lijst met "key concepten" van een cloud. Er wordt soms wel eens gezegd: een server in de cloud is gewoon een server in iemand anders zijn garage. Nou, zo "gewoon" is het niet als we deze hele lijst even afvinken:

  • High availability. Zorg dat je site/dienst bijna altijd beschikbaar is.
  • Scalability. De mogelijkheid om als er ineens 20.000 extra bezoekers op je site komen je resources te verdubbelen en als het verkeer weer normaal wordt je resources weer naar het normale peil te laten afschalen.
  • Elasticity. Lijkt een beetje op Scalability. Bij Scalability ga je op het moment dat je site traag wordt zelf extra resources toevoegen om de responstijden weer normaal te krijgen. Bij Elasticity stel je van tevoren in dat als er veel load komt, er automatisch 20 extra webservers beschikbaar zijn.
  • Agility. De mogelijkheid om binnen seconden te kunnen reageren. Je hoeft niet eerst een bestelling te plaatsen, een half uur te wachten en dan je aanvullende producten krijgen, je doet een aanvraag, zaken lopen allemaal gescript en worden meteen uitgevoerd. Je diensten heb je dus binnen seconden/minuten beschikbaar.
  • Fault tolerance. De mogelijkheid om je diensten te laten draaien, ook als er een onderdeel "kapot" is. Veelal is er redundantie ingebouwd, waardoor als er 1 webserver het niet meer doet, een ander de taak overneemt.
  • Disaster recovery. De mogelijkheid om, als je cloud-dienst er uit ligt, heel snel deze weer actief te krijgen, vaak met behulp van automation en services.
  • Global reach. De mogelijkheid om "iedereen" te kunnen bereiken.
  • Customer latency capabilities. Als je dienst voor bepaalde klanten "traag" aanvoelt, kan het zijn dat de klant een heel eind van de bron af zit (dienst zit in Noord Amerika, ik zit in Europa). Cloud-services hebben de mogelijkheid om resources in te zetten in datacenters rond de wereld om deze "latency" op te lossen.
  • Predictive cost considerations. De mogelijkheid om van tevoren de kosten te voorspellen voor gebruik. Je kunt ook een analyse uitvoeren op basis van verwachte groei.
  • Technical skill requirements and considerations. Met cloud-diensten hoeven medewerkers zich alleen op applicatie-niveau zaken te regelen. Hardware / systeembeheer is hierdoor niet nodig.
  • Increased productivity. Naast dat die technische kennis niet nodig is, hoeven ook geen patches en andere intensieve beheer-taken meer lokaal uitgevoerd te worden.
  • Security. Cloud providers hebben een heel arsenaal voor het garanderen van de veiligheid, met policies, technologieën. Een betere know-how waardoor data, apps en infrastructuur goed beschermd wordt.

Dit zijn de specs. Daarnaast heb je, als je met "de cloud" bezig bent nog allemaal andere begrippen. Die kun je hier nalezen.

Ecnonomies of scale, wat ook naar voren kwam bij de presentaties die we gevolgd hebben. Vroeger kostte opslag veel geld, doordat de cloud-providers dit voordeliger konden inkopen, profiteren daar nu ook de klanten van mee. In het voorbeeld bij de presentatie was dat bij de keuze van locatie voor bepaalde diensten (nieuwere locatie, lagere kosten).

Als je vroeger een bedrijf wilde starten, moest je zelf de computers, servers en rest aanschaffen. Dat valt onder de CapEx: Capital Expenditure. Je moet eerst veel geld uitgeven, wat in de loop van de tijd minder wordt. Servers, opslag, netwerk, back-up en archiveren, disaster recovery (orkaan in dit gebied, heb je op een andere locatie nog een backup?), datacenter infrastructuur en technisch personeel.

Aan de andere kant heb je OpEx: Operational Expenditure. Als je gebruik maakt van de cloud heb je andere kosten; lease van software en aangepaste features, kosten voor scaling op basis van gebruik.

Voordelen van CapEx is dat je aan het begin precies weet wat het gaat kosten. Bij OpEx kan doordat er veel vraag is de kosten gaan toenemen. Cloud diensten zijn dus consumption-based diensten. Je betaalt voor gebruik. Een aantal vragen, multiple choice, is te doen.

Door met het volgende blok, de soorten cloud-modellen (link), je heb public, private en hybride.

Een publieke cloud bestaat uit de volgende karakteristieken:

  • Ownership - Dit verwijst naar de resources die een organisatie en/of medewerers gebruik van maken. Vaak is dit eigendom van de cloud service provider.
  • Multiple end users - De resources kunnen aan meerdere organisaties aangeboden worden.
  • Public access - Publieke toegang zodat een ieder erbij kan komen.
  • Availability - De meeste clouds zijn publiek en dus ruim beschikbaar (Google, Amazon, Microsoft).
  • Connectivity - Gebruikers en organisaties zijn in 9 van de 10 gevallen via de browser verbonden met hun public cloud.
  • Skills - Voor digibeten misschien net te moeilijk, maar over het algemeen ook voor de beginnende computeraar is er makkelijk te werken met een publieke cloud.


Voordelen:

  • No CapEx. Je hoeft niet zelf een server erbij te kopen als de capaciteit vergroot moet worden.
  • Agility. Applicaties kunnen snel beschikbaar gemaakt worden (en ook weer ge-deinstalleerd).
  • Consumption-based model. Alleen betalen voor wat je gebruikt.
  • Maintenance. Cloud provider regelt dit.
  • Skills. Geen technische vaardigheden nodig.


Nadelen:

  • Security. Er kunnen bepaalde security-requirements zijn die niet geïmplementeerd kunnen worden omdat het een publieke cloud is.
  • Compliance. Er kunnen wettelijke regels zijn, standaarden voor de industrie waar een publieke cloud niet aan kan voldoen.
  • Ownership. Als de cloud provider besluit geen snellere SSD's te gebruiken, maar een ouder/trager type, dan kan de klant daar geen invloed op uitoefenen.
  • Specific scenarios. Als het bedrijf een oude legacy-applicatie moet blijven aanbieden, die alleen draait op windows 3.11, dan kan een publieke cloud dat vaak niet ondersteunen.


Een private cloud is een cloud die door een bedrijf in het eigen datacenter wordt opgezet.

  • Ownership. Eigenaar en gebruiker zijn dezelfde (het bedrijf dus).
  • Hardware. De eigenaar is zelf verantwoordelijk voor onderhoud e.d.
  • Users. Een private cloud is voor één bedrijf en de resources zijn alleen toegankelijk voor dat ene bedrijf/organisatie.
  • Connectivity. Verbinding wordt over het algemeen gemaakt via een privé netwerk dat uitermate goed afgeschermd is van de buitenwereld.
  • Public access. Niet, geen toegang.
  • Skills. Hier is veel kennis voor nodig om het op te zetten, maar ook te onderhouden.


Voordelen:

  • Control. Als bedrijf kun je alles met de bronnen doen.
  • Security. Alle mogelijkheden om maximale restricties aan te zetten.
  • Compliance. Bepaalde wettelijke regels (data mag niet buiten de EU) kan vaak alleen met een private cloud opgelost worden.
  • Specific scenarios. Applicatie heeft dBase IV nodig, op een eigen private cloud kun je dat regelen.
     

Nadelen:

  • Upfront CapEx. Zelf je hardware kopen.
  • Agility. Complete infrastructuur zul je ook zelf moeten opbouwen.
  • Maintenance. Je moet zelf de hardware onderhouden en updates doorvoeren.
  • Skills. Je hebt in-house experts nodig.


Een hybride cloud is (hoe verrassend) een combinatie van een publieke cloud met een private cloud. Hiervoor geldt;

  • Resource location. Specifieke resources staan/draaien in de publieke cloud, de andere in de private cloud.
  • Cost and efficiency. Met deze implementatie kan een deel van het voordeel van de publieke cloud gebruikt worden.
  • Control. De organisate behouden het beheer van de private cloud.
  • Skills. De technische vaardigheden voor de private cloud zijn nog steeds nodig en aanvullende vaardigheiden zijn nu nodig om het ook met de publieke cloud samen te laten werken.


Voordelen:

  •  Flexibility. Je kunt zelf bepalen waar je jouw applicaties laat draaien.
  •  Costs. Je kunt nu gebruik maken van de prijsvoordelen die de cloudprovider weer doorberekend naar de klant.
  •  Control. De applicaties in de private cloud zijn volledig beheerbaar voor het bedrijf.
  • Security. Hetzelfde geldt voor security.
  • Compliance. Hetzelfde voor compliance.
  •  Specific scenarios. Hetzelfde voor specific scenarios.


Nadelen:

  • Upfront CapEx. Voor je private cloud zul je zaken moeten kopen en dus vooruit betalen.
  • Costs. Het houden van een private cloud naast een public cloud kan extra kosten opleveren.
  • Skills. Je hebt in-house experts nodig.
  • Ease of management. Het bedrijf moet duidelijke richtlijnen opstellen om verwarring, complicaties of misbruik te voorkomen (draait deze applicatie in de public cloud? maar dat mag niet! die moet in de private cloud!).


Dan gaan we naar het laatste blok van deze module, de verschillende soorten cloud services (link).

We hebben 3 verschillende services, Infrastructure as a Service (IaaS), Platform as a Service (PaaS) en en Software as a Service (SaaS).

Een dienst in de cloud is een shared responsibility. De service provider is ervoor verantwoordelijk dat de boel blijft draaien. Maar dat betekent niet dat jij niets hoeft te doen en alle deuren om SQL injection op jouw blog gewoon open te laten. We moeten dit samen doen! We zien een afbeelding waarin getoond wordt wie waar verantwoordelijk voor is.

Bij IaaS wordt compute, networking en storage door de cloud provider gedaan. Maar jij moet data en access, applicaties, runtime, operating system en virtual machine onderhouden. Bij PaaS hoef je alleen maar data en access en applicaties te onderhouden, de rest doet de service provider. Bij SaaS ligt alleen data en access nog op jouw bordje, de rest is voor de service provider.

Infrastructure as a Service

Hierbij huur je servers, virtual machines, opslagruimte, netwerk en operating system van de service provider. Deze dienst wordt vaak gebruikt voor:

  • Migrating workloads. Vaak werken deze omgeving gelijk aan hoe het "on premise"  ook werkt. Een prima manier om bestaande applicaties naar de cloud te migreren.
  • Test and development. Even snel een test- en ontwikkelomgeving opzetten (en weer afbreken), prima manier om snel nieuwe producten in de markt te zetten.
  • Website hosting. Vaak minder duur dan "normale" web-hosting.
  • Storage, backup, and recovery. Maakt dit een stuk makkelijker voor je.


Voordelen:

  • No CapEx. Geen kosten van tevoren.
  • Agility. Applicaties snel beschikbaar (en verwijderbaar).
  • Consumption-based model. Betaal voor gebruik.
  • Skills. Geen technische vaardigheden nodig.
  • Cloud benefits. Gebruik de mogelijkheden (goede beschikbaarheid, alle andere positieve punten van de cloud).
  • Flexibility: IaaS is het meest flexibel, omdat je de hardware kunt configureren en beheren.


Nadelen:

  • Management. Het gedeelde-veranwoordelijkheidsmodel geldt hier, de gebruiker beheert en onderhoudt de diensten die zij aanmaken, de cloud provider beheert en onderhoudt de infrastructuur.


Platform as a Service

Biedt een omgeving om je applicaties te bouwen, testen en implementeren. Je hoeft je niet druk te maken over Windows/Linux en IIS/Apache, dat regelt de service provider. Deze dienst wordt vaak gebruikt voor:

  • Development framework. Ideale manier om in de cloud je applicaties te bouwen.
  • Analytics or business intelligence. Tools die met deze dienst geleverd worden bieden de mogelijkheid om eigen data te analyseren en te "minen" om zo inzichten, patronen te filteren en op basis daarvan voorspellingen te kunnen doen.


Voordelen:

  • No CapEx. Geen kosten van tevoren.
  • Agility. PaaS is meer agile dan IaaS, gebruikers hoeven geen servers te configureren voor actieve applicaties.
  • Consumption-based model. Betaal voor gebruik.
  • Skills. Geen technische vaardigheden nodig.
  • Cloud benefits. Gebruik de mogelijkheden (goede beschikbaarheid, alle andere positieve punten van de cloud).
  • Productivity. Omdat de cloud provider het plaformmanagement doet, hoeven gebruikers zich alleen te focussen op de applicatie-ontwikkeling.


Nadelen:

  • Platform limitations. Er kunnen bepaalde beperkingen zijn die invloed hebben op hoe een applicatie werkt. Dus voor de tijd moeten goed gekeken worden welke PaaS platform het mest geschikt is (door de beperkingen te controleren/na te lopen).


Software as a Service

Deze dienst biedt je de mogelijkheid om applicaties in de cloud via het internet te gebruiken. Voorbeelden zijn e-mail, kalenders, Microsoft 365, Skype, Dynamics CRM.

Voordelen:

  • No CapEx. Geen kosten van tevoren.
  • Agility. De meest up-to-date software kan snel en makkelijk aangeboden worden.
  • Pay-as-you-go pricing model: Gebruikers betalen voor de software op basis van een abonnement, meestal per maand of jaar, onafhankelijk van hoe vaak ze de software gebruiken.
  • Flexibility. Gebruikers kunnen er vanaf elke locatie bij.


Nadelen:

  • Software limitations. Er kunnen beperkingen zijn bij een software applicatie die invloed heeft op hoe gebruikers er mee moeten werken. Je hebt geen controle over de features.