Begrip van deployment shots in Azure App Services
Azure App Services zijn een zegen voor ontwikkelaars. Dit komt voornamelijk door het scala aan functies dat het biedt, waardoor het leven van ontwikkelaars aanzienlijk wordt vergemakkelijkt.
Enkele van de meest populaire functies zijn autoscaling, eenvoudige authenticatie, offline synchronisatie (voor mobiele apps), hybride verbindingen, en meer.
Een functie die door deze apps wordt gedeeld en waarschijnlijk de meest ondergewaardeerde van allemaal is, zijn de Azure deployment slots.
In deze post gaan we begrijpen wat Azure deployment slots zijn en waarom we denken dat dit een van de beste features is die Azure heeft geïntroduceerd.
Korte achtergrond
Hier is een veelvoorkomend scenario in de ontwikkelingswereld: ontwikkelaars brengen een applicatie naar de productiestatus nadat ze tests en andere processen hebben uitgevoerd. Gebruikers kunnen vervolgens de website benaderen via een endpoint, meestal via de domeinnaam (bijvoorbeeld - www.application.com).
Als we nu de volgende versie van dezelfde applicatie willen uitbrengen, moeten we eerst de nieuwste oplossing naar een staging omgeving pushen, waarvoor de omgevingsinstellingen moeten worden verzorgd. Met andere woorden, er moet handmatig een exacte kopie van de productieomgeving worden gemaakt met dezelfde instellingen. Dit is een tijdrovende klus.
Een ander groot obstakel in release management is rollback. Als de laatste release problemen of bugs vertoont, moet er handmatig worden teruggegaan naar de vorige versie, wat opnieuw een ontmoedigende taak is. Je moet de instellingen en omgeving terugdraaien - dit alles is behoorlijk overweldigend voor ontwikkelaars. Het grootste probleem bij rollback en update tijdens een release is dat gebruikers de applicatie niet kunnen gebruiken gedurende die tijd, wat leidt tot downtime.
Dit is waar Azure deployment slots van pas komen, die je redden van complexiteiten en onnodige problemen tijdens de release van een applicatie.
Wat zijn Azure Deployment Slots?
Azure deployment slots stellen je web apps in staat om te functioneren in verschillende instanties, genaamd slots. Slots zijn verschillende omgevingen die worden benaderd via een openbaar beschikbaar endpoint. Eén app-instantie is altijd toegewezen aan de productieslot, waarbij je kunt schakelen tussen meerdere app-instanties op verzoek. Apps die draaien onder het app service plan kunnen meerdere slots bevatten, terwijl voor het consumption plan slechts één slot is toegestaan.
Waarom Deployment Slots?
Flexibility in het wisselen van instanties
Het wisselen van verschillende app-instanties van bron naar doel vindt plaats zonder downtime, waardoor gebruikers altijd en overal de beste ervaring hebben. Verkeersomleiding verloopt naadloos en er gaan geen verzoeken verloren vanwege een wissel. Als een functie wordt uitgevoerd tijdens een wissel, blijft de uitvoering ononderbroken en worden de volgende triggers omgeleid naar de gewisselde app-instantie.
Rollback opties
Een ander voordeel van de deployment slot is de rollback optie. Als je team niet tevreden is met de laatste update, kun je je app terugrollen naar de vorige versie binnen dezelfde app service. Dit elimineert downtime, zodat je gebruikers kunnen blijven genieten van een ononderbroken service.
Werking van Azure Services Deployment slots
Stel dat je een website hebt gedeployed in een web app. Deze web app heeft een aangepast URL-adres https://www.azure-slots.com. Nu heeft je team een nieuwe versie van de website gemaakt en je wilt deze testen voordat je deze naar de productieomgeving pusht. Dus je maakt een deployment slot genaamd 'staging' om de nieuwe versie te pushen, met de URL - https://www.azureslots.staging.azureservices.net.
Azure zorgt ervoor dat de staging slot dezelfde configuratiewaarden heeft. Hierdoor gebruikt het dezelfde database- en cache-waarden als de productieslot.
Nu de nieuwe versie gereed is in de deployment slot, moet deze worden uitgerold naar productie. Dit kun je doen door de nieuwe versie naar productie te swappen.
Eerst wordt de bronslot opgewarmd. Vervolgens lanceert Azure verzoeken naar de rootslot. Ten slotte wisselt Azure de virtuele IP-adressen van de bron- en doelslots, waardoor de URL van de slots wordt gewisseld. Hierbij worden ook bepaalde instellingen overgenomen die specifiek zijn voor de doelslot, zoals publicatie-eindpunten, aangepaste domeinnamen, enz.
Praktische toepassingen van Azure Services Deployment slots
Het creëren van een app service resource
Het eerste wat je moet doen is het opzetten van een app service met een voorbeeld webserver. Dit is om wijzigingen te testen en de swap uit te voeren. Het hele proces omvat het volgende:
- Creëer een app service slot met een voorbeeldcode
- Maak een deployment slot
- Verbind je slot met de CI/CD-benadering om automatische synchronisatie mogelijk te maken. Dit zal wijzigingen aanbrengen in de codebase en uiteindelijk de slots activeren voor een swap.
Zodra je app service klaar is, zie je een webpagina met content die aangeeft dat je applicatie actief en draaiend is.
Het creëren van een app service slot
De volgende stap is het maken van je staging slot. Dit kan eenvoudig worden gedaan vanuit het Azure portal. Hier zijn de stappen -
- Navigeer naar je Azure app service die is gemaakt in je omgeving.
- Klik op de deployment slot in het linker zijpaneel en kies 'slots toevoegen' om je staging omgeving te creëren.
- Geef het een naam zoals "Staging" zodat het gemakkelijk te identificeren is.
Op dit punt zie je dat de deployment slot klaar is. Je ziet een nieuwe app service slot in je resource groep, toegewijd aan het hosten van de code die is gepusht vanuit het repository. De staging slot zal worden vermeld onder de naam 'Staging/' in je resource groep.
Nu de staging slot is geïnitialiseerd, is het tijd om je code vanuit het repository naar de staging slot te pushen. Om dat te doen -
- Navigeer naar de deployment slot en klik op de nieuw gemaakte staging slot
- Ga naar het deployment center voor de staging slot en kies de repo locatie van je keuze.
Het wisselen van de productieslot met de staging slot
Dit is de laatste stap die slechts een klik op de swap-knop vereist. Zodra dit is gedaan, zie je het wisselen van de slots. Navigeer terug naar je productieslot en klik in het 'deployment center' op swap om het wisselen te initiëren. Voer vervolgens het bron- en doelrepository in om de bron en het doel te specificeren van waar je implementeert.
Ten slotte moet je een succesbericht zien dat aangeeft dat het wisselen succesvol is voltooid. Nu kun je je applicatie bijgewerkt zien in productie. Azure biedt ook diverse functies zoals auto swap en swap met voorbeeld, waarbij instellingen worden gewijzigd in het deployment center.
Conclusie
Zoals je kunt zien, zijn er slechts een paar stappen betrokken bij het wisselen van twee slots. Neem het echter niet te licht op bij het draaien van productie-apps. Het is raadzaam om je applicatie te testen in een niet-productieomgeving voordat je deze implementeert in productie, omdat je nooit weet wanneer je problemen kunt ervaren tijdens de swap.