Een app implementeren die in de cloud kan worden geschaald met behulp van Azure en Azure Stack Hub
Leer hoe u een cloudoverschrijdende oplossing maakt om een handmatig geactiveerd proces te bieden voor het overschakelen van een Azure Stack Hub gehoste web-app naar een in Azure gehoste web-app met automatisch schalen via Traffic Manager. Dit proces zorgt voor een flexibel en schaalbaar cloudprogramma bij belasting.
Met dit patroon is uw tenant mogelijk niet klaar om uw app uit te voeren in de openbare cloud. Het is echter misschien niet haalbaar dat het bedrijf de vereiste capaciteit in hun on-premises omgeving behoudt om pieken in de vraag naar de app af te handelen. Uw tenant kan gebruikmaken van de elasticiteit van de openbare cloud met hun on-premises oplossing.
In deze oplossing bouwt u een voorbeeldomgeving om:
- Een web-app met meerdere knooppunt maken.
- Configureer en beheer het cd-proces (Continue implementatie).
- Publiceer de web-app naar Azure Stack Hub.
- Maak een release.
- Meer informatie over het bewaken en bijhouden van uw implementaties.
Tip

Microsoft Azure Stack Hub is een extensie van Azure. Azure Stack Hub brengt de flexibiliteit en innovatie van cloud-computing naar uw on-premises omgeving, waardoor de enige hybride cloud wordt gebruikt waarmee u hybride apps overal kunt bouwen en implementeren.
Het artikel Ontwerpoverwegingen voor hybride apps bespreekt de pijlers van softwarekwaliteit (plaatsing, schaalbaarheid, beschikbaarheid, tolerantie, beheersbaarheid en beveiliging) voor het ontwerpen, implementeren en gebruiken van hybride apps. De ontwerpoverwegingen helpen bij het optimaliseren van het ontwerp van hybride apps, waardoor de uitdagingen in productieomgevingen worden geminimim hetzelfde.
Vereisten
- Azure-abonnement. Maak, indien nodig, een gratis account aan voordat u begint.
- Een Azure Stack Hub geïntegreerd systeem of implementatie van Azure Stack Development Kit (ASDK).
- Zie de ASDKinstalleren Azure Stack Hub voor instructies over het installeren van een Azure Stack Hub.
- Voor een automatiseringsscript na de implementatie van een ASDK gaat u naar: https://github.com/mattmcspirit/azurestack
- Deze installatie kan enkele uren duren.
- Implementeer App Service PaaS-services naar Azure Stack Hub.
- Maak plannen/aanbiedingen binnen de Azure Stack Hub omgeving.
- Maak een tenantabonnement binnen de Azure Stack Hub omgeving.
- Maak een web-app binnen het tenantabonnement. Noteer de URL van de nieuwe web-app voor later gebruik.
- Implementeer de virtuele machine (VM) van Azure Pipelines binnen het tenantabonnement.
- Windows Server 2016 VM met .NET 3.5 is vereist. Deze VM wordt in het tenantabonnement op Azure Stack Hub als de privé-buildagent.
- Windows Server 2016 VM-SQL 2017 is beschikbaar in Azure Stack Hub Marketplace. Als deze afbeelding niet beschikbaar is, werkt u met een Azure Stack Hub operator om ervoor te zorgen dat deze wordt toegevoegd aan de omgeving.
Problemen en overwegingen
Schaalbaarheid
Het belangrijkste onderdeel van schalen in de cloud is de mogelijkheid om onmiddellijke en on-demand schaalbaarheid te bieden tussen openbare en on-premises cloudinfrastructuur, waardoor een consistente en betrouwbare service wordt mogelijk.
Beschikbaarheid
Zorg ervoor dat lokaal geïmplementeerde apps zijn geconfigureerd voor hoge beschikbaarheid via on-premises hardwareconfiguratie en software-implementatie.
Beheerbaarheid
De cloudoverschrijdende oplossing zorgt voor naadloos beheer en een vertrouwde interface tussen omgevingen. PowerShell wordt aanbevolen voor platformoverschrijdend beheer.
Schalen in de cloud
Een aangepast domein op te halen en DNS te configureren
Werk het DNS-zonebestand voor het domein bij. Azure AD verifieert het eigendom van de aangepaste domeinnaam. Gebruik Azure DNS voor Azure/Microsoft 365/externe DNS-records in Azure of voeg de DNS-vermelding toe bij een andere DNS-registrar.
- Registreer een aangepast domein bij een openbare registrar.
- Meld u aan bij de domeinnaamregistrar voor het domein. Mogelijk moet een goedgekeurde beheerder DNS-updates maken.
- Werk het DNS-zonebestand voor het domein bij door de DNS-vermelding van Azure AD toe te voegen. (De DNS-vermelding heeft geen invloed op e-mailroutering of webhostinggedrag.)
Een standaardweb-app met meerdere knooppunt maken in Azure Stack Hub
Stel hybride continue integratie en continue implementatie (CI/CD) in om web-apps te implementeren in Azure en Azure Stack Hub en om wijzigingen in beide clouds automatisch door te voeren.
Notitie
Azure Stack Hub afbeeldingen die zijn gemaakt om te worden uitgevoerd (Windows Server en SQL) en App Service implementatie zijn vereist. Bekijk voor meer informatie de App Service documentatie Vereisten voor het implementeren van App Service op Azure Stack Hub.
Code toevoegen aan Azure-repos
Azure-opslagplaatsen
Meld u aan bij Azure-repos met een account met rechten voor het maken van projecten in Azure-repos.
Hybride CI/CD kan van toepassing zijn op zowel app-code als infrastructuurcode. Gebruik Azure Resource Manager voor zowel privé- als gehoste cloudontwikkeling.

