Microsoft Azure-skyen tilbyder en masse tjenester til næsten alle de scenarier, som du kan få brug for. Du kan kategorisere disse tjenester i cloud computing-typer som IaaS, PaaS og SaaS for at afgøre, hvor meget kontrol og ansvar du har i forhold til den tid, du kan bruge på at bygge ting, der betyder noget.
Lad mig forklare disse typer lidt nærmere:
- IaaS (Infrastructure-as-a-Service)
- PaaS (Platform-as-a-Service)
- SaaS (Software-as-a-Service)
- Top Azure PaaS-tjenester
- Web Apps
- Mobile apps
- Logic Apps
- Azure Functions
- Azure WebJobs
- Hvad skal du bruge hvornår
- App Services delte funktioner
- Deployering af tjenester
- Azure Event Grid
- Azure Service Bus
- Azure Storage
- Blob Storage
- Table Storage
- Queueue Storage
- Filopbevaring
- Disk Storage
- Azure Cosmos DB
- Azure Cognitive Services
- Azure CDN
- Azure Redis Cache
- Azure API Management
- Slutning
IaaS (Infrastructure-as-a-Service)
Typiske IaaS-tjenester er Container Service og Virtual Machines. Disse giver dig mulighed for at have stor kontrol over, hvordan du kører dem, men kræver også, at du er ansvarlig for ting som OS, Antivirus og Load Balancing. På grund af dette kan du og dit team bruge mindre tid på at arbejde på at tilføje forretningsværdi.
PaaS (Platform-as-a-Service)
Eksempler på PaaS-tjenester er App Services, Azure Search og Azure CDN. Du behøver ikke at bekymre dig om operativsystemet eller endda serveren, du kan bare køre din applikation. Du er ansvarlig for en vis serverkonfiguration, f.eks. skalering, selv om det for nogle tjenester, f.eks. Azure Functions, sker automatisk.
SaaS (Software-as-a-Service)
Eksempler på SaaS-tjenester er ting som Azure IoT Suite og Office 365. SaaS er det højeste abstraktionsniveau og giver dig mulighed for blot at bruge applikationen, du behøver ikke engang at bygge den. Du skal bare konfigurere den. Du behøver ikke at bekymre dig om styresystemet eller endda om at skalere appen. Dette giver dig mulighed for at arbejde på forretningsværdi, men giver dig kun lidt kontrol over din applikation.
For softwareudviklere er PaaS en fantastisk cloud computing-type at bruge. Du har tilstrækkelig kontrol til bare at arbejde på din applikation og justere den, så den bliver helt perfekt, og du behøver ikke at bekymre dig om alle de driftsmæssige ting. Tingene kører bare uden at skulle bekymre sig om OS-patches eller load balancing.
Azure har et meget stærkt PaaS-tilbud, som er meget attraktivt for udviklere. Denne artikel vil diskutere de bedste Azure PaaS-tjenester til udviklere, som kan gøre din applikation bedre.
Top Azure PaaS-tjenester
En af de centrale Azure PaaS-tjenester er Azure App Services. Azure App Services tilbyder flere servicetyper, der hver især er rettet mod hosting af din applikation eller forretningslogik til et bestemt anvendelsestilfælde. Derudover har App Service-typerne fælles funktioner som automatisk skalering, godkendelse og godkendelse samt brugerdefinerede domæner og SSL.
Lad os gennemgå App Service-typerne:
Web Apps
Azure App Service Web Apps er afgørende, hvis du vil være vært for en standard ASP.NET-webapplikation. Web Apps er en abstraktion af en webserver som IIS eller Tomcat og kan køre programmer, der er skrevet i .NET, PHP, Python, Node.js, Java og meget mere. De er meget nemme at konfigurere og giver dig masser af fordele out-of-the-box, f.eks. at de som standard er tilgængelige 99,95 % af tiden. Du behøver ikke at bekymre dig om nedetid. App Services er nu tilgængelige til både Windows og Linux.
Mobile apps
Azure kan også hjælpe dig, når du skal oprette mobile applikationer. Du kan være vært for en backend til din mobilapp i Azure App Services Mobile Apps. Du kan nemt oprette forbindelse til denne backend ved hjælp af SDK’erne til Azure Mobile Apps, der er tilgængelige for IOS, Android, Windows, Xamarin.IOS, Xamarin.Android og Xamarin.Forms.
Den mobile backend giver dig nogle unikke fordele. En af dem er muligheden for at foretage offline synkronisering. Dette gør det muligt for en bruger at fortsætte med at arbejde med appen, hvis han er offline, og synkronisere data tilbage til backend’en, når han kommer online igen. En anden mulighed er push-notifikationer. Dette giver dig mulighed for at sende notifikationer om din app til brugerens enhed. Derudover har Mobile Apps alle de samme funktioner, som Web Apps har, f.eks. automatisk skalering og høj tilgængelighed.
Logic Apps
Azure App Service Logic Apps adskiller sig fra Web Apps og Mobile Apps ved, at du ikke hoster en applikation i den, men orkestrerer forretningslogik med den. Tænk på Logic Apps som en måde at automatisere en forretningsproces på ved blot at konfigurere den.
En Logic App startes af en Trigger. Dette kan være et tidspunkt (hvert 15. minut) eller en ekstern kilde, som f.eks. en ny besked i en kø. Triggeren overfører værdier til workflowet (som indholdet af købeskeden), som kan bruges i hele Logic App’en. Resten af Logic App’ens flow består af at kalde Connectors, som er API’er til tredjepartstjenester, f.eks. Office365 eller Twitter eller dine egne API’er.
Logic Apps skaleres automatisk, og du betaler kun for dem, når de kører. Dette kaldes nogle gange “serverløs”, fordi det betyder, at du kan fokusere helt på din applikation eller logik og ikke på den underliggende infrastruktur.
Azure Functions
Azure App Services Function Apps kan være vært for en eller flere Azure-funktioner. Du bruger Azure Functions til at være vært for små applikationer, f.eks. baggrundsjobs eller en mikroservice, der kun kører i en kort periode.
Azure Functions kan udløses af konfigurerbare timere, f.eks. efter en tidsplan (hvert 15. minut) eller af en ekstern tjeneste, f.eks. når en ny Blob tilføjes til Azure Blob Storage. Når den udløses, kan koden i Azure-funktionen bruge værdien fra udløseren, som f.eks. den Blob, der blev tilføjet. Du kan også tilføje outputbindinger til en Azure-funktion for at outputte en værdi til en ekstern tjeneste uden at skrive nogen lodtrækning. Det kunne f.eks. være et Blob Storage-output, hvor du blot returnerer en Blob uden at skulle skrive kode til at oprette forbindelse til Azure Storage.
Som Logic Apps er Azure Functions “serverløse”, fordi de skaleres automatisk, og du betaler kun for dem, når de kører.
Azure WebJobs
En anden måde at køre baggrundsopgaver på er ved at køre dem i Azure WebJobs. WebJobs er en del af App Services og køres inde i en App Service som f.eks. en webapp eller en mobilapp. Du kan skrive og hoste kode i WebJobs, der startes af en udløser, f.eks. en timer (hvert 15. minut) eller en ekstern tjeneste, f.eks. en ny besked i en kø.
WebJobs fungerer på samme måde som Azure Functions, idet de kører små kodestykker, der kan udløses af eksterne kilder, og som ikke kræver, at der skal oprettes nogen loddekode.
De adskiller sig fra Azure Functions ved, at du skal skalere dem manuelt. Du betaler for den App Service, der er vært for dit Web Job, hvilket er et månedligt gebyr, uanset om WebJob’et kører eller ej.
Læs mere: Sammenlign Azure Functions vs. Azure WebJobs
Hvad skal du bruge hvornår
Så hvilken App Service skal du bruge hvornår? Denne tabel kan måske hjælpe:
Web Apps | Mobile Apps | Logic Apps | Functions | WebJobs | |||
Hosting af webapplikationer og API’er | X | ||||||
Host backend for mobile apps | X | ||||||
Host business logic workflows | X | ||||||
Hoster baggrundsopgaver | X | X | |||||
Skalerer automatisk og betaler kun, når den kører | X | X | X | ||||
Kontroller skalering, og betal et månedligt gebyr | X | X | X | X |
App Services delte funktioner
Azure App Services deler nogle fantastiske funktioner, der gør dem meget overbevisende at bruge. Her er nogle af dem:
- Nem autentificering og godkendelse
- Kontinuerlig levering
- Brugerdefinerede domæner
- Hybridforbindelser
- Giver dig mulighed for at oprette forbindelse til lokale ressourcer, såsom webtjenester eller databaser
- (automatisk)skalering og belastningsudligning
- Deployment slots
- Disse giver dig mulighed for at teste den nye version af din applikation og implementere den til produktion uden nedetid. De giver dig endda mulighed for at omdirigere noget af din produktionstrafik til den nye version af din app for at se, om den fungerer som forventet.
- Læs mere om implementeringsslots her
Deployering af tjenester
Det er nemt at oprette en ny webapp eller Logic App via Azure Portal, men du bør virkelig automatisere dine implementeringer, så du kan gentage dem i forskellige miljøer og køre nøjagtig den samme konfiguration. Det kan du gøre ved at oprette Azure Resource Manager-skabeloner (ARM-skabeloner), som du distribuerer fra Visual Studio eller i en pipeline til kontinuerlig levering ved hjælp af en tjeneste som Visual Studio Team Services.
ARM-skabeloner beskriver dine ressourcer som webapps, Azure SQL-databaser og ressourcegrupper i JSON-dokumenter. Du kan oprette dem ved hjælp af Azure Resource Group-projektskabelonen i Visual Studio og få inspiration ved at klikke på knappen Automation Script på en hvilken som helst ressource i Azure Portal.
Azure Event Grid
En relativt ny tjeneste, Azure Event Grid, fungerer som limen mellem tjenesterne. Azure Event Grid kan videresende hændelser fra enhver kilde til enhver destination.
Næsten alle Azure-tjenester kan offentliggøre hændelser, som Azure Event Grid kan modtage og bruge til at udløse din applikation med. Du kan også få dine egne applikationer og tjenester til at offentliggøre begivenheder, som Azure Event Grid kan bruge til at videresende til andre tjenester.
Azure Event Grid skaleres automatisk, og du betaler kun for det antal operationer, du bruger.
Azure Event Grid eliminerer behovet for polling. Dine programmer kan lytte efter og reagere på begivenheder fra en hvilken som helst tjeneste, der har offentliggjort begivenheder til Azure Event Grid.
Du kan f.eks. lade Azure Event Grid lytte efter ændringer i din postliste og udløse en Azure Logic App, når noget ændres.
Azure Service Bus
En af de ældste og mest anvendte og pålidelige tjenester i Azure er Azure Service Bus. Den består af flere tjenester, især Azure Service Bus Queues og Azure Service Bus Topics.
En applikation kan lægge meddelelser på en Azure Service Bus Queue. Hver meddelelse læses fra køen og behandles af et program. Azure Service Bus-køer har nogle avancerede funktioner, som du får out-of-the-box som f.eks. dubletdetektion og en underkø til døde breve, hvor meddelelser, der ikke kan behandles, flyttes til.
Azure Service Bus-temaer er en smule anderledes. Programmer kan lægge meddelelser på et Azure Service Bus-tema, og flere programmer kan læse og behandle meddelelsen. De modtager de meddelelser, der har de attributter, som de er interesserede i. De abonnerer på “emner” i køen. Azure Service Bus-temaer har de samme avancerede funktioner som køer har.
Både disse tjenester giver dig mulighed for at afkoble det program, der lægger meddelelser i køen, fra det program, der behandler meddelelserne. Dette mønster gør det muligt for behandlingsprogrammet at behandle opgaver i sit eget tempo uden at lade brugeren vente på det. Dette er nyttigt, når behandlingen kan tage et stykke tid, og du ikke ønsker, at brugeren skal vente på det, f.eks. når du behandler en ordreanmodning, der kan tage 5 minutter.
Azure Storage
En grundlæggende byggesten i enhver applikation er datalagring. Azure Storage giver flere muligheder for lagring af data, f.eks. filer eller rækker af data. Det tilbyder flere forskellige tjenester, der alle er relativt billige, skalerer næsten uendeligt og på tværs af geografiske områder og tilbyder funktioner som kryptering og autentificering. Du får alt dette out-of-the-box, blot ved at oprette en Azure Storage-konto. Lad os diskutere de forskellige typer af Azure Storage:
Blob Storage
Du lagrer store filer, eller “blobs”, i Azure Blob Storage. Det kan være ting som VHD-filer eller lyd- eller videofiler eller databasebackups.
Du kan vælge et niveau af Blob storage, der bestemmer din ydeevne og dine omkostninger. Der er Hot-niveauet, til Blobs, som du har hyppig adgang til. Der er også Cool-niveauet, som du bruger til Blobs, som du ikke har adgang til så ofte, måske en gang om måneden. Og så er der Archive tier, til Blobs, som du næsten aldrig bruger. Når du anmoder om en Blob fra Archive-niveauet, kan det tage timer, før du kan få adgang til den.
Table Storage
Du kan gemme semirelationelle data i rækker og kolonner ved hjælp af Azure Table Storage. Dette er perfekt til ting som f.eks. logningsdata. Du gemmer data i tabeller, der ligner dem i SQL Server, men som er mindre strenge, idet de ikke har relationer mellem dem. Azure Table Storage er hurtig og relativt billig, ligesom de andre typer af Azure Storage.
Queueue Storage
Du kan gemme små meddelelser, der kan hentes og behandles senere i Azure Storage Queues, ligesom Azure Service Bus Queues. Dette er et lidt mærkeligt tilbud, fordi det overlapper med Azure Service Bus Queues. De adskiller sig fra hinanden ved, at Service Bus Queues har duplikeringsdetektion, hvilket Storage Queues ikke har. Desuden forbliver Service Bus Queue-meddelelser tilgængelige efter 7 dage, hvor Storage Queue-meddelelser kun kan gemmes i 7 dage.
Filopbevaring
Du kan bruge Azure File Storage som en ekstra harddisk, som du monterer på din computer eller en VM. Dette er en fantastisk tjeneste til at komme i gang med skyen ved at migrere dine filer til den. Du kan få programmer til at bruge den ved blot at pege dem til Azure File Storage i stedet for deres egen harddisk. Dette giver dig mulighed for at begynde at flytte til skyen.
Disk Storage
Azure Disk Storage er en premium-funktion og er meget performant og nyttig, når du skal udføre I/O-intensivt arbejde, f.eks. på en primær harddisk i en VM. Den fungerer som en skalerbar, højtydende disk med høj ydeevne, som du kan montere på en VM.
Azure Cosmos DB
Den nye version af og navnet på Azure DocumentDB er Azure Cosmos DB. Azure Cosmos DB er et databasetilbud, der passer perfekt til skyen. Som en PaaS-tjeneste skal du bare starte en Cosmos DB op, og så er du klar til at gå i gang. Hvis du har brugt Azure DocumentDB, bruger du nu automatisk Azure Cosmos DB. Din kode behøver ikke at blive ændret.
Der er et par ting, der gør Cosmos DB ekstraordinær:
- Du kan programmere mod den ved hjælp af forskellige “API’er” som SQL, JavaScript, MongoDB, Gremlin og Table Storage. Du skal ikke længere vælge en type database, du skal bare vælge den måde, du vil tale med den på, Cosmos DB tager sig af resten
- Det er ikke længere nødvendigt at oprette indekser, Cosmos DB gør det automatisk for dig
- Cosmos DB har en høj ydeevne. Den garanterer endda lav latenstid i sin SLA
- Du får geografisk skalerbarhed out-of-the-box. Du angiver blot, hvor i verden du ønsker, at dine data skal være, og de bliver replikeret i realtid. På den måde kan du sikre, at dine data er tæt på dine brugere
Lær at komme i gang med Azure Cosmos DB i disse 5-minutters tutorials.
Cosmos DB er mest velegnet til ikke-relationelle eller semirelationelle data.
Azure Cognitive Services
Det har aldrig været så nemt at tilføje intelligens til dine applikationer som med Azure Cognitive Services. Disse er et sæt API’er, der giver næsten magiske evner, drevet af AI og maskinlæring. Der er omkring 30 Cognitive Services, og flere er på vej. Her er nogle eksempler:
- Emotion API, som analyserer ansigter i fotos og videoer for at opdage følelser som lykke, tristhed, afsky og så videre
- Language Understanding Intelligent Service (eller LUIS), som faktisk kan forstå sproglig kontekst i mere end 12 sprog. Du kan bruge dette til at oprette en intelligent bot, der faktisk forstår, hvad du siger til den
- Speaker Recognition API, som identificerer talere på baggrund af tale. Du kan bruge dette til at autentificere ved hjælp af stemme eller til at identificere personer baseret på deres stemme
- Computer Vision API, som kan registrere oplysninger om visuelt indhold, der findes i billeder, f.eks. at baggrunden er vand og himmel, eller at den jakke, som personen har på, er sort
De kognitive tjenester er meget nemme at bruge, da du blot bruger dem fra skyen, og du behøver ikke at administrere nogen infrastruktur eller konfiguration.
Du kan bruge dine egne data til at træne tjenesterne for at forbedre dine resultater. Hvis du gør dette, kan Face API’et f.eks. returnere dine kollegers navne og alder. Derudover lærer de kognitive tjenester on the fly, ved hjælp af de data, du giver dem. Det gør dem smartere og mere præcise.
For at bruge en kognitiv tjeneste skal du blot kalde API-slutpunktet, f.eks. https://westcentralus.api.cognitive.microsoft.com/face/v1.0/detect med en abonnementsnøgle, som du får, når du tilmelder dig, og give den de parametre, den har brug for, f.eks. et byte-array af et billede, i tilfældet med Face API’et. Dette returnerer et JSON-svar som dette (nogle linjer er udeladt for at spare plads):
Face detection result:
}, "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 }, … }]
Du kan se i outputtet, at denne særlige tjeneste returnerer en masse data. Den registrerer endda, hvor ansigtstræk er placeret i billedet, og om personen er iført makeup. Jeg synes, det er virkelig fantastisk.
Azure CDN
Du kan fremskynde dine applikationer ved at aflaste trafikken til Azure CDN. Azure CDN (Content Delivery Network) fungerer som et slutpunkt for dit statiske indhold som f.eks. video, billeder, JavaScript og CSS-filer. Ved at lade Azure CDN servere disse filer behøver dit program ikke at gøre det og har flere ressourcer til at håndtere flere anmodninger. Desuden replikerer Azure CDN det statiske indhold til Points-of-Presence (PoP’er) over hele verden, hvorved det statiske indhold placeres tæt på dine brugere og begrænser latenstiden, hvilket er godt for ydeevnen.
Du kan bruge Azure CDN ved at oprette et Azure CDN Endpoint, koble det til en kilde, f.eks. Azure Storage, og uploade filer til Azure Storage. Azure CDN replikerer automatisk filerne til PoP’er over hele verden, og du kan linke til filerne via en URL som https://custom.azureedge.net/cd/myimag.png. Du kan også bruge et brugerdefineret domænenavn til URL’en.
Azure Redis Cache
En anden måde at fremskynde dine applikationer på er ved at caching data ved hjælp af Azure Redis Cache. Når du henter data fra en cache i stedet for fra et andet datalager, f.eks. en database, fremskynder du din applikation.
Det skyldes, at en cache som Azure Redis Cache opbevarer data i hukommelsen og gemmer data i et simpelt nøgle/værdi-format. På grund af dette kan data serveres hurtigere, da de ikke skal hentes fra disken, og de skal ikke hentes ved at udføre en kompleks forespørgsel.
Azure Redis Cache tilbyder en cache-as-a-service og giver avancerede funktioner som f.eks. clustering og geo-replikation. Den er baseret på den populære open source Redis Cache og er nu bakket op af Microsoft SLA’er og virksomhedssupport. Azure Redis Cache er cachingmuligheden for applikationer i Azure.
Azure API Management
Du kan bruge Azure API Management til at forbedre dine API’er eller API’er fra tredjeparter, som du bruger. Azure API Management fungerer som en gateway mellem dit API og omverdenen. Dette giver dig mulighed for at forbedre dit API.
Med API Management kan du oprette en portal, hvor brugere af dit API kan gå hen for at administrere deres abonnement(er) og for at teste applikationen. Et eksempel på en sådan udviklerportal er webstedet for en af Cognitive Services, som også bruger API Management:
Du kan styre brugen af API’et ved at sætte grænser pr. bruger eller abonnementstype. Dette er en god måde at tjene penge på din API på, f.eks. ved at tilbyde et gratis brugsniveau på op til 10 anmodninger om dagen, og hvis du har brug for mere, begynder du at betale. Hvis brugerne forsøger at bruge mere uden det rigtige abonnement, bliver deres anmodninger droslet.
Dertil kommer, at du kan forbedre API’er ved at gøre dem mere performante. Du kan cache API-svar, så de ikke behøver at hente svarene ved at foretage beregninger eller sammensætte data fra en datakilde.
Og du kan beskytte dine API’er med nøgler, adgangskoder, certifikater og IP-filtrering. Derudover kan du transformere input og output til og fra dine API’er. Du kan f.eks. omdanne indgående XML til JSON eller gøre det samme med svar.
Azure API Management er virkelig kraftfuld og øger den kontrol, du har over dine API’er (og API’er fra tredjeparter, som du eksponerer via API Management). Og det giver dig mulighed for at gøre det uden at ændre API’et.
Slutning
Tjenesterne i denne artikel er alle eksempler på Azure PaaS-tjenester. De er alle meget nemme at oprette og kræver minimal vedligeholdelse. De vil forblive oppe og køre, er selvhelbredende og fungerer stort set “bare”.
Den værdi, som disse tjenester kan give, er enorm og let at indarbejde i dine applikationer. Dette tager virkelig hånd om en masse af de VVS- og gentagne opgaver, som vi plejede at bygge og udføre selv.
Azure PaaS lader os fokusere på at bygge ting, der betyder noget. Husk altid at fokusere på at forbedre dine applikationer også ved at bruge et APM-værktøj til hele livscyklussen som Stackify Retrace. Få mere at vide.