Een faseringsomgeving instellen in Azure Spring Cloud
Dit artikel is van toepassing op: ✔️ Java
In dit artikel wordt uitgelegd hoe u een faseringsimplementatie instelt met behulp van het blauw-groene implementatiepatroon in Azure Spring Cloud. Blauw-groene implementatie is een patroon voor continue levering van Azure DevOps dat afhankelijk is van het live houden van een bestaande (blauwe) versie terwijl er een nieuwe (groene) wordt geïmplementeerd. In dit artikel wordt beschreven hoe u die faseringsimplementatie in productie kunt nemen zonder de productie-implementatie te wijzigen.
Vereisten
- Azure Spring Cloud in een Standard-prijscategorie
- Azure Spring Cloud-extensie voor de Azure CLI
In dit artikel wordt een toepassing gebruikt die is gebouwd op basis van Spring Initializr. Als u voor dit voorbeeld een andere toepassing wilt gebruiken, moet u een eenvoudige wijziging aanbrengen in een openbaar gedeelte van de toepassing om uw faseringsimplementatie te onderscheiden van productie.
Tip
Azure Cloud Shell is een gratis interactieve shell die u kunt gebruiken om de instructies in dit artikel uit te voeren. Het heeft algemene, vooraf geïnstalleerde Azure-hulpprogramma's, waaronder de nieuwste versies van Git, JDK, Maven en de Azure CLI. Als u bent aangemeld bij uw Azure-abonnement, start u uw Cloud Shell exemplaar. Zie Overzicht van Azure Cloud Shell voor meer informatie.
Als u een blauw-groene implementatie in Azure Spring Cloud, volgt u de instructies in de volgende secties.
De Azure CLI-extensie installeren
Installeer de Azure Spring Cloud voor de Azure CLI met behulp van de volgende opdracht:
az extension add --name spring-cloud
De app en implementaties voorbereiden
Volg deze stappen om de toepassing te bouwen:
Genereer de code voor de voorbeeld-app met behulp van Spring Initializr met deze configuratie.
Download de code.
Voeg het volgende HelloController.java-bronbestand toe aan de map *\src\main\java\com\example\hellospring * :
package com.example.hellospring; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Greetings from Azure Spring Cloud!"; } }Bouw het JAR-bestand:
mvn clean package -DskipTestsMaak de app in uw Azure Spring Cloud-exemplaar:
az spring-cloud app create -n demo -g <resourceGroup> -s <Azure Spring Cloud instance> --assign-endpointImplementeer de app in Azure Spring Cloud:
az spring-cloud app deploy -n demo -g <resourceGroup> -s <Azure Spring Cloud instance> --jar-path target\hellospring-0.0.1-SNAPSHOT.jarWijzig de code voor uw faseringsimplementatie:
package com.example.hellospring; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Greetings from Azure Spring Cloud! THIS IS THE GREEN DEPLOYMENT"; } }Bouw het JAR-bestand opnieuw op:
mvn clean package -DskipTestsMaak de groene implementatie:
az spring-cloud app deployment create -n green --app demo -g <resourceGroup> -s <Azure Spring Cloud instance> --jar-path target\hellospring-0.0.1-SNAPSHOT.jar
Apps en implementaties weergeven
U kunt geïmplementeerde apps weergeven met behulp van de volgende procedure:
Ga naar uw Azure Spring Cloud in de Azure Portal.
Open in het linkerdeelvenster het deelvenster Apps om apps voor uw service-exemplaar weer te geven.

U kunt een app selecteren en details weergeven.

Open Implementaties om alle implementaties van de app te bekijken. Het raster toont zowel productie- als faseringsimplementaties.

Selecteer de URL om de momenteel geïmplementeerde toepassing te openen.

Selecteer Productie in de kolom Status om de standaard-app te zien.

Selecteer Fasering in de kolom Status om de faserings-app te bekijken.

Tip
- Controleer of uw test-eindpunt eindigt met een slash (/) om ervoor te zorgen dat het CSS-bestand correct is geladen.
- Als u in uw browser aanmeldingsreferenties moet invoeren om de pagina weer te geven, gebruikt u URL-decoderen om uw test-eindpunt te decoderen. Url-decode retourneert een URL in de notatie <username> https://: <password> @ <cluster-name> .test.azureapps.io/gateway/green. Gebruik deze indeling om toegang te krijgen tot uw eindpunt.
Notitie
De configuratieserverinstellingen zijn van toepassing op zowel uw faseringsomgeving als uw productieomgeving. Als u bijvoorbeeld het contextpad (server.servlet.context-path) voor uw app-gateway in de configuratieserver in de configuratieserver in stelt als somepath, wordt het pad naar uw groene implementatie gewijzigd in <username> https://: <password> @ <cluster-name> .test.azureapps.io/gateway/green/somepath/....
Als u op dit moment uw openbare app-gateway bezoekt, ziet u de oude pagina zonder uw nieuwe wijziging.
De groene implementatie instellen als productieomgeving
Nadat u uw wijziging in uw faseringsomgeving hebt geverifieerd, kunt u deze naar productie pushen. Selecteer op de > pagina Apps-implementaties de toepassing die momenteel in Productie is.
Selecteer het beletselteken na Registratiestatus van de groene implementatie en selecteer vervolgens Instellen als productie.

Controleer of in de URL van de app uw wijzigingen worden weergegeven.

Notitie
Nadat u de groene implementatie als productieomgeving hebt ingesteld, wordt de vorige implementatie de faseringsimplementatie.
De faseringsimplementatie wijzigen
Als u niet tevreden bent met uw wijziging, kunt u uw toepassingscode wijzigen, een nieuw JAR-pakket maken en dit uploaden naar uw groene implementatie met behulp van de Azure CLI:
az spring-cloud app deploy -g <resource-group-name> -s <service-instance-name> -n gateway -d green --jar-path gateway.jar
De faseringsimplementatie verwijderen
Als u de faseringsimplementatie uit Azure Portal, gaat u naar de pagina voor uw faseringsimplementatie en selecteert u de knop Verwijderen.
U kunt uw faseringsimplementatie ook verwijderen uit de Azure CLI door de volgende opdracht uit te voeren:
az spring-cloud app deployment delete -n <staging-deployment-name> -g <resource-group-name> -s <service-instance-name> --app gateway