Kloon de opslagplaats door de standaardweb-app te maken en te openen.

Een zelfstandige web-app-implementatie maken voor App Services in beide clouds
Bewerk het bestand WebApplication.csproj. Selecteer
Runtimeidentifieren voegwin10-x64toe. (Zie Documentatie voor zelfstandige implementatie.)
Controleer de code voor Azure-repos met teamverkenner.
Controleer of de app-code is ingecheckt bij Azure Repos.
De builddefinitie maken
Meld u aan bij Azure Pipelines om te bevestigen dat u builddefinities kunt maken.
Voeg -r win10-x64-code toe. Deze toevoeging is nodig om een zelfstandige implementatie met .NET Core te activeren.

Voer de build uit. Het buildproces voor zelfstandige implementatie publiceert artefacten die worden uitgevoerd op Azure en Azure Stack Hub.
Een gehoste Azure-agent gebruiken
Het gebruik van een gehoste buildagent in Azure Pipelines is een handige optie voor het bouwen en implementeren van web-apps. Onderhoud en upgrades worden automatisch uitgevoerd door Microsoft Azure, waardoor een continue en ononderbroken ontwikkelingscyclus mogelijk is.
Het CD-proces beheren en configureren
Azure Pipelines en Azure DevOps Services bieden een uiterst configureerbare en beheerbare pijplijn voor releases voor meerdere omgevingen, zoals ontwikkeling, fasering, QA en productieomgevingen; inclusief het vereisen van goedkeuringen in specifieke fasen.
Releasedefinitie maken
Selecteer de plusknop om een nieuwe release toe te voegen op het tabblad Releases in de sectie Build and Release van Azure DevOps Services.

Pas de sjabloon Azure App Service implementatie toe.

Voeg onder Artefact toevoegen het artefact toe voor de Azure Cloud-build-app.

Selecteer op het tabblad Pijplijn de koppeling Fase, Taak van de omgeving en stel de waarden voor de Azure-cloudomgeving in.

Stel de naam van de omgeving in en selecteer het Azure-abonnement voor het Azure Cloud-eindpunt.

Stel onder App Service-naam de vereiste Azure App Service-naam in.

Voer gehoste VS2017 in onder Agentwachtrij voor in de Azure-cloud gehoste omgeving.

Selecteer in Azure App Service het geldige pakket of de geldige map voor de omgeving. Selecteer OK naar maplocatie.


