Stel je voor dat je voor een zorgbedrijf werkt dat zijn diensten via een webplatform aanbiedt. De gebruikersinterface voor dit platform is opgezet als een PHP-webapp die wordt gehost in Azure App Services. Frequent worden updates van de broncode van de app uitgerold naar productie om functies te verbeteren of om bugs aan te pakken.Echter, deze updates introduceren soms problemen:
- Onopgemerkte bugs: Ondanks rigoureuze tests missen testers af en toe kritieke bugs, wat leidt tot problemen in de productieomgeving.
- Storingstijd: Wanneer bugs worden geïdentificeerd, veroorzaakt het terugdraaien van wijzigingen onderbrekingen in de service, wat frustratie bij eindgebruikers veroorzaakt.
- Langzame implementaties: Het implementatie- en compilatieproces beïnvloedt de responsiviteit van de app, vooral tijdens piekgebruik, wat leidt tot ontevredenheid bij gebruikers.
Is er een betere oplossing om naadloze updates te garanderen zonder de diensten te onderbreken? Ja! Microsoft Azure biedt een krachtige functie die bekendstaat als uitrolslots.
Azure Uitrolslots
Microsoft Azure’s implementatie slots bieden een efficiënte en betrouwbare manier om applicatie-updates te beheren. Met implementatieslots kunt u zowel de nieuwe als de oude versies van uw applicatie gelijktijdig onderhouden. Wisselen tussen de twee versies is net zo eenvoudig als een paar muisklikken, waardoor de noodzaak voor tijdrovende code-terugrollingen wordt geëlimineerd.
Wat zijn implementatieslots en hoe werken ze?
Azure Implementatieslots is een functie in Azure App Services die u in staat stelt om aparte omgevingen te creëren voor het implementeren en testen van uw webapp voordat deze beschikbaar wordt gesteld aan alle eindgebruikers. Elke implementatieslot functioneert als een onafhankelijke instantie van uw app, die kan worden aangepast voor specifieke doeleinden, zoals:
- Staging: Om wijzigingen te testen en te valideren voordat u naar productie gaat.
- Productie: Om eindgebruikers te bedienen met een stabiele versie van de app.
- Extra slots: Afhankelijk van uw prijsplan kunt u slots creëren voor QA, testen of andere omgevingen.
Belangrijkste kenmerken van implementatieslots
Voorverwarmde instanties
Wanneer je implementeert naar een staging slot, is de slot voorverwarmd. Dit betekent dat de app volledig geïnitialiseerd is en klaar is om gebruikersverzoeken met minimale latentie af te handelen.
Het wisselen van de staging slot naar productie zorgt ervoor dat er geen downtime of cold-start vertraging is.
Naadloze Verkeersomleiding
Tijdens de wissel is de verkeersomleiding tussen slots naadloos, waardoor er geen gebruikersverzoeken verloren gaan.
Mogelijkheid tot Terugdraaien
Als er onverwachte problemen optreden na het wisselen van een nieuwe versie naar productie, kun je onmiddellijk terugwisselen naar de “laatst bekende goede” configuratie.
Hoe Implementatieslots het Probleem Aanpakken
Bugdetectie Voor Productie
Door de nieuwe code te implementeren naar een staging slot, kunnen testers de app valideren in een omgeving die productie nabootst. Dit minimaliseert het risico op onopgemerkte bugs.
Geen Serviceonderbrekingen
Aangezien de app voorverwarmd is in de staging slot, gebeurt de overgang naar productie zonder downtime, waardoor ononderbroken services aan eindgebruikers worden geboden.
Snellere Implementaties
Het wisselen van slots is onmiddellijk in vergelijking met traditionele implementatiemethoden, waardoor de benodigde tijd voor implementatie aanzienlijk wordt verminderd en de responsiviteit wordt verbeterd.
Het Opzetten en Configureren van een Azure Web App
1. Maak een Web App
Meld u aan bij het Azure-portal met uw account. Zoek naar App-services en klik erop.
Klik op Web App.
Selecteer 1 tot 7 waarden zoals vereist voor uw toepassing, klik vervolgens op Beoordelen + maken, gevolgd door Maken. De naam van de Web App in deze demo is webappdemotosrs.
webappdemotosrs(Web App) kan worden benaderd via de standaard domein-URL.
2. Implementatieslots maken
Klik op de Implementatieslots paneel.
Klik op Slot toevoegen.
Geef het slot een Naam.
Kies of je instellingen wilt klonen van een andere slot. Als je ervoor kiest om te klonen, worden de instellingen gekopieerd naar je nieuwe slot vanuit het opgegeven slot.
Klik op Toevoegen.
Slot wordt aangemaakt met de opgegeven naam.
Configureer Web App-implementatie-instellingen
In deze taak zul je de Web App-implementatie-instellingen configureren. Implementatie-instellingen maken continue implementatie mogelijk. Dit zorgt ervoor dat de app-service de nieuwste versie van de applicatie heeft. In het staging slot, selecteer Implementatiecentrum en selecteer vervolgens Instellingen. In de bron-keuzelijst, selecteer Externe Git. Let op de andere keuzes.
- In het repositoryveld, voer in: https://github.com/Azure-Samples/php-docs-hello-world.
- In het branch-veld, voer master in. Selecteer Opslaan.
- Selecteer Overzicht vanuit het staging slot.
- Selecteer de standaard domeinlink en open de URL in een nieuw tabblad.
- Controleer of de staging-slot ‘Hello World’ weergeeft.
3. Implementatie Slots Wisselen
Klik op Wisselen.
Klik op Start Wisselen.
Zodra het wisselen is voltooid, verschijnt er een melding met de status.
4. Na Implementatie Slots Wisselen
Productie Standaard Domein-URL-uitvoer:
Staging Standaard Domein-URL-uitvoer zal er als volgt uitzien
Dit toont aan dat na een implementatieslotwissel de productieslot begint met het uitvoeren van de nieuwe code terwijl de staging-slot teruggaat naar de oude code.
Samenvatting
In dit artikel hebben we geleerd hoe we implementatieslots kunnen maken en gebruiken in Azure App Service. We hebben slots gebruikt om nieuwe versies van onze app te testen en te stagen en die implementatieslots verwisseld. We kunnen slots verwisselen om een geteste app naar productie te implementeren en een geïmplementeerde app terug te draaien wanneer er onverwachte problemen optreden.Als je implementatieslots gebruikt, onthoud dan dat Azure een app opwarmt voordat er een verwisseling plaatsvindt, en verkeersomleiding is direct. Het resultaat is dat je app wordt geïmplementeerd zonder serviceonderbrekingen of prestatiedalingen.
Source:
https://dzone.com/articles/azure-web-apps-deployment-slots