De Microsoft Azure cloud biedt een heleboel diensten voor bijna elk scenario dat je nodig zou kunnen hebben. Je kunt deze diensten indelen in cloud computing-typen zoals IaaS, PaaS en SaaS om te bepalen hoeveel controle en verantwoordelijkheid je hebt versus de tijd die je kunt besteden aan het bouwen van dingen die er toe doen.
Laat me deze typen wat verder toelichten:
- IaaS (Infrastructure-as-a-Service)
- PaaS (Platform-as-a-Service)
- SaaS (Software-as-a-Service)
- Top Azure PaaS Services
- Web Apps
- Mobile Apps
- Logic Apps
- Azure Functions
- Azure WebJobs
- Wat te gebruiken wanneer
- App Services gedeelde functies
- Deploying services
- Azure Event Grid
- Azure Service Bus
- Azure Storage
- Blob Storage
- Table Storage
- Que Storage
- File Storage
- Disk Storage
- Azure Cosmos DB
- Azure Cognitive Services
- Azure CDN
- Azure Redis Cache
- Azure API Management
- Conclusie
IaaS (Infrastructure-as-a-Service)
Typische IaaS-diensten zijn Container Service en Virtual Machines. Deze geven je veel controle over hoe je ze uitvoert, maar vereisen ook dat je verantwoordelijk bent voor zaken als het OS, Antivirus en Load Balancing. Hierdoor kunnen jij en je team minder tijd besteden aan het toevoegen van bedrijfswaarde.
PaaS (Platform-as-a-Service)
Voorbeelden van PaaS-services zijn App Services, Azure Search en Azure CDN. Je hoeft je geen zorgen te maken over het OS of zelfs de server, je kunt gewoon je applicatie draaien. Je bent wel verantwoordelijk voor sommige serverconfiguraties, zoals schalen, hoewel dat voor sommige services, zoals Azure Functions, automatisch gebeurt.
SaaS (Software-as-a-Service)
Voorbeelden van SaaS services zijn zaken als Azure IoT Suite en Office 365. SaaS is het hoogste abstractieniveau en stelt je in staat om gewoon de applicatie te gebruiken, je hoeft het niet eens te bouwen. Je hoeft het alleen maar te configureren. U hoeft zich geen zorgen te maken over het OS of zelfs het schalen van de app. Dit stelt u in staat om te werken aan de zakelijke waarde, maar biedt u weinig controle over uw applicatie.
Voor softwareontwikkelaars is PaaS een geweldig type cloud computing om te gebruiken. Je hebt genoeg controle om gewoon aan je applicatie te werken en het zo aan te passen dat het precies goed is en je hoeft je geen zorgen te maken over alle operationele dingen. Dingen draaien gewoon zonder zorgen over OS patches of load balancing.
Azure heeft een zeer sterk PaaS aanbod, wat zeer aantrekkelijk is voor ontwikkelaars. Dit artikel zal de top Azure PaaS-diensten voor ontwikkelaars bespreken die uw applicatie beter kunnen maken.
Top Azure PaaS Services
Een van de kern Azure PaaS-diensten is Azure App Services. Azure App Services bieden meerdere service types, elk gericht op het hosten van uw applicatie of business logica voor een specifieke use case. Bovendien delen de App Service-typen gemeenschappelijke mogelijkheden, zoals auto-scaling, authenticatie en autorisatie en aangepaste domeinen en SSL.
Laten we de App Service-typen eens doornemen:
Web Apps
Azure App Service Web Apps zijn essentieel als u een standaard ASP.NET-webtoepassing wilt hosten. Web Apps zijn een abstractie van een webserver zoals IIS of Tomcat en kunnen toepassingen uitvoeren die zijn geschreven in .NET, PHP, Python, Node.js, Java en meer. Ze zijn zeer eenvoudig te installeren en bieden u veel voordelen out-of-the-box, zoals het feit dat ze standaard 99,95% van de tijd beschikbaar zijn. U hoeft zich geen zorgen te maken over downtime. App Services zijn nu beschikbaar voor zowel Windows als Linux.
Mobile Apps
Azure kan u ook helpen bij het maken van mobiele toepassingen. U kunt een backend voor uw mobiele app hosten in Azure App Services Mobile Apps. U kunt eenvoudig verbinding maken met deze backend met behulp van de SDK’s voor Azure Mobile Apps die beschikbaar zijn voor IOS, Android, Windows, Xamarin.IOS, Xamarin.Android en Xamarin.Forms.
De mobiele backend biedt u een aantal unieke voordelen. Een daarvan is de mogelijkheid om offline sync te doen. Dit stelt een gebruiker in staat om door te werken met de app als hij offline is en gegevens terug te synchroniseren naar de backend wanneer hij weer online komt. Een andere mogelijkheid is push notificaties. Hiermee kunt u meldingen over uw app naar het apparaat van de gebruiker sturen. Bovendien heeft Mobile Apps dezelfde mogelijkheden als Web Apps, zoals auto-scaling en hoge beschikbaarheid.
Logic Apps
Azure App Service Logic Apps zijn anders dan Web Apps en Mobile Apps omdat u er geen applicatie in host, maar er business logica mee orkestreert. Zie Logic Apps als een manier om een bedrijfsproces te automatiseren door het alleen maar te configureren.
Een Logic App wordt gestart door een Trigger. Dit kan een tijdstip zijn (elke 15 minuten) of een bron van buitenaf, zoals een nieuw bericht op een wachtrij. De Trigger geeft waarden door aan de workflow (zoals de inhoud van het bericht in de wachtrij), die in de hele Logic App kunnen worden gebruikt. De rest van de stroom van de Logic App bestaat uit het aanroepen van Connectors, dat zijn API’s naar diensten van derden, zoals Office365 of Twitter of uw eigen API’s.
Logic Apps schalen automatisch en u betaalt er alleen voor als ze draaien. Dit wordt ook wel “serverless” genoemd, omdat het betekent dat u zich volledig kunt richten op uw toepassing of logica en niet op de onderliggende infrastructuur.
Azure Functions
Azure App Services Function Apps kunnen een of meer Azure Functions hosten. U gebruikt Azure Functions om kleine toepassingen te hosten, zoals achtergrondtaken of een microservice die slechts gedurende een korte periode wordt uitgevoerd.
Azure Functions kunnen worden getriggerd door configureerbare timers, zoals op een schema (elke 15 minuten) of door een externe service, zoals wanneer een nieuwe Blob wordt toegevoegd aan Azure Blob Storage. Wanneer getriggerd, kan de code in de Azure Function de waarde van de trigger gebruiken, zoals de Blob die is toegevoegd. Je kunt ook output bindings toevoegen aan een Azure Function om een waarde uit te voeren naar een externe service, zonder plumbing te schrijven. Dit kan bijvoorbeeld een Blob Storage-uitvoer zijn waarbij je gewoon een Blob retourneert zonder code te hoeven schrijven om verbinding te maken met Azure Storage.
Net als Logic Apps zijn Azure Functions “serverless”, omdat ze automatisch schalen en je er alleen voor betaalt als ze worden uitgevoerd.
Azure WebJobs
Een andere manier om achtergrondtaken uit te voeren is door ze in Azure WebJobs uit te voeren. WebJobs maken deel uit van App Services en worden uitgevoerd binnen een App Service, zoals een webapp of een mobiele app. U kunt code schrijven en hosten in WebJobs die wordt gestart door een trigger, zoals een timer (elke 15 minuten) of een externe service, zoals een nieuw bericht in een wachtrij.
WebJobs werken vergelijkbaar met Azure Functions in die zin dat ze kleine stukjes code uitvoeren die kunnen worden getriggerd door externe bronnen die geen plumbing code vereisen om op te zetten.
Ze zijn anders dan Azure Functions in die zin dat je ze handmatig moet schalen. U betaalt voor de App Service die uw Web Job host, wat een maandelijkse vergoeding is, ongeacht of de WebJob wordt uitgevoerd of niet.
Lees meer: Vergelijk Azure Functions vs Azure WebJobs
Wat te gebruiken wanneer
Dus welke App Service moet je wanneer gebruiken? Deze tabel kan u helpen:
Web Apps | Mobile Apps | Logic Apps | Functions | WebJobs | ||
Host web applicaties en API’s | X | |||||
Host backend voor mobiele apps | X | |||||
Host business logic workflows | X | |||||
Host achtergrondtaken | X | X | ||||
Schaalt automatisch en betaalt alleen wanneer het wordt uitgevoerd | X | X | ||||
Controleer schaling en betaal een maandelijks bedrag | X | X | X | X |
App Services gedeelde functies
Azure App Services delen een aantal geweldige functies, die ze zeer aantrekkelijk maken om te gebruiken. Hier zijn er enkele van:
- Eenvoudige authenticatie en autorisatie
- Continue delivery
- Custom domains
- Hybrid connections
- Hiermee kunt u verbinding maken met on-premises resources, zoals webservices of databases
- (automatisch) schalen en load balancing
- Deployment slots
- Hiermee kunt u de nieuwe versie van uw applicatie testen en zonder downtime naar productie uitrollen. Ze stellen u zelfs in staat om een deel van uw productieverkeer naar de nieuwe versie van uw app te routeren, om te zien of het werkt zoals verwacht.
- Lees hier meer over deployment slots
Deploying services
Het maken van een nieuwe Web App of Logic App is eenvoudig via de Azure Portal, maar u zou uw implementaties echt moeten automatiseren, zodat u ze in verschillende omgevingen kunt herhalen en exact dezelfde configuratie kunt uitvoeren. U kunt dat doen door Azure Resource Manager (ARM) sjablonen te maken die u implementeert vanuit Visual Studio of in een continue leveringspijplijn met behulp van een service zoals Visual Studio Team Services.
ARM-sjablonen beschrijven uw resources zoals Web Apps, Azure SQL Databases en resourcegroepen in JSON-documenten. U kunt ze maken met behulp van de Azure Resource Group project template in Visual Studio en inspiratie opdoen door te klikken op de Automation Script knop op elke resource in de Azure Portal.
Azure Event Grid
Een relatief nieuwe service, Azure Event Grid, fungeert als de lijm tussen services. Azure Event Grid kan events van elke bron naar elke bestemming routeren.
Bijna elke Azure service kan events publiceren die Azure Event Grid kan ontvangen en gebruiken om uw applicatie mee te triggeren. U kunt ook uw eigen applicaties en services gebeurtenissen laten publiceren die Azure Event Grid kan gebruiken om naar andere services te routeren.
Azure Event Grid schaalt automatisch en u betaalt alleen voor het aantal bewerkingen dat u gebruikt.
Azure Event Grid elimineert de noodzaak van polling. Uw applicaties kunnen luisteren naar en reageren op gebeurtenissen van welke service dan ook die gebeurtenissen naar Azure Event Grid publiceert.
U kunt bijvoorbeeld Azure Event Grid laten luisteren naar wijzigingen in uw mailinglijst en een Azure Logic App laten triggeren als er iets verandert.
Azure Service Bus
Eén van de oudste en meest gebruikte en betrouwbare services in Azure is de Azure Service Bus. Deze bestaat uit meerdere services, met name Azure Service Bus Queues en Azure Service Bus Topics.
Een applicatie kan berichten op een Azure Service Bus Queue plaatsen. Elk bericht wordt gelezen uit de wachtrij en verwerkt door een applicatie. Azure Service Bus-wachtrijen hebben enkele geavanceerde mogelijkheden die u out-of-the-box krijgt, zoals detectie van duplicaten en een sub-wachtrij voor dode brieven waar berichten naartoe worden verplaatst die niet kunnen worden verwerkt.
Azure Service Bus Topics zijn een beetje anders. Applicaties kunnen berichten op een Azure Service Bus Topic plaatsen en meerdere applicaties kunnen het bericht lezen en verwerken. Zij ontvangen de berichten die attributen hebben waarin zij geïnteresseerd zijn. Zij abonneren zich op ’topics’ op de wachtrij. Azure Service Bus Topics hebben dezelfde geavanceerde mogelijkheden als Queues dat doen.
Met beide services kunt u de applicatie die berichten op de wachtrij plaatst ontkoppelen van de applicatie die de berichten verwerkt. Dit patroon stelt de verwerkende toepassing in staat om taken op zijn eigen tempo te verwerken zonder de gebruiker erop te laten wachten. Dit is handig wanneer het verwerken even kan duren en je niet wilt dat de gebruiker daarop moet wachten, bijvoorbeeld wanneer je een bestelverzoek verwerkt dat 5 minuten kan duren.
Azure Storage
Een basis bouwsteen in elke applicatie is data opslag. Azure Storage biedt meerdere opties voor het opslaan van gegevens, zoals bestanden of rijen met gegevens. Het biedt verschillende diensten die allemaal relatief goedkoop zijn, bijna oneindig schalen en over geografische regio’s en functies bieden zoals encryptie en authenticatie. Je krijgt dit allemaal out-of-the-box, gewoon door een Azure Storage Account aan te maken. Laten we de verschillende typen Azure Storage eens bespreken:
Blob Storage
Je slaat grote bestanden, of ‘blobs’, op in Azure Blob Storage. Dit kunnen dingen zijn als VHD-bestanden of audio- of videobestanden of databaseback-ups.
U kunt een niveau van Blob-opslag kiezen dat bepalend is voor uw prestaties en kosten. Er is de Hot tier, voor Blobs die je vaak gebruikt. Er is ook een Cool tier, dat je gebruikt voor Blobs die je niet zo vaak gebruikt, misschien eens per maand. En dan is er nog het Archief niveau, voor Blobs die je bijna nooit gebruikt. Wanneer je een Blob opvraagt vanuit de Archive tier, kan het uren duren voordat je er toegang toe hebt.
Table Storage
Je kunt semi-relationele data opslaan in rijen en kolommen met Azure Table Storage. Dit is perfect voor zaken als logboekgegevens. U slaat gegevens op in tabellen die vergelijkbaar zijn met die in SQL Server, maar zijn minder strikt in die zin dat ze geen onderlinge relaties hebben. Azure Table Storage is snel en relatief goedkoop, net als de andere typen Azure Storage.
Que Storage
Je kunt kleine berichten opslaan die later kunnen worden opgehaald en verwerkt in Azure Storage Queues, net als de Azure Service Bus Queues. Dit is een beetje een vreemd aanbod omdat het overlapt met de Azure Service Bus Queues. Ze zijn verschillend in die zin dat Service Bus Queues duplicaatdetectie hebben en Storage Queues niet. Ook blijven Service Bus Queue berichten na 7 dagen beschikbaar, waar Storage Queue berichten maar 7 dagen kunnen worden opgeslagen.
File Storage
Je kunt Azure File Storage gebruiken als een extra harde schijf die je mounten op je computer of een VM. Dit is een geweldige service om te beginnen met de cloud door uw bestanden ernaar te migreren. Je kunt applicaties er gebruik van laten maken door ze gewoon naar Azure File Storage te laten wijzen in plaats van naar hun eigen harde schijf. Dit stelt u in staat om te beginnen met het verplaatsen naar de cloud.
Disk Storage
Azure Disk Storage is een premium functie en is zeer performant en handig voor wanneer u I/O-intensief werk moet uitvoeren, zoals op een primaire harde schijf van een VM. Het fungeert als een schaalbare, high-performance schijf die u kunt koppelen aan een VM.
Azure Cosmos DB
De nieuwe versie en naam van Azure DocumentDB is Azure Cosmos DB. Azure Cosmos DB is een database-aanbod dat perfect past in de cloud. Als een PaaS-service hoef je alleen maar een Cosmos DB op te starten en je bent klaar om te gaan. Als je Azure DocumentDB gebruikte, gebruik je nu automatisch Azure Cosmos DB. Je code hoeft niet te worden aangepast.
Er zijn een paar dingen die Cosmos DB bijzonder maken:
- Je kunt ertegen programmeren met verschillende ‘API’s’, zoals SQL, JavaScript, MongoDB, Gremlin en Table Storage. U hoeft geen type database meer te kiezen, u kiest gewoon de manier waarop u ermee wilt praten, Cosmos DB doet de rest
- U hoeft geen indexen meer te maken, Cosmos DB doet dit automatisch voor u
- Cosmos DB is zeer performant. Het garandeert zelfs lage latency in zijn SLA
- Je krijgt geografische schaalbaarheid out-of-the-box. U hoeft alleen aan te geven waar in de wereld u uw gegevens wilt hebben en het wordt gerepliceerd in real-time. Op deze manier kunt u ervoor zorgen dat uw gegevens dicht bij uw gebruikers zijn
Leer hoe u aan de slag kunt met Azure Cosmos DB in deze 5-minuten tutorials.
Cosmos DB is het meest geschikt voor niet-relationele of semi-relationele gegevens.
Azure Cognitive Services
Intelligentie toevoegen aan uw applicaties is nog nooit zo eenvoudig geweest als met de Azure Cognitive Services. Dit zijn een reeks API’s die bijna magische mogelijkheden bieden, aangedreven door AI en Machine Learning. Er zijn ongeveer 30 Cognitive Services en er komen er nog meer bij. Hier zijn enkele voorbeelden:
- Emotion API, die gezichten in foto’s en video’s analyseert om emoties te detecteren zoals geluk, verdriet, walging en ga zo maar door
- Language Understanding Intelligent Service (of LUIS), die daadwerkelijk taalcontext kan begrijpen in meer dan 12 talen. U kunt dit gebruiken om een slimme bot te maken die begrijpt wat u zegt
- Speaker Recognition API, die sprekers identificeert op basis van spraak. U kunt dit gebruiken om te authenticeren met behulp van spraak of om mensen te identificeren op basis van hun stem
- Computer Vision API, die informatie over visuele inhoud in afbeeldingen kan detecteren, zoals dat de achtergrond water en lucht is of dat de jas die de persoon draagt zwart is
De Cognitieve Diensten zijn zeer eenvoudig te gebruiken, omdat u ze gewoon vanuit de cloud gebruikt en u hoeft geen infrastructuur of configuratie te beheren.
U kunt uw eigen gegevens gebruiken om de diensten te trainen om uw resultaten te verbeteren. Op deze manier kan de Face API bijvoorbeeld de namen en leeftijden van uw collega’s teruggeven. Bovendien leren de Cognitive Services on the fly, door de gegevens die u hen geeft. Dit maakt ze slimmer en nauwkeuriger.
Om een Cognitive Service te gebruiken, roep je gewoon het API eindpunt aan, zoals https://westcentralus.api.cognitive.microsoft.com/face/v1.0/detect met een abonnementscode die je krijgt wanneer je je aanmeldt en voer je het de parameters die het nodig heeft, zoals een Byte Array van een afbeelding, in het geval van de Face API. Dit geeft een JSON antwoord zoals dit (sommige regels zijn weggelaten om ruimte te besparen):
Gezicht detectie resultaat:
}, "smile": 0.826, "headPose": { "pitch": 0.0, "roll": -16.9, "yaw": 21.3 }, "gender": "female", "age": 23.8, "facialHair": { "moustache": 0.0, "beard": 0.0, "sideburns": 0.0 }, "glasses": "ReadingGlasses", "makeup": { "eyeMakeup": true, "lipMakeup": true }, "emotion": { "anger": 0.103, "contempt": 0.003, "disgust": 0.038, "fear": 0.003, "happiness": 0.826, "neutral": 0.006, "sadness": 0.001, "surprise": 0.02 }, … }]
Je kunt in de uitvoer zien dat deze specifieke service een heleboel gegevens teruggeeft. Het detecteert zelfs waar gelaatstrekken zich bevinden op de foto en of de persoon make-up draagt. Ik vind dat echt verbazingwekkend.
Azure CDN
U kunt uw toepassingen versnellen door het verkeer te offloaden naar Azure CDN. Azure CDN (Content Delivery Network) fungeert als een endpoint voor uw statische content zoals video, afbeeldingen, JavaScript en CSS bestanden. Door Azure CDN deze bestanden te laten serveren, hoeft uw applicatie dit niet te doen en heeft meer resources om meer verzoeken te verwerken. Daarnaast repliceert Azure CDN de statische content naar Points-of-Presence (PoP’s) over de hele wereld, waardoor statische content dicht bij uw gebruikers wordt geplaatst en latency wordt beperkt, wat goed is voor de performance.
U kunt Azure CDN gebruiken door een Azure CDN Endpoint aan te maken, dat te koppelen aan een bron, zoals Azure Storage en bestanden te uploaden naar de Azure Storage. Azure CDN repliceert automatisch de bestanden naar de PoPs over de hele wereld en u kunt linken naar de bestanden via een URL zoals https://custom.azureedge.net/cd/myimag.png. U kunt ook een aangepaste domeinnaam gebruiken voor de URL.
Azure Redis Cache
Een andere manier om uw toepassingen te versnellen is door gegevens te cachen met Azure Redis Cache. Wanneer u gegevens uit een cache haalt in plaats van uit een andere gegevensopslag, zoals een database, versnelt u uw toepassing.
Dat komt omdat een cache zoals Azure Redis Cache gegevens in het geheugen bewaart en gegevens opslaat in een eenvoudige sleutel/waarde-indeling. Hierdoor kunnen gegevens sneller worden geserveerd, omdat ze niet van schijf hoeven te worden opgehaald en niet hoeven te worden opgehaald door een complexe query uit te voeren.
Azure Redis Cache biedt een cache-as-a-service en biedt geavanceerde mogelijkheden, zoals clustering en geo-replicatie. Het is gebaseerd op de populaire open-source Redis Cache en wordt nu ondersteund door Microsoft SLA’s en bedrijfsondersteuning. Azure Redis Cache is de caching optie voor applicaties in Azure.
Azure API Management
U kunt Azure API Management gebruiken om uw API’s of API’s van derde partijen die u gebruikt te verbeteren. Azure API Management fungeert als een gateway tussen uw API en de buitenwereld. Hierdoor kunt u uw API verbeteren.
Met API Management kunt u een portal maken waar gebruikers van uw API terecht kunnen om hun abonnement(en) te beheren en om de applicatie te testen. Een voorbeeld van zo’n ontwikkelaarsportaal is de website van een van de Cognitive Services, die ook API Management gebruikt:
U kunt het gebruik van de API regelen door limieten per gebruiker of abonnementstype in te stellen. Dit is een goede manier om uw API te gelde te maken door bijvoorbeeld een gratis gebruiks tier aan te bieden tot 10 verzoeken per dag, en als u meer nodig heeft, begint u te betalen. Als gebruikers meer proberen te gebruiken, zonder het juiste abonnement, worden hun verzoeken afgeknepen.
Daarnaast kun je API’s verbeteren door ze performanter te maken. Je kunt API-antwoorden cachen, zodat ze de antwoorden niet hoeven te krijgen door berekeningen uit te voeren of gegevens uit een gegevensbron samen te stellen.
En je kunt je API’s beschermen met sleutels, wachtwoorden, certificaten en IP-filtering. Bovendien kunt u de input en output van en naar uw API’s transformeren. U kunt bijvoorbeeld inkomende XML transformeren naar JSON of hetzelfde doen met antwoorden.
Azure API Management is echt krachtig en vergroot de controle die u hebt over uw API’s (en API’s van derden die u via API Management blootstelt). En het stelt u in staat om dat te doen zonder de API te veranderen.
Conclusie
De services in dit artikel zijn allemaal voorbeelden van Azure PaaS services. Ze zijn allemaal zeer eenvoudig op te starten en vereisen minimaal onderhoud. Ze blijven draaien, zijn zelfherstellend en werken in principe ‘gewoon’.
De waarde die deze diensten kunnen bieden is enorm en eenvoudig te integreren in uw applicaties. Dit neemt echt veel van het loodgieterswerk en repetitieve taken weg die we vroeger zelf moesten bouwen en doen.
Azure PaaS laat ons ons concentreren op het bouwen van dingen die er toe doen. Vergeet niet om u ook altijd te richten op het verbeteren van uw applicaties door gebruik te maken van een full lifecycle APM-tool zoals Stackify Retrace. Meer informatie.