Sla alle wijzigingen op en ga terug naar de release-pijplijn.

Voeg een nieuw artefact toe door de build voor de Azure Stack Hub selecteren.

Voeg nog een omgeving toe door de implementatie Azure App Service toepassen.

Noem de nieuwe omgeving 'Azure Stack'.

Zoek de Azure Stack op het tabblad Taak.

Selecteer het abonnement voor het Azure Stack eindpunt.

Stel de naam Azure Stack web-app in als de naam van de app-service.

Selecteer de Azure Stack agent.

Selecteer onder de Azure App Service implementeren het geldige pakket of de geldige map voor de omgeving. Selecteer OK naar maplocatie.


Voeg onder het tabblad Variabele een variabele toe met de naam , stel de waarde ervan in op
VSTS\_ARM\_REST\_IGNORE\_SSL\_ERRORStrue en stel het bereik in op Azure Stack.
Selecteer het pictogram Continue implementatietrigger in beide artefacten en schakel de implementatietrigger Doorgaan in.

Selecteer het pictogram Voorwaarden vóór implementatie in Azure Stack omgeving en stel de trigger in op Na de release.

Sla alle wijzigingen op.
Notitie
Sommige instellingen voor de taken zijn mogelijk automatisch gedefinieerd als omgevingsvariabelen bij het maken van een releasedefinitie op basis van een sjabloon. Deze instellingen kunnen niet worden gewijzigd in de taakinstellingen; In plaats daarvan moet het bovenliggende omgevingsitem worden geselecteerd om deze instellingen te bewerken.
Publiceren naar Azure Stack Hub via Visual Studio
Door eindpunten te maken, kan een Azure DevOps Services-build Azure Service-apps implementeren in Azure Stack Hub. Azure Pipelines maakt verbinding met de buildagent, die verbinding maakt met Azure Stack Hub.
Meld u aan bij Azure DevOps Services en ga naar de pagina met app-instellingen.
Selecteer Instellingen op de pagina Beveiliging.
Selecteer in VSTS-groepen de optie Eindpuntmakers.
Selecteer op het tabblad Leden de optie Toevoegen.
Voer in Gebruikers en groepen toevoegen een gebruikersnaam in en selecteer die gebruiker in de lijst met gebruikers.
Selecteer Save changes.
Selecteer in de lijst VSTS-groepen eindpuntbeheerders.
Selecteer op het tabblad Leden de optie Toevoegen.
Voer in Gebruikers en groepen toevoegen een gebruikersnaam in en selecteer die gebruiker in de lijst met gebruikers.
Selecteer Save changes.
Nu de eindpuntgegevens bestaan, zijn de Azure-pijplijnen voor Azure Stack Hub verbinding gereed voor gebruik. De buildagent in Azure Stack Hub instructies van Azure Pipelines en vervolgens geeft de agent eindpuntinformatie voor communicatie met Azure Stack Hub.
De app-build ontwikkelen
Notitie
Azure Stack Hub met de juiste afbeeldingen die zijn gemaakt om te worden uitgevoerd (Windows Server en SQL) en App Service implementatie zijn vereist. Zie Prerequisites for deploying App Service on Azure Stack Hub (Vereistenvoor het implementeren van App Service op Azure Stack Hub.
Gebruik Azure Resource Manager zoals web-app-code uit Azure Repos om deze in beide clouds te implementeren.
Code toevoegen aan een Azure Repos-project
Meld u aan bij Azure Repos met een account met rechten voor het maken van projecten op Azure Stack Hub.
Kloon de opslagplaats door de standaardweb-app te maken en te openen.
Een zelfstandige web-app-implementatie maken voor App Services in beide clouds
Bewerk het bestand WebApplication.csproj: Selecteer
Runtimeidentifieren voeg vervolgenswin10-x64toe. Zie Documentatie voor zelfstandige implementatie voor meer informatie.Gebruik Team Explorer om de code in Azure Repos te controleren.
Controleer of de app-code is ingecheckt in Azure Repos.
De builddefinitie maken
Meld u aan bij Azure Pipelines met een account dat een builddefinitie kan maken.
Ga naar de pagina Webtoepassing bouwen voor het project.
Voeg in Argumenten -r win10-x64-code toe. Deze toevoeging is vereist om een zelfstandige implementatie met .NET Core te activeren.
Voer de build uit. Tijdens het bouwproces voor zelfstandige implementatie worden artefacten gepubliceerd die kunnen worden uitgevoerd in Azure en Azure Stack Hub.
Een door Azure gehoste buildagent gebruiken
Het gebruik van een gehoste buildagent in Azure Pipelines is een handige optie voor het bouwen en implementeren van web-apps. Onderhoud en upgrades worden automatisch uitgevoerd door Microsoft Azure, waardoor een doorlopende en ononderbroken ontwikkelingscyclus mogelijk is.
Het cd-proces (continue implementatie) configureren
Azure Pipelines en Azure DevOps Services bieden een uiterst configureerbare en beheerbare pijplijn voor releases naar meerdere omgevingen, zoals ontwikkeling, fasering, kwaliteitscontrole (QA) en productie. Dit proces kan bestaan uit het vereisen van goedkeuringen in specifieke fasen van de levenscyclus van de app.
Releasedefinitie maken
Het maken van een releasedefinitie is de laatste stap in het bouwproces van de app. Deze releasedefinitie wordt gebruikt om een release te maken en een build te implementeren.
Meld u aan bij Azure Pipelines en ga naar Build and Release voor het project.
Selecteer op het tabblad Releases de optie [ + ] en kies vervolgens Releasedefinitie maken.
Kies in Een sjabloon selecteren de optie Azure App Service Implementatie en selecteer vervolgens Toepassen.
Selecteer in Artefact toevoegen vanuit de bron (build-definitie) de Azure Cloud-build-app.
Selecteer op het tabblad Pijplijn de koppeling 1 fase, 1 taak naar Omgevingstaken weergeven.
Voer op het tabblad Taken Azure in als de naam van de omgeving en selecteer de AzureCloud-Traders-Web EP in de lijst met Azure-abonnementen.
Voer de naam van de Azure App Service in. Deze staat in de volgende
northwindtradersschermopname.Selecteer gehoste VS2017 in de wachtrijlijst Agent voor de agentfase.
Selecteer in Azure App Service het geldige pakket of de geldige map voor de omgeving.
Selecteer in Bestand of map selecteren de optie OK naar Locatie.
Sla alle wijzigingen op en ga terug naar Pijplijn.
Selecteer op het tabblad Pijplijn de optie Artefact toevoegen en kies northwindCloud Traders-Artifact in de lijst Bron (builddefinitie).
Voeg in Een sjabloon selecteren een andere omgeving toe. Kies Azure App Service Implementatie en selecteer toepassen.
Voer
Azure Stack Hubin als de naam van de omgeving.Zoek en selecteer op het tabblad Taken Azure Stack Hub.
Selecteer in de lijst Azure-abonnement AzureStack Traders-Vessel EP voor het Azure Stack Hub eindpunt.
Voer de naam Azure Stack Hub web-app in als de naam van de app-service.
Onder Agentselectie kiest u AzureStack -b Douglas Fir in de lijst Met agentwachtrijen.
Selecteer voor Azure App Service implementeren het geldige pakket of de geldige map voor de omgeving. Selecteer in Bestand of map selecteren de optie OK voor de map Locatie.
Zoek op het tabblad Variabele de variabele met de naam
VSTS\_ARM\_REST\_IGNORE\_SSL\_ERRORS. Stel de waarde van de variabele in op true en stel het bereik ervan in op Azure Stack Hub.Selecteer op het tabblad Pijplijn het pictogram Continue implementatietrigger voor het artefact NorthwindCloud Traders-Web en stel de trigger voor continue implementatie in op Ingeschakeld. Doe hetzelfde voor het artefact NorthwindCloud Traders-Artifact.
Voor de Azure Stack Hub selecteert u het pictogram Voorwaarden vóór implementatie en stelt u de trigger in op Na de release.
Sla alle wijzigingen op.
Notitie
Sommige instellingen voor releasetaken worden automatisch gedefinieerd als omgevingsvariabelen bij het maken van een releasedefinitie op basis van een sjabloon. Deze instellingen kunnen niet worden gewijzigd in de taakinstellingen, maar kunnen worden gewijzigd in de bovenliggende omgevingsitems.
Een release maken
Open op het tabblad Pijplijn de lijst Release en selecteer Release maken.
Voer een beschrijving in voor de release, controleer of de juiste artefacten zijn geselecteerd en selecteer vervolgens Maken. Na enkele ogenblikken wordt er een banner weergegeven die aangeeft dat de nieuwe release is gemaakt en dat de releasenaam wordt weergegeven als een koppeling. Selecteer de koppeling om de pagina met het releaseoverzicht weer te geven.
Op de overzichtspagina van de release worden details over de release weergegeven. In de volgende schermafbeelding voor Release-2 toont de sectie Omgevingen de implementatiestatus voor Azure als 'WORDT UITGEVOERD' en de status voor Azure Stack Hub is 'SUCCEEDED'. Wanneer de implementatiestatus voor de Azure-omgeving wordt gewijzigd in 'SUCCEEDED', wordt er een banner weergegeven waarin wordt aangegeven dat de release gereed is voor goedkeuring. Wanneer een implementatie in behandeling is of is mislukt, wordt een blauw (i) informatiepictogram weergegeven. Beweeg de muisaanwijzer over het pictogram om een pop-up te zien met de reden voor vertraging of fout.
Andere weergaven, zoals de lijst met releases, geven ook een pictogram weer dat aangeeft dat goedkeuring in behandeling is. In het pop-uppictogram voor dit pictogram ziet u de naam van de omgeving en meer details met betrekking tot de implementatie. Het is eenvoudig voor een beheerder om de algehele voortgang van releases te bekijken en te zien welke releases op goedkeuring wachten.
Implementaties bewaken en bijhouden
Selecteer logboeken op de overzichtspagina Release-2. Tijdens een implementatie wordt op deze pagina het livelogboek van de agent weergegeven. In het linkerdeelvenster ziet u de status van elke bewerking in de implementatie voor elke omgeving.
Selecteer het persoonspictogram in de kolom Actie voor een goedkeuring vóór de implementatie of na de implementatie om te zien wie de implementatie heeft goedgekeurd (of afgewezen) en het bericht dat ze hebben opgegeven.
Nadat de implementatie is voltooien, wordt het hele logboekbestand weergegeven in het rechterdeelvenster. Selecteer een stap in het linkerdeelvenster om het logboekbestand voor één stap weer te geven, zoals Taak initialiseren. De mogelijkheid om afzonderlijke logboeken te bekijken, maakt het gemakkelijker om delen van de algehele implementatie te traceren en er fouten in op te sporen. Sla het logboekbestand voor een stap op of download alle logboeken als zip.
Open het tabblad Samenvatting voor algemene informatie over de release. Deze weergave bevat details over de build, de omgevingen waarin deze is geïmplementeerd, de implementatiestatus en andere informatie over de release.
Selecteer een omgevingskoppeling (Azure of Azure Stack Hub) voor informatie over bestaande en in behandeling zijnde implementaties in een specifieke omgeving. Gebruik deze weergaven als een snelle manier om te controleren of dezelfde build in beide omgevingen is geïmplementeerd.
Open de geïmplementeerde productie-app in een browser. Open bijvoorbeeld voor de website Azure-app Services de URL
https://[your-app-name\].azurewebsites.net.
Integratie van Azure en Azure Stack Hub biedt een schaalbare cloudoplossing
Een flexibele en robuuste multicloudservice biedt gegevensbeveiliging, back-up en redundantie, consistente en snelle beschikbaarheid, schaalbare opslag en distributie en geo-compatibele routering. Dit handmatig geactiveerde proces zorgt voor een betrouwbare en efficiënte belastingsschakeling tussen gehoste web-apps en onmiddellijke beschikbaarheid van essentiële gegevens.
Volgende stappen
- Zie Cloudontwerppatronen voor meer informatie over Azure-cloudpatronen.