Återskapa ett lokalt program i AzureRebuild an on-premises application in Azure

Den här artikeln visar hur det fiktiva företaget contoso återskapar ett Windows .NET-program på två nivåer som körs på virtuella VMware-datorer (VM) som en del av en migrering till Azure.This article demonstrates how the fictional company Contoso rebuilds a two-tier Windows .NET application that's running on VMware virtual machines (VMs) as part of a migration to Azure. Contoso migrerar klient delens virtuella dator till en Azure App Service-webbapp.Contoso migrates the front-end VM to an Azure App Service web app. Contoso skapar Server delen för programmet med mikrotjänster som distribueras till behållare som hanteras av Azure Kubernetes service (AKS).Contoso builds the application back end by using microservices that are deployed to containers managed by Azure Kubernetes Service (AKS). Webbplatsen interagerar med Azure Functions för att tillhandahålla en funktion för bilder på husdjur.The site interacts with Azure Functions to provide pet photo functionality.

SmartHotel360-programmet som används i det här exemplet tillhandahålls under en licens med öppen källkod.The SmartHotel360 application used in this example is provided under an open-source license. Om du vill använda den i ett eget test syfte kan du ladda ned den från GitHub.If you want to use it for your own testing purposes, you can download it from GitHub.

Affärsdrivande faktorerBusiness drivers

Contosos IT-ledningsgrupp har arbetat tillsammans med affärspartner för att förstå vad man vill uppnå med migreringen:The Contoso IT leadership team has worked closely with business partners to understand what they want to achieve with this migration:

  • Hantera företagets tillväxt.Address business growth. Contoso växer och vill tillhandahålla differentierade upplevelser för kunder på Contoso-webbplatser.Contoso is growing and wants to provide differentiated experiences for customers on Contoso websites.
  • Öka flexibiliteten.Be agile. Contoso måste kunna reagera snabbare än ändringarna i Marketplace för att möjliggöra att de lyckas i en global ekonomi.Contoso must be able to react faster than the changes in the marketplace to enable their success in a global economy.
  • Skala.Scale. När verksamheten växer måste Contosos IT-team tillhandahålla system som kan växa i samma takt.As the business grows successfully, the Contoso IT team must provide systems that can grow at the same pace.
  • Minska kostnaderna.Reduce costs. Contoso vill minimera licenskostnaderna.Contoso wants to minimize licensing costs.

MigreringsmålMigration goals

Contoso Cloud-teamet har fäst program krav för migreringen.The Contoso cloud team has pinned down application requirements for this migration. Kraven användes för att komma fram till den lämpligaste migrationsmetoden:These requirements were used to determine the best migration method:

  • Programmet i Azure måste vara så viktigt som det är i dag lokalt.The application in Azure must remain as critical as it is today on-premises. Den måste fungera bra och kunna skalas enkelt.It should perform well and scale easily.
  • Programmet bör inte använda IaaS-komponenter (Infrastructure as a Service).The application shouldn't use infrastructure as a service (IaaS) components. Allt ska byggas för att använda PaaS (Platform as a Service) eller Server lös tjänster.Everything should be built to use platform as a service (PaaS) or serverless services.
  • Program versioner ska köras i moln tjänster och behållare bör finnas i ett privat, företagsomfattande register i molnet.Application builds should run in cloud services, and containers should reside in a private, enterprise-wide registry in the cloud.
  • Den API-tjänst som används för PET-foton bör vara korrekt och tillförlitlig i verkligheten, eftersom beslut som fattas av programmet måste behållas på sina hotell.The API service that's used for pet photos should be accurate and reliable in the real world, because decisions made by the application must be honored in their hotels. Alla husdjur som godkänns får stanna på hotellen.Any pet granted access is allowed to stay at the hotels.
  • För att uppfylla kraven för en DevOps-pipeline använder contoso en git-lagringsplats i Azure databaser för hantering av käll kod.To meet requirements for a DevOps pipeline, Contoso will use a Git repository in Azure Repos for source code management. Automatiserade byggen och distributioner används för att skapa kod och distribuera till Azure App Service, Azure Functions och AKS.Automated builds and releases will be used to build code and deploy to Azure App Service, Azure Functions, and AKS.
  • Separata pipeliner för kontinuerlig integrering/lagring (CI/CD) behövs för mikrotjänster på Server delen och för webbplatsen på klient sidan.Separate continuous integration/continuous development (CI/CD) pipelines are needed for microservices on the back end and for the website on the front end.
  • Server dels tjänsterna och frontend-webbappen har olika versions cykler.The back-end services and the front-end web app have different release cycles. Contoso distribuerar två olika pipeliner för att uppfylla detta krav.To meet this requirement, Contoso will deploy two different pipelines.
  • Contoso behöver ledningens godkännande för all distribution på klientsidan, vilket CI/CD-pipelinen måste tillhandahålla.Contoso needs management approval for all front-end website deployment, and the CI/CD pipeline must provide this.

LösningsdesignSolution design

När man har fastställt målen och kraven utformar och granskar Contoso en distributionslösning och identifierar migreringsprocessen, inklusive de Azure-tjänster som ska användas vid migreringen.After pinning down their goals and requirements, Contoso designs and reviews a deployment solution, and identifies the migration process, including the Azure services that will be used for the migration.

Aktuellt programCurrent application

  • SmartHotel360 lokala program skiktas på två virtuella datorer ( WEBVM och SQLVM ).The SmartHotel360 on-premises application is tiered across two VMs (WEBVM and SQLVM).
  • De virtuella datorerna finns på VMware ESXi-värden contosohost1.contoso.com (version 6.5).The VMs are located on VMware ESXi host contosohost1.contoso.com (version 6.5).
  • VMware-miljön hanteras av vCenter Server 6.5 (vcenter.contoso.com) som körs på en virtuell dator.The VMware environment is managed by vCenter Server 6.5 (vcenter.contoso.com), running on a VM.
  • Contoso har ett lokalt datacenter (contoso-datacenter) med en lokal domänkontrollant (contosodc1).Contoso has an on-premises datacenter (contoso-datacenter), with an on-premises domain controller (contosodc1).
  • De lokala, virtuella datorerna i Contoso-datacentret inaktiveras när migreringen är färdig.The on-premises VMs in the Contoso datacenter will be decommissioned after the migration is done.

Föreslagen arkitekturProposed architecture

  • Klient delen av programmet distribueras som en Azure App Service-webbapp i den primära Azure-regionen.The front end of the application is deployed as an Azure App Service web app in the primary Azure region.

  • En Azure-funktion hanterar uppladdningen av bilder på husdjur, och webbplatsen interagerar med den här funktionen.An Azure function provides uploads of pet photos, and the site interacts with this functionality.

  • Foto funktionen sällskap använder API för visuellt innehåll av Azure Cognitive Services tillsammans med Azure Cosmos DB.The pet photo function uses the Computer Vision API of Azure Cognitive Services along with Azure Cosmos DB.

  • Platsens Server del har skapats med mikrotjänster.The back end of the site is built by using microservices. Dessa mikrotjänster distribueras till behållare som hanteras i AKS.These microservices will be deployed to containers that are managed in AKS.

  • Behållare skapas med Azure-DevOps och skickas sedan till Azure Container Registry.Containers will be built using Azure DevOps and then pushed to Azure Container Registry.

  • Contoso distribuerar nu webb program-och funktions koden manuellt med hjälp av Visual Studio.For now, Contoso will manually deploy the web app and function code by using Visual Studio.

  • Contoso distribuerar mikrotjänster med hjälp av ett PowerShell-skript som anropar Kubernetes kommando rads verktyg.Contoso will deploy microservices by using a PowerShell script that calls Kubernetes command-line tools.

    Diagram över scenario arkitektur för migrering till Azure.

    Bild 1: scenario arkitektur.Figure 1: Scenario architecture.

Utvärdering av lösningenSolution review

Contoso utvärderar den föreslagna designen genom att skapa en lista med för- och nackdelar.Contoso evaluates the proposed design by putting together a pros and cons list.

Att tänka påConsideration InformationDetails
FördelarPros Användning av PaaS och lösningar utan server för slut punkt till slut punkt minskar avsevärt den hanterings tid som contoso måste tillhandahålla.Using PaaS and serverless solutions for the end-to-end deployment significantly reduces the management time that Contoso must provide.

Genom att flytta till en mikrotjänster-baserad arkitektur kan Contoso enkelt utöka lösningen över tid.Moving to a microservices-based architecture allows Contoso to easily extend the solution over time.

Nya funktioner kan tas online utan att störa någon av de befintliga lösningens kod baser.New functionality can be brought online without disrupting any of the existing solutions' code bases.

Webbappen kommer att konfigureras med flera instanser, utan någon enskild felpunkt.The web app will be configured with multiple instances, with no single point of failure.

Autoskalning aktive ras så att programmet kan hantera olika trafik volymer.Autoscaling will be enabled so that the application can handle differing traffic volumes.

Med flytten till PaaS Services kan Contoso ta bort inaktuella lösningar som körs på operativ systemet Windows Server 2008 R2.With the move to PaaS services, Contoso can retire out-of-date solutions that run on the Windows Server 2008 R2 operating system.

Azure Cosmos DB har inbyggd fel tolerans, vilket inte kräver någon konfiguration av contoso.Azure Cosmos DB has built-in fault tolerance, which requires no configuration by Contoso. Detta innebär att datanivån inte längre är en felkritisk systemdel.This means that the data tier is no longer a single point of failover.
NackdelarCons Containrar är mer komplexa än andra migreringsalternativ.Containers are more complex than other migration options. Inlärningskurvan kan vara ett problem för Contoso.The learning curve could be an issue for Contoso. De introducerar en ny komplexitets nivå som ger värdet trots kurvan.They introduce a new level of complexity that provides value in spite of the curve.

Drift teamet på Contoso måste öka för att förstå och stödja Azure, behållare och mikrotjänster för programmet.The operations team at Contoso needs to ramp up to understand and support Azure, containers, and microservices for the application.

Contoso har inte helt implementerat DevOps för hela lösningen.Contoso hasn't fully implemented DevOps for the entire solution. Contoso måste överväga det för distributionen av tjänster till AKS, Azure Functions och Azure App Service.Contoso needs to consider that for the deployment of services to AKS, Azure Functions, and Azure App Service.

MigreringsprocessenMigration process

  1. Contoso-regler Azure Container Registry, AKS och Azure Cosmos DB.Contoso provisions Azure Container Registry, AKS, and Azure Cosmos DB.

  2. Contoso tillhandahåller infrastrukturen för distributionen, inklusive Azure App Service webbapp, lagrings konto, funktion och API.Contoso provisions the infrastructure for the deployment, including the Azure App Service web app, storage account, function, and API.

  3. När infrastrukturen är på plats bygger contoso avbildningar av mikrotjänsters behållare med hjälp av Azure-DevOps, som skickar avbildningarna till behållar registret.After the infrastructure is in place, Contoso builds their microservices container images by using Azure DevOps, which pushes the images to the container registry.

  4. Contoso distribuerar dessa mikrotjänster till AKS med hjälp av ett PowerShell-skript.Contoso deploys these microservices to AKS by using a PowerShell script.

  5. Slutligen distribuerar contoso funktionen och webb programmet.Finally, Contoso deploys the function and web app.

    Diagram över migreringsprocessen från förberedelse till distribution i molnet.

    Bild 2: migreringsprocessen.Figure 2: The migration process.

Azure-tjänsterAzure services

TjänstService BeskrivningDescription KostnadCost
Azure Kubernetes ServiceAzure Kubernetes Service Förenklar hanteringen, distributionen och åtgärderna för Kubernetes.Simplifies Kubernetes management, deployment, and operations. Tillhandahåller en fullständigt hanterad orkestreringstjänst för Kubernetes-containrar.Provides a fully managed Kubernetes container orchestration service. AKS är en kostnadsfri tjänst.AKS is a free service. Betala bara för de virtuella datorerna och de associerade lagrings-och nätverks resurserna som används.Pay for only the VMs and the associated storage and networking resources that are consumed. Läs mer.Learn more.
Azure FunctionsAzure Functions Utveckla snabbare med en händelsedriven miljö för databearbetning utan server.Accelerates development with an event-driven, serverless compute experience. Skala på begäran.Scale on demand. Betala endast för de resurser du använder.Pay only for consumed resources. Planen faktureras baserat på resursanvändning och körningar per sekund.Plan is billed based on per-second resource consumption and executions. Läs mer.Learn more.
Azure Container RegistryAzure Container Registry Lagrar avbildningar för alla typer av containerdistributioner.Stores images for all types of container deployments. Kostnaden baseras på funktioner, lagring och användnings tid.Cost is based on features, storage, and usage duration. Läs mer.Learn more.
Azure App ServiceAzure App Service Skapa, distribuera och skala snabbt webb-, mobil-och API-appar i företags klass som körs på valfri plattform.Quickly build, deploy, and scale enterprise-grade web, mobile, and API apps that run on any platform. App Services planer faktureras per sekund.App Service plans are billed on a per-second basis. Läs mer.Learn more.

FörutsättningarPrerequisites

Det här är vad Contoso behöver i det här scenariot:Here's what Contoso needs for this scenario:

KravRequirements InformationDetails
Azure-prenumerationAzure subscription
  • Contoso-skapade prenumerationer i en tidigare artikel.Contoso created subscriptions in an earlier article. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.If you don't have an Azure subscription, create a free account.
  • Om du skapar ett kostnads fritt konto är du administratör för din prenumeration och kan utföra alla åtgärder.If you create a free account, you're the admin of your subscription and can perform all actions.
  • Om du använder en befintlig prenumeration och inte är administratör måste du arbeta med administratören för att tilldela behörigheter till ägare eller deltagare.If you use an existing subscription and you're not the admin, you need to work with the admin to assign Owner or Contributor permissions to you.
  • Azure-infrastrukturAzure infrastructure
  • Lär dig hur contoso konfigurerar en Azure-infrastruktur.Learn how Contoso set up an Azure infrastructure.
  • Krav för utvecklareDeveloper prerequisites Contoso behöver följande verktyg på en arbetsstation för utvecklare:Contoso needs the following tools on a developer workstation:
  • Visual Studio Community 2017 version 15,5Visual Studio Community 2017 version 15.5
  • .NET-arbets belastning, aktive rad.NET workload, enabled
  • GitGit
  • Azure PowerShellAzure PowerShell
  • Azure CLIThe Azure CLI
  • Docker Community Edition (Windows 10) eller Docker Enterprise Edition (Windows Server), ange att använda Windows-behållareDocker Community Edition (Windows 10) or Docker Enterprise Edition (Windows Server), set to use Windows containers
  • ScenariostegScenario steps

    Contoso genomför migreringen på följande sätt:Here's how Contoso will run the migration:

    • Steg 1: etablera AKS och Azure Container Registry.Step 1: Provision AKS and Azure Container Registry. Contoso etablerar det hanterade AKS-klustret och behållar registret med hjälp av PowerShell.Contoso provisions the managed AKS cluster and the container registry by using PowerShell.
    • Steg 2: Bygg Docker-behållare.Step 2: Build Docker containers. Contoso konfigurerar kontinuerlig integrering (CI) för Docker-behållare med hjälp av Azure-DevOps och push-överför behållarna till behållar registret.Contoso sets up continuous integration (CI) for Docker containers by using Azure DevOps and pushes the containers to the container registry.
    • Steg 3: Distribuera Server dels mikrotjänster.Step 3: Deploy back-end microservices. Contoso distribuerar resten av infrastrukturen som ska användas av Server dels mikrotjänster.Contoso deploys the rest of the infrastructure that will be used by back-end microservices.
    • Steg 4: Distribuera klient dels infrastruktur.Step 4: Deploy front-end infrastructure. Contoso distribuerar frontend-infrastrukturen, inklusive Blob Storage för PET-telefoner, Azure Cosmos DB och API för visuellt innehåll.Contoso deploys the front-end infrastructure, including Blob storage for the pet phones, Azure Cosmos DB, and the Computer Vision API.
    • Steg 5: Migrera Server delen.Step 5: Migrate the back end. Contoso distribuerar mikrotjänster och kör dem på AKS för att migrera Server delen.Contoso deploys microservices and runs them on AKS to migrate the back end.
    • Steg 6: publicera klient delen.Step 6: Publish the front end. Contoso publicerar SmartHotel360-programmet till Azure App Service tillsammans med Function-appen som ska anropas av hus djurs tjänsten.Contoso publishes the SmartHotel360 application to Azure App Service along with the function app to be called by the pet service.

    Etablera resurser för serverdelenProvision back-end resources

    Contoso-administratörer kör ett distributions skript för att skapa det hanterade Kubernetes-klustret med hjälp av AKS och Azure Container Registry.Contoso admins run a deployment script to create the managed Kubernetes cluster by using AKS and Azure Container Registry. Anvisningarna för det här avsnittet använder SmartHotel360-backend-GitHub- lagringsplatsen.The instructions for this section use the SmartHotel360-Backend GitHub repository. Databasen innehåller all program vara för den här delen av distributionen.The repository contains all the software for this part of the deployment.

    Se till att kraven är uppfylldaEnsure that prerequisites are met

    Innan de börjar ser contoso-administratörer till att all nödvändig program vara är installerad på den utvecklings dator som de använder för distributionen.Before they start, Contoso admins ensure that all prerequisite software is installed on the dev machine they're using for the deployment. De klonar lagrings platsen lokalt till dev-datorn med hjälp av git:They clone the repository locally to the dev machine by using Git:

    git clone https://github.com/Microsoft/SmartHotel360-Backend.git

    Etablera AKS och Azure Container RegistryProvision AKS and Azure Container Registry

    Contoso-administratörer etablerar AKS och Azure Container Registry enligt följande:The Contoso admins provision AKS and Azure Container Registry as follows:

    1. I Visual Studio Code öppnar de mappen och går till /deploy/k8s katalogen som innehåller skriptet gen-aks-env.ps1 .In Visual Studio Code, they open the folder and go to the /deploy/k8s directory, which contains the script gen-aks-env.ps1.

    2. De kör skriptet för att skapa det hanterade Kubernetes-klustret med hjälp av AKS och Azure Container Registry.They run the script to create the managed Kubernetes cluster, using AKS and Azure Container Registry.

      Skärm bild som visar AKS-skriptet i Visual Studio Code.

      Bild 3: skapa det hanterade Kubernetes-klustret.Figure 3: Creating the managed Kubernetes cluster.

    3. När filen är öppen uppdaterar han $location-parametern till eastus2 och sparar filen.With the file open, they update the $location parameter to eastus2, and save the file.

      Skärm bild som visar AKS $location-parametern har uppdaterats till eastus2.

      Bild 4: Spara filen.Figure 4: Saving the file.

    4. De väljer Visa > integrerad Terminal för att öppna den integrerade terminalen i Visual Studio Code.They select View > Integrated terminal to open the integrated terminal in Visual Studio Code.

      Skärm bild som visar länken "integrerad Terminal".

      Bild 5: terminalen i Visual Studio Code.Figure 5: The terminal in Visual Studio Code.

    5. I PowerShell-integrerade terminalen loggar de in på Azure med hjälp av Connect-AzureRmAccount kommandot.In the PowerShell integrated terminal, they sign in to Azure using the Connect-AzureRmAccount command. Mer information finns i Kom igång med PowerShell.For more information, see Get started with PowerShell.

      Skärm bild av inloggnings fönstret för den integrerade PowerShell-terminalen.

      Bild 6: PowerShell-integrerade terminalen.Figure 6: The PowerShell integrated terminal.

    6. De autentiserar Azure CLI genom att köra az login kommandot och följa instruktionerna för att autentisera med hjälp av webbläsaren.They authenticate the Azure CLI by running the az login command and following the instructions to authenticate using their web browser. Läs mer om att logga in med Azure CLI.Learn more about signing in with the Azure CLI.

      Skärm bild som visar Authentication-fönstret för Azure CLI.

      Figur 7: autentisera Azure CLI.Figure 7: Authenticating the Azure CLI.

    7. De kör följande kommando när du skickar resurs grupp namnet ContosoRG , namnet på AKS smarthotel-aks-eus2 -klustret och det nya register namnet.They run the following command while passing the resource group name of ContosoRG, the name of the AKS cluster smarthotel-aks-eus2, and the new registry name.

      .\gen-aks-env.ps1 -resourceGroupName ContosoRg -orchestratorName smarthotelakseus2 -registryName smarthotelacreus2

      Skärm bild som visar Smarthotel-kommandon i fönstret resurs grupp.

      Figur 8: köra kommandot.Figure 8: Running the command.

    8. Azure skapar en annan resurs grupp som innehåller resurserna för AKS-klustret.Azure creates another resource group that contains the resources for the AKS cluster.

      Skärm bild av resurs grupps skapande.

      Bild 9: Azure skapar en resurs grupp.Figure 9: Azure creating a resource group.

    9. När distributionen är färdig installeras kubectl kommando rads verktyget.After the deployment is finished, they install the kubectl command-line tool. Verktyget är redan installerat på Azure Cloud Shell.The tool is already installed on the Azure Cloud Shell.

      az aks install-cli

    10. De verifierar anslutningen till klustret genom att köra kubectl get nodes kommandot.They verify the connection to the cluster by running the kubectl get nodes command. Noden har samma namn som den virtuella datorn i den automatiskt skapade resurs gruppen.The node has the same name as the VM in the automatically created resource group.

      Skärm bild som visar verifiering av anslutningen till klustret.

      Bild 10: verifiera anslutningen till klustret.Figure 10: Verifying the connection to the cluster.

    11. De kör följande kommando för att starta Kubernetes-instrument panelen:They run the following command to start the Kubernetes dashboard:

      az aks browse --resource-group ContosoRG --name smarthotelakseus2

    12. En webbläsare-flik öppnas med instrument panelen.A browser tab opens to the dashboard. Det här är en tunnel anslutning som använder Azure CLI.This is a tunneled connection that uses the Azure CLI.

      Skärm bild som visar en tunnel anslutning.

      Bild 11: en tunnel anslutning.Figure 11: A tunneled connection.

    Steg 2: Konfigurera backend-pipelineStep 2: Configure the back-end pipeline

    Skapa ett Azure DevOps-projekt och -byggeCreate an Azure DevOps project and build

    Contoso skapar ett Azure DevOps-projekt, konfigurerar en CI-version för att skapa behållaren och skickar den sedan till behållar registret.Contoso creates an Azure DevOps project, configures a CI build to create the container, and then pushes it to the container registry. I anvisningarna i det här avsnittet används SmartHotel360-backend- lagringsplatsen.The instructions in this section use the SmartHotel360-Backend repository.

    1. Från visualstudio.com skapar de en ny organisation ( contosodevops360.visualstudio.com ) och konfigurerar den att använda git.From visualstudio.com, they create a new organization (contosodevops360.visualstudio.com) and configure it to use Git.

    2. De skapar ett nytt projekt ( SmartHotelBackend ), väljer git för versions kontroll och Agile för arbets flödet.They create a new project (SmartHotelBackend), selecting Git for version control and Agile for the workflow.

      Skärm bild av fönstret Azure DevOps "Skapa nytt projekt".

      Bild 12: skapa ett nytt projekt.Figure 12: Creating a new project.

    3. De importerar GitHub-lagringsplatsen.They import the GitHub repo.

      Skärm bild av fönstret Azure DevOps "Importera en git-lagringsplats".

      Bild 13: importera GitHub-lagrings platsen.Figure 13: Importing the GitHub repo.

    4. I pipelines väljer de skapa och skapar en ny pipeline med hjälp av Azure databaser git som källa från lagrings platsen.In Pipelines, they select Build and create a new pipeline by using Azure Repos Git as a source from the repository.

      Skärm bild av DevOps-fönstret för att skapa en ny pipeline.

      Bild 14: skapa en ny pipeline.Figure 14: Creating a new pipeline.

    5. De väljer tomt jobb.They select Empty job.

      Skärm bild av länken "tomt jobb" i Azure DevOps.

      Bild 15: startar med ett tomt jobb.Figure 15: Starting with an empty job.

    6. De väljer Hosted Linux Preview för att skapa pipelinen.They select Hosted Linux Preview for the build pipeline.

      Skärm bild av installation av pipeline för bygge i Azure DevOps.

      Bild 16: Konfigurera pipeline för bygge.Figure 16: Setting up the build pipeline.

    7. I steg 1 lägger de till en Docker -uppgift.In Step 1, they add a Docker Compose task. Den här uppgiften skapar Docker Compose.This task builds the Docker Compose.

      Skärm bild som visar hur du skapar en Docker-uppgift i Azure DevOps.

      Bild 17: skapa Docker Compose.Figure 17: Building the Docker Compose.

    8. De upprepar och lägger till en till Docker Compose-aktivitet.They repeat and add another Docker Compose task. Den här push-överför behållarna till behållar registret.This one pushes the containers to the container registry.

      Skärm bild som visar hur du lägger till en annan Docker-uppgift i Azure DevOps.

      Bild 18: lägga till en annan Docker-uppgift.Figure 18: Adding another Docker Compose task.

    9. De väljer den första aktiviteten för att bygga och konfigurera bygget med Azure-prenumeration, auktorisering och Container Registry.They select the first task to build and configure the build with the Azure subscription, authorization, and Container Registry.

      Skärm bild av skapandet och konfigurationen av bygget i Azure DevOps.

      Bild 19: skapa och konfigurera versionen.Figure 19: Building and configuring the build.

    10. De anger sökvägen till docker-compose.yaml filen i mappen src i lagrings platsen.They specify the path of the docker-compose.yaml file in the src folder of the repo. De väljer att bygga tjänst avbildningar och inkludera den senaste taggen.They choose to build service images and include the latest tag. När åtgärden ändras till Build service images (Skapa tjänstavbildningar) ändras namnet på Azure DevOps-aktiviteten till Build services automatically (Skapa tjänster automatiskt).When the action changes to Build service images, the name of the Azure DevOps task changes to Build services automatically.

      Skärm bild av olika uppgifter för att skapa information i Azure DevOps.

      Bild 20: aktiviteternas uppgifter.Figure 20: The specifics of the task.

    11. Nu konfigurerar de den andra Docker-aktiviteten (push-överföringen).Now, they configure the second Docker task (to push). De väljer prenumerationen och behållar registret ( smarthotelacreus2 ).They select the subscription and the container registry (smarthotelacreus2).

      Skärm bild av konfiguration av den andra Docker-aktiviteten i Azure DevOps.

      Bild 21: Konfigurera den andra Docker-aktiviteten.Figure 21: Configuring the second Docker task.

    12. De anger fil namnet Docker-Compose. yaml och väljer push service-avbildningar, inklusive den senaste taggen.They enter the docker-compose.yaml file name and select Push service images, including the latest tag. När åtgärden ändras till Push service images (Push-överför tjänstavbildningar) ändras namnet på Azure DevOps-aktiviteten till Push services automatically (Push-överför tjänster automatiskt).When the action changes to Push service images, the name of the Azure DevOps task changes to Push services automatically.

      Skärm bild av ändring av aktivitets namnet för Azure-DevOps.

      Bild 22: ändra aktivitets namnet för Azure-DevOps.Figure 22: Changing the Azure DevOps task name.

    13. När Azure DevOps-aktiviteter har kon figurer ATS sparar contoso build-pipeline och startar Bygg processen.With the Azure DevOps tasks configured, Contoso saves the build pipeline and starts the build process.

      Skärm bild som visar hur du startar Bygg processen i Azure DevOps.

      Bild 23: starta skapande processen.Figure 23: Starting the build process.

    14. De väljer byggjobbet för att kontrollera förloppet.They select the build job to check progress.

      Skärm bild för att kontrol lera Bygg förloppet i Azure DevOps.

      Bild 24: kontrollerar förloppet.Figure 24: Checking the progress.

    15. När bygget är klart visar behållar registret den nya databaser, som fylls i med de behållare som används av mikrotjänsterna.After the build finishes, the container registry shows the new repos, which are populated with the containers used by the microservices.

      Skärm bild som visar nya databaser när bygget är klart i Azure DevOps.

      Bild 25: Visa nya databaser när bygget är klart.Figure 25: Viewing new repos after the build finishes.

    Distribuera backend-infrastrukturenDeploy the back-end infrastructure

    När AKS-klustret har skapats och Docker-avbildningarna har byggts distribuerar Contosos administratörer resten av infrastrukturen som ska användas av backend-mikrotjänster.With the AKS cluster created and the Docker images built, Contoso admins now deploy the rest of the infrastructure that will be used by back-end microservices.

    • Anvisningarna i det här avsnittet använder SmartHotel360-backend- lagrings platsen.Instructions in this section use the SmartHotel360-Backend repo.
    • I /deploy/k8s/arm mappen finns det ett enda skript för att skapa alla objekt.In the /deploy/k8s/arm folder, there's a single script to create all items.

    Administratörerna distribuerar infrastrukturen på följande sätt:The admins deploy the infrastructure as follows:

    1. De öppnar en kommando tolk för utvecklare och använder sedan kommandot az login för Azure-prenumerationen.They open a developer command prompt and then use the command az login for the Azure subscription.

    2. De använder deploy.cmd filen för att distribuera Azure-resurserna i ContosoRG resurs gruppen och East US 2 regionen genom att skriva följande kommando:They use the deploy.cmd file to deploy the Azure resources in the ContosoRG resource group and East US 2 region by typing the following command:

      .\deploy.cmd azuredeploy ContosoRG -c eastus2

      Skärm bild av distribution av Server delen.

      Bild 26: Distribuera Server delen.Figure 26: Deploying the back end.

    3. I Azure Portal fångar de upp anslutnings strängen för varje databas för senare användning.In the Azure portal, they capture the connection string for each database for later use.

      Skärm bild som visar anslutnings strängen för varje databas.

      Bild 27: fångar anslutnings strängen för varje databas.Figure 27: Capturing the connection string for each database.

    Skapa serverdelens distributionspipelineCreate the back-end release pipeline

    Contosos administratörer gör nu följande:Now, Contoso admins do the following:

    • Distribuera Ingress-kontrollanten NGINX för att tillåta inkommande trafik till tjänsterna.Deploy the NGINX ingress controller to allow inbound traffic to the services.
    • Distribuera mikrotjänsterna till AKS-klustret.Deploy the microservices to the AKS cluster.
    • Som ett första steg uppdaterar administratörer anslutnings strängarna till mikrotjänster med hjälp av Azure-DevOps.As a first step, admins update the connection strings to the microservices by using Azure DevOps. De konfigurerar sedan en ny Azure DevOps release-pipeline för att distribuera mikrotjänsterna.They then configure a new Azure DevOps release pipeline to deploy the microservices.
    • Anvisningarna i det här avsnittet använder SmartHotel360-backend- lagrings platsen.The instructions in this section use the SmartHotel360-Backend repo.
    • Några av konfigurations inställningarna (till exempel Active Directory B2C) beskrivs inte i den här artikeln.Some of the configuration settings (for example, Active Directory B2C) aren't covered in this article. Mer information om de här inställningarna finns i tidigare nämnda SmartHotel360-Backend lagrings platsen.For more information about these settings, review the previously mentioned SmartHotel360-Backend repo.

    Administratörerna skapar pipelinen:The admins create the pipeline:

    1. I Visual Studio uppdaterar de filen /deploy/k8s/config_local. yml med den databas anslutnings information som de noterade tidigare.In Visual Studio, they update the /deploy/k8s/config_local.yml file with the database connection information that they noted earlier.

      Skärm bild som visar knappen "ny pipeline" i Visual Studio.

      Bild 28: databas anslutningar.Figure 28: Database connections.

    2. De öppnar Azure DevOps och väljer sedan + ny pipeline i fönstret utgåvor i SmartHotel360-projektet.They open Azure DevOps and, in the SmartHotel360 project, they select + New pipeline on the Releases pane.

      Skärm bild som visar knappen "ny pipeline" i Azure DevOps.

      Bild 29: skapa en ny pipeline.Figure 29: Creating a new pipeline.

    3. De väljer Tomt jobb för att starta pipelinen utan mall.They select Empty Job to start the pipeline without a template.

    4. De anger namn på faser och pipelines.They provide the stage and pipeline names.

      Skärm bild som visar skapandet av ett scen namn i Azure DevOps.

      Bild 30: scenens namn.Figure 30: The stage name.

      Skärm bild som visar skapandet av ett pipelines-namn i Azure DevOps.

      Bild 31: namnet på pipelinen.Figure 31: The pipeline name.

    5. De lägger till en artefakt.They add an artifact.

      Skärm bild som visar hur du lägger till en artefakt i Azure DevOps.

      Figur 32: lägga till en artefakt.Figure 32: Adding an artifact.

    6. De väljer git som käll typ och anger projektet, källan och huvud grenen för SmartHotel360-programmet.They select Git as the source type and specify the project, source, and main branch for the SmartHotel360 application.

      Skärm bild av fönstret "Lägg till en artefakt" med git som typ av källa.

      Bild 33: fönstret artefakt inställningar.Figure 33: The artifact settings pane.

    7. De väljer aktivitetslänken.They select the task link.

      Skärm bild som visar aktivitets länken som är markerad i Azure DevOps.

      Figur 34: aktivitets länken.Figure 34: The task link.

    8. De lägger till en ny Azure PowerShell-aktivitet så att de kan köra ett PowerShell-skript i en Azure-miljö.They add a new Azure PowerShell task so that they can run a PowerShell script in an Azure environment.

      Skärm bild som visar hur du lägger till en ny PowerShell-uppgift i Azure.

      Figur 35: lägga till en ny PowerShell-uppgift.Figure 35: Adding a new PowerShell task.

    9. De väljer Azure-prenumerationen för aktiviteten och väljer deploy.ps1 skriptet från git-lagrings platsen.They select the Azure subscription for the task and select the deploy.ps1 script from the Git repo.

      Skärm bild som visar hur du väljer ett skript som ska köras från git-lagrings platsen.

      Bild 36: kör skriptet.Figure 36: Running the script.

    10. De lägger till argument i skriptet.They add arguments to the script. Skriptet tar bort allt klusterinnehåll (förutom Ingress och Ingress-kontrollanten) och distribuerar mikrotjänsterna.The script will delete all cluster content (except ingress and ingress controller), and deploy the microservices.

      Skärm bild som visar argument som ska läggas till i skriptet.

      Figur 37: lägga till argument i skriptet.Figure 37: Adding arguments to the script.

    11. De ställer in önskad Azure PowerShell version till den senaste versionen och sparar pipelinen.They set the preferred Azure PowerShell version to the latest version, and save the pipeline.

    12. De går tillbaka till fönstret skapa en ny version och skapar en ny version manuellt.They go back to the Create a new release pane and manually create a new release.

      Skärm bild av fönstret "skapa en ny utgåva".

      Bild 38: skapa en ny version manuellt.Figure 38: Manually creating a new release.

    13. När de har skapat versionen väljer de den och väljer distribuera under åtgärder.After they create the release, they select it and, under Actions, they select Deploy.

      Skärm bild som markerar knappen distribuera för distribution av en version.

      Bild 39: Distribuera en version.Figure 39: Deploying a release.

    14. När distributionen är klar kör de följande kommando för att kontrol lera status för tjänsterna med hjälp av Azure Cloud Shell: kubectl get services .When the deployment is complete, they run the following command to check the status of services, using the Azure Cloud Shell: kubectl get services.

    Steg 3: etablera klient dels tjänsterStep 3: Provision front-end services

    Contoso-administratörer måste distribuera den infrastruktur som ska användas av klient program.Contoso admins need to deploy the infrastructure that will be used by the front-end applications. De skapar:They create:

    • En Blob Storage-behållare för att lagra PET-bilderna.A Blob storage container to store the pet images.
    • En Azure Cosmos DB databas för att lagra dokument som innehåller information om sällskaps djur.An Azure Cosmos DB database to store documents containing pet information.
    • API för visuellt innehåll för webbplatsen.The Computer Vision API for the website.

    Anvisningarna för det här avsnittet använder lagrings platsen för SmartHotel360-webbplats .Instructions for this section use the SmartHotel360-website repo.

    Skapa Blob Storage-containrarCreate Blob storage containers

    1. I Azure Portal öppnar administratörer det lagrings konto som skapades och väljer sedan blobbar.In the Azure portal, the admins open the storage account that was created, and then select Blobs.

    2. De skapar en ny behållare Pets med namnet med den offentliga åtkomst nivån som anges för behållaren.They create a new container named Pets with the public-access level set for the container. Användarna kommer att överföra bilderna på sina husdjur till den här containern.Users will upload their pet photos to this container.

      Skärm bild som visar hur du skapar en ny behållare i Azure Portal.

      Bild 40: skapa en ny behållare.Figure 40: Creating a new container.

    3. De skapar en andra ny behållare med namnet settings .They create a second new container named settings. En fil med alla inställningar för appen på klientsidan kommer att placeras i den här containern.A file with all the front-end app settings will be placed in this container.

      Skärm bild som visar hur du skapar en andra ny behållare i Azure Portal.

      Bild 41: skapa en andra behållare.Figure 41: Creating a second container.

    4. De samlar in åtkomst informationen för lagrings kontot i en textfil för framtida bruk.They capture the access details for the storage account in a text file for future reference.

      Skärm bild av en text fil som fångar in åtkomst information.

      Bild 42: en text fil som fångar in åtkomst information.Figure 42: A text file capturing access details.

    Etablera en Azure Cosmos DB databasProvision an Azure Cosmos DB database

    Contoso-administratörer etablerar en Azure Cosmos DB databas som ska användas för sällskaps djurs information.Contoso admins provision an Azure Cosmos DB database to be used for pet information.

    1. De skapar en Azure Cosmos DB -databas på Azure Marketplace.They create an Azure Cosmos DB database in Azure Marketplace.

      Skärm bild som visar skapandet av en Azure Cosmos DB-databas på Azure Marketplace.

      Bild 43: skapa en Azure Cosmos DB databas.Figure 43: Creating an Azure Cosmos DB database.

    2. De anger ett namn contososmarthotel , väljer SQL-API och placerar det i produktions resurs gruppen ContosoRG i huvud regionen East US 2 .They specify a name contososmarthotel, select the SQL API, and place it in the production resource group ContosoRG in the main region East US 2.

      Skärm bild av Azure Cosmos DB databasens namn och andra inställningar.

      Bild 44: namnge en Azure Cosmos DB databas.Figure 44: Naming an Azure Cosmos DB database.

    3. De lägger till en ny samling i databasen med standardkapacitet och standarddataflöde.They add a new collection to the database, with default capacity and throughput.

      Skärm bild av fönstret Lägg till samling för Azure Cosmos DB.

      Figur 45: lägga till en ny samling i databasen.Figure 45: Adding a new collection to the database.

    4. De noterar anslutnings informationen för databasen för framtida bruk.They note the connection information for the database for future reference.

      Skärm bild av anslutnings informationen för den Azure Cosmos DB databasen.

      Bild 46: databasens anslutnings information.Figure 46: The connection information for the database.

    Etablera API för visuellt innehållProvision the Computer Vision API

    Contosos administratörer etablerar API:et för Visuellt innehåll.Contoso admins provision the Computer Vision API. API: et anropas av funktionen för att utvärdera bilder som överförs av användarna.The API will be called by the function, to evaluate pictures that are uploaded by users.

    1. Administratörer skapar en visuellt innehåll -instans i Azure Marketplace.The admins create a Computer Vision instance in Azure Marketplace.

      Skärm bild som visar hur du skapar en ny instans av dator vision i Azure Marketplace.

      Figur 47: en ny instans i Azure Marketplace.Figure 47: A new instance in Azure Marketplace.

    2. De etablerar API ( smarthotelpets ) i produktions resurs gruppen ContosoRG i huvud regionen ( East US 2 ).They provision the API (smarthotelpets) in the production resource group ContosoRG, in the main region (East US 2).

      Skärm bild av konfiguration av ett API i en produktions resurs grupp.

      Bild 48: att tillhandahålla ett API i en produktions resurs grupp.Figure 48: Provisioning an API in a production resource group.

    3. De sparar anslutningsinställningarna för API:et till en textfil för senare användning.They save the connection settings for the API to a text file for later reference.

      Skärm bild av hur du sparar API: ns anslutnings inställningar till en textfil.

      Bild 49: sparar anslutnings inställningar för ett API.Figure 49: Saving an API's connection settings.

    Etablera Azure-webbappenProvision the Azure web app

    Contoso-administratörer etablerar webbappen med hjälp av Azure Portal.Contoso admins provision the web app by using the Azure portal.

    1. De väljer Webbapp på portalen.They select Web App in the portal.

      Skärm bild av att välja en webbapp i Azure Portal.

      Bild 50: välja webbapp.Figure 50: Selecting the web app.

    2. De tillhandahåller ett webb program namn ( smarthotelcontoso ), kör det i Windows och placerar det i produktions resurs gruppen ContosoRG .They provide a web app name (smarthotelcontoso), run it on Windows, and place it in the production resource group ContosoRG. De skapar en ny Application Insights-instans för program övervakning.They create a new Application Insights instance for application monitoring.

      Skärm bild av ett webb program namn och annan information.

      Bild 51: namnet på webb programmet.Figure 51: The web app name.

    3. När de är klara bläddrar administratörerna till programmets adress för att kontrol lera om det har skapats korrekt.After they're done, the admins browse to the address of the application to check on whether it has been created successfully.

    4. I Azure Portal skapar de en mellanlagringsplats för koden.In the Azure portal, they create a staging slot for the code. Pipelinen kommer att distribueras till den här platsen.The pipeline will be deployed to this slot. Den här metoden säkerställer att koden inte sätts i produktion förrän administratörer utför en version.This approach ensures that code isn't put into production until the admins perform a release.

      Skärm bild som visar hur du lägger till ett mellanlagringsplatss-fack.

      Figur 52: lägga till ett mellanlagringsplatss-fack.Figure 52: Adding a web app staging slot.

    Etablera Function-appenProvision the function app

    I Azure Portal etablerar contoso-administratörer appen function.In the Azure portal, Contoso admins provision the function app.

    1. De väljer Funktionsapp.They select Function App.

      Skärm bild som visar hur en Function-app skapas.

      Figur 53: välja Function-appen.Figure 53: Selecting the function app.

    2. De anger ett namn för Function-appen ( smarthotelpetchecker ).They provide a name for the function app (smarthotelpetchecker). De placerar Function-appen i produktions resurs gruppen ( ContosoRG ).They place the function app in the production resource group (ContosoRG). De anger värd platsen för förbruknings planen och placerar Function-appen i East US 2 regionen.They set the hosting place to Consumption Plan, and place the function app in the East US 2 region. Ett nytt lagrings konto skapas tillsammans med en Application Insights instans för övervakning.A new storage account is created along with an Application Insights instance for monitoring.

      Skärm bild som visar funktions appens inställningar.

      Bild 54: funktionen för appens inställningar.Figure 54: Function app settings.

    3. När du har distribuerat Function-appen bläddrar administratörerna till adressen för att kontrol lera att den har skapats.After they've deployed the function app, the admins browse to its address to verify that it has been created successfully.

    Steg 4: Konfigurera klient delens pipelineStep 4: Set up the front-end pipeline

    Contosos administratörer skapar två olika projekt för klientsidan.Contoso admins create two different projects for the front-end site.

    1. De skapar ett projekt i Azure DevOps SmartHotelFrontend .In Azure DevOps, they create a project SmartHotelFrontend.

      Skärm bild av skapandet av ett klient dels projekt.

      Bild 55: skapa ett klient dels projekt.Figure 55: Creating a front-end project.

    2. De importerar Git-lagringsplatsen för SmartHotel360-klientdelen till det nya projektet.They import the SmartHotel360 front end Git repository into the new project.

    3. För Function-appen skapar de ett annat Azure DevOps-projekt ( SmartHotelPetChecker ) och importerar petchecker git-lagringsplatsen till det här projektet.For the function app, they create another Azure DevOps project (SmartHotelPetChecker) and import the petchecker git repository into this project.

    Konfigurera webbappenConfigure the web app

    Nu konfigurerar Contosos administratörer webbappen så att den använder Contoso-resurser.Now Contoso admins configure the web app to use Contoso resources.

    1. Administratörerna ansluter till Azure DevOps-projektet och klonar lagrings platsen lokalt till utvecklings datorn.The admins connect to the Azure DevOps project and clone the repository locally to the development machine.

    2. I Visual Studio öppnar de mappen för att visa lagringsplatsens filer.In Visual Studio, they open the folder to show all the files in the repo.

      Skärm bild av Visual Studio som visar en mapp med alla filer i lagrings platsen.

      Bild 56: Visa alla filer i lagrings platsen.Figure 56: Viewing all files in the repo.

    3. De uppdaterar konfigurationsändringarna efter behov.They update the configuration changes as required.

      • När webbappen startar söker den efter SettingsUrl appens inställning.When the web app starts up, it looks for the SettingsUrl app setting.
      • Den här variabeln måste innehålla en URL som pekar på en konfigurations fil.This variable must contain a URL that points to a configuration file.
      • Som standard är inställningen som används en offentlig slut punkt.By default, the setting that's used is a public endpoint.
    4. De uppdaterar /config-sample.json/sample.json filen.They update the /config-sample.json/sample.json file.

      • Det här är konfigurations filen för webbplatsen när den offentliga slut punkten används.This is the configuration file for the web when it uses the public endpoint.
      • De redigerar urls och- pets_config avsnitten med värdena för AKS API-slutpunkter, lagrings konton och Azure Cosmos DB databas.They edit the urls and pets_config sections with the values for the AKS API endpoints, storage accounts, and Azure Cosmos DB database.
      • URL:erna ska matcha DNS-namnet för den nya webbappen som Contoso skapar.The URLs should match the DNS name of the new web app that Contoso will create.
      • För contoso är detta smarthotelcontoso.eastus2.cloudapp.azure.com .For Contoso, this is smarthotelcontoso.eastus2.cloudapp.azure.com.

      Skärm bild av. JSON-inställningarna i Visual Studio.

      Bild 57:. JSON-inställningar.Figure 57: The .json settings.

    5. När de har uppdaterat filen byter administratörer namn på den smarthotelsettingsurl och laddar upp den till blob-lagringen som de skapade tidigare.After they update the file, the admins rename it smarthotelsettingsurl and upload it to the Blob storage they created earlier.

      Skärm bild av att byta namn på och ladda upp JSON-filen.

      Bild 58: byta namn på och ladda upp filen.Figure 58: Renaming and uploading the file.

    6. De väljer filen för att hämta URL:en.They select the file to get the URL. URL: en används av programmet när den hämtar konfigurationsfilerna.The URL is used by the application when it pulls down the configuration files.

      Skärm bild av webb adressen till den fil som används av programmet.

      Bild 59: programmets URL.Figure 59: The application URL.

    7. I appsettings.Production.js filen uppdaterar de SettingsURL till URL: en för den nya filen.In the appsettings.Production.json file, they update the SettingsURL to the URL of the new file.

      Skärm bild av uppdatering av URL: en till den nya filen.

      Bild 60: uppdaterar URL: en till den nya filen.Figure 60: Updating the URL to the new file.

    Distribuera webbplatsen till Azure App ServiceDeploy the website to Azure App Service

    Nu kan Contosos administratörer publicera webbplatsen.Contoso admins can now publish the website.

    1. De öppnar Azure dataDevOpss och SmartHotelFrontend väljer + ny pipeline i projektet i versioner och versioner.They open Azure DevOps and, in the SmartHotelFrontend project in Builds and Releases, they select + New pipeline.

    2. De väljer Git-lagringsplatsen för Azure DevOps som källa.They select Azure DevOps Git as a source.

    3. De väljer mallen ASP.NET Core.They select the ASP.NET Core template.

    4. De granskar pipelinen och kontrollerar att publicera webb projekt och zip-publicerade projekt är markerade.They review the pipeline and check to ensure that Publish Web Projects and Zip Published Projects are selected.

      Skärm bild av webb projektets inställningar för pipeliner.

      Bild 61: inställningar för pipeliner.Figure 61: Pipeline settings.

    5. I utlösare möjliggör de kontinuerlig integrering och lägger till huvud grenen.In Triggers, they enable continuous integration and add the main branch. Detta säkerställer att build-pipeline startar varje gång som lösningen har ny kod som allokeras till huvud grenen.This ensures that the build pipeline starts each time the solution has new code committed to the main branch.

      Skärm bild av aktivering av kontinuerlig integrering och tillägg av huvud grenen.

      Figur 62: aktivera kontinuerlig integrering.Figure 62: Enabling continuous integration.

    6. De väljer Spara och köa för att starta ett bygge.They select Save & Queue to start a build.

    7. När bygget är klart konfigurerar de en versions pipeline genom att använda Azure App service distribution.After the build finishes, they configure a release pipeline by using Azure App Service Deployment.

    8. De ger ett stadium namn, mellanlagring.They provide a stage name, Staging.

      Skärm bild av ett scen namn för miljön.

      Bild 63: namnge miljön.Figure 63: Naming the environment.

    9. De lägger till en artefakt och väljer den version som de har konfigurerat.They add an artifact and select the build that they've configured.

      Skärm bild som visar hur du lägger till en artefakt, med build som typ av källa.

      Figur 64: lägga till en artefakt.Figure 64: Adding an artifact.

    10. De väljer blixt ikonen på artefakten och ställer in kontinuerlig distribution till aktive rad.They select the lightning bolt icon on the artifact and then set continuous deployment to Enabled.

      Skärm bild som aktiverar kontinuerlig distribution.

      Bild 65: aktiverar kontinuerlig distribution.Figure 65: Enabling continuous deployment.

    11. I Miljö väljer de 1 jobb, 1 uppgift under staging (mellanlagring).In Environment, they select 1 job, 1 task under Staging.

    12. När du har valt prenumerationen och webbappens namn öppnar administratörer åtgärden distribuera Azure App Service .After selecting the subscription and web app name, the admins open the Deploy Azure App Service task. Distributionen har konfigurerats att använda distributionsplatsen staging (mellanlagring).The deployment is configured to use the staging deployment slot. Det innebär att kod för granskning och godkännande skapas automatiskt på den här platsen.This automatically builds code for review and approval in this slot.

      Skärm bild som visar hur du distribuerar webbappen till en plats.

      Bild 66: distribution till en plats.Figure 66: Deploying to a slot.

    13. I Pipeline lägger de till en ny fas.In the Pipeline, they add a new stage.

      Skärm bild av fliken pipelines och lägga till en ny fas.

      Figur 67: lägga till en ny fas.Figure 67: Adding a new stage.

    14. De väljer Azure App service distribution med plats och namnger sedan miljön.They select Azure App Service deployment with slot and then name the environment Prod.

    15. De väljer 1 jobb, 2 aktiviteter och väljer sedan prenumerationen, App Service-namnet och mellanlagringsplatsen .They select 1 job, 2 tasks and then select the subscription, the app service name, and the staging slot.

      Skärm bild som visar namn på miljön.

      Bild 68: namnge miljön.Figure 68: Naming the environment.

    16. De tar bort Deploy Azure App Service to Slot (Distribuera Azure App Service till plats) från pipelinen.They remove the Deploy Azure App Service to Slot from the pipeline. Detta placerades där i föregående steg.It was placed there by the previous steps.

      Skärm bild som visar borttagning av en plats från pipelinen.

      Figur 69: ta bort en plats från pipelinen.Figure 69: Removing a slot from the pipeline.

    17. De sparar pipelinen.They save the pipeline. I pipelinen väljer de Post-deployment conditions (Villkor efter distribution).On the pipeline, they select Post-deployment conditions.

      Skärm bild av knappen "krav efter distribution".

      Bild 70: villkor efter distribution.Figure 70: Post-deployment conditions.

    18. De aktiverar godkännanden efter distributionen och lägger sedan till ett dev-lead som god kännare.They enable Post-deployment approvals and then add a dev lead as the approver.

      Skärm bild av listan aktiverade god kännare efter distribution.

      Figur 71: lägga till en god kännare.Figure 71: Adding an approver.

    19. I pipeline för bygge kan administratörerna manuellt starta en version.In the build pipeline, the admins manually kick off a build. Detta utlöser den nya distributionspipelinen, som distribuerar webbplatsen till mellanlagringsplatsen.This triggers the new release pipeline, which deploys the site to the staging slot. För Contoso är URL:en för platsen https://smarthotelcontoso-staging.azurewebsites.net/.For Contoso, the URL for the slot is https://smarthotelcontoso-staging.azurewebsites.net/.

    20. När build-versionen har slutförts och versionen har distribuerats till facket skickar Azure DevOps ut utvecklings ledare för godkännande.After the build finishes and the release is deployed to the slot, Azure DevOps emails the dev lead for approval.

    21. Dev-leadet väljer Visa godkännande och kan godkänna eller avvisa begäran i Azure DevOps-portalen.The dev lead selects View approval and can approve or reject the request in the Azure DevOps portal.

      Skärm bild av länken för godkännande av "Godkänn eller neka" efter distributionen.

      Bild 72: en begäran om godkännande av väntande release.Figure 72: A pending release approval request.

    22. Dev-leadet gör en kommentar och godkänner.The dev lead makes a comment and approves. Detta börjar växla mellan mellanlagrings -och produktions platser och flyttar bygget till produktion.This starts swapping the staging and prod slots and moves the build into production.

      Skärm bild av godkännande och kommentarer efter distributionen.

      Figur 73: flytta bygget till produktion.Figure 73: Moving the build into production.

    23. Pipelinen slutför växlingen.The pipeline completes the swap.

      Skärm bild som visar status för build-distributionen.

      Bild 74: växlingen slutförs.Figure 74: Completing the swap.

    24. Teamet kontrollerar prod-platsen för att bekräfta att webbappen är i produktion på https://smarthotelcontoso.azurewebsites.net/.The team checks the prod slot to verify that the web app is in production at https://smarthotelcontoso.azurewebsites.net/.

    Distribuera PetChecker Function-appenDeploy the PetChecker function app

    Contoso-administratörer distribuerar programmet genom att göra följande:Contoso admins deploy the application by doing the following:

    1. De klonar lagringsplatsen lokalt till utvecklingsdatorn genom att ansluta till Azure DevOps-projektet.They clone the repository locally to the development machine by connecting to the Azure DevOps project.

    2. I Visual Studio öppnar de mappen för att visa lagringsplatsens filer.In Visual Studio, they open the folder to show all the files in the repo.

    3. De öppnar filen src/PetCheckerFunction/local.settings.jspå filen och lägger till appinställningar för lagring, Azure Cosmos DB-databasen och API för visuellt innehåll.They open the src/PetCheckerFunction/local.settings.json file and add the app settings for storage, the Azure Cosmos DB database, and the Computer Vision API.

      Skärm bild av appens inställningar i. JSON-filen i Visual Studio.

      Bild 75: Distribuera funktionen.Figure 75: Deploying the function.

    4. De genomför koden och synkroniserar tillbaka den till Azure DevOps.They commit the code and sync it back to Azure DevOps, pushing their changes.

    5. De lägger till en ny versions pipeline och väljer sedan Azure DevOps git för källan.They add a new build pipeline and then select Azure DevOps Git for the source.

    6. De väljer mallen ASP.NET Core (.NET Framework).They select the ASP.NET Core (.NET Framework) template.

    7. De accepterar standardvärdena för mallen.They accept the defaults for the template.

    8. Under utlösare väljer de aktiverar kontinuerlig integrering och väljer sedan Spara & kö för att starta en version.Under Triggers, they select Enable continuous integration and then select Save & Queue to start a build.

    9. När versionen har slutförts skapar den en versions pipeline och lägger till Azure App service distribution med plats.After the build succeeds, they build a release pipeline, adding Azure App Service deployment with slot.

    10. De namnger miljön och väljer sedan prenumerationen.They name the environment Prod and then select the subscription. De anger appens typ till Funktionsapp och App Service-namnet som smarthotelpetchecker .They set the App type to Function App and the app service name as smarthotelpetchecker.

      Skärm bild av app-typ och App Service-namn.

      Bild 76: Function-appen.Figure 76: The function app.

    11. De lägger till en artefakt, build.They add an artifact, Build.

      Skärm bild som visar hur du lägger till en artefakt med build-källtyp.

      Figur 77: lägga till en artefakt.Figure 77: Adding an artifact.

    12. De aktiverar kontinuerlig distributions utlösare och väljer sedan Spara.They enable Continuous deployment trigger and then select Save.

    13. De väljer Köa ny version för att köra hela CI/CD-pipelinen.They select Queue new build to run the full CI/CD pipeline.

    14. När funktionen har distribuerats visas den i Azure Portal med statusen körs.After the function is deployed, it appears in the Azure portal with the status Running.

      Skärm bild av Function-appen med statusen "körs".

      Bild 78: uppdaterar funktionens status.Figure 78: Updating the function's status.

    15. De bläddrar till hus djurs kontroll programmet, http://smarthotel360public.azurewebsites.net/pets för att kontrol lera att det fungerar korrekt.They browse to the pet checker application, at http://smarthotel360public.azurewebsites.net/pets, to verify that it's working properly.

    16. De väljer avataren för att ladda upp en bild.They select the avatar to upload a picture.

      Skärm bild av fönstret för att tilldela en bild till en avatar.

      Figur 79: tilldela en bild till en avatar.Figure 79: Assigning a picture to an avatar.

    17. Den första bilden som de vill kontrollera är av en liten hund.The first photo they want to check is of a small dog.

      Skärm bild som visar ett foto av en hund.

      Figur 80: kontrol lera fotot.Figure 80: Checking the photo.

    18. Programmet returnerar ett godkännande meddelande.The application returns an acceptance message.

      Skärm bild av ett godkännande meddelande.

      Bild 81: ett godkännande meddelande.Figure 81: An acceptance message.

    Granska distributionenReview the deployment

    Med de migrerade resurserna i Azure måste Contoso fullständigt operationalisera och skydda sin nya infrastruktur.With the migrated resources in Azure, Contoso now needs to fully operationalize and secure the new infrastructure.

    SäkerhetSecurity

    Säkerhetskopiering och haveriberedskapBackups and disaster recovery

    Licensierings- och kostnadsoptimeringLicensing and cost optimization

    • När alla resurser har distribuerats bör Contoso tilldela Azure-taggar baserat på deras infrastrukturplanering.After all resources are deployed, Contoso should assign Azure tags based on their infrastructure planning.
    • All licensiering är inbyggd i kostnaden för de PaaS-tjänster som Contoso använder.All licensing is built into the cost of the PaaS services that Contoso is consuming. Detta kommer att dras av från Enterprise-avtal.This will be deducted from the Enterprise Agreement.
    • Contoso aktiverar Azure Cost Management + fakturering för att hjälpa dig att övervaka och hantera Azure-resurser.Contoso will enable Azure Cost Management + Billing to help monitor and manage the Azure resources.

    SlutsatsConclusion

    I den här artikeln bygger contoso upp SmartHotel360-programmet i Azure.In this article, Contoso rebuilds the SmartHotel360 application in Azure. Den lokala program varan på klient sidan återskapas för Azure App Service webbappar.The on-premises application front-end VM is rebuilt for Azure App Service web apps. Programmets Server del har skapats med mikrotjänster som distribueras till behållare som hanteras av AKS.The application back end is built by using microservices that are deployed to containers managed by AKS. Contosos förbättrade funktioner med ett sällskaps foto program.Contoso enhanced functionality with a pet photo application.

    Föreslagna färdigheterSuggested skills

    Microsoft Learn är en ny metod för inlärning.Microsoft Learn is a new approach to learning. Det är inte helt enkelt att förbereda sig för de nya ansvarsområdena som medföljer vid en övergång till molnet.Readiness for the new skills and responsibilities that come with cloud adoption doesn't come easily. Microsoft Learn erbjuder en mer givande metod för konkret inlärning som hjälper er att uppnå era mål snabbare.Microsoft Learn provides a more rewarding approach to hands-on learning that helps you achieve your goals faster. Med Microsoft Learn kan du tjäna poäng, öka med nivåer och få mer.With Microsoft Learn, you can earn points, rise through levels, and achieve more.

    Här följer två exempel på skräddarsydda utbildnings vägar på Microsoft Learn som överensstämmer med contoso SmartHotel360-programmet i Azure.Here are two examples of tailored learning paths on Microsoft Learn that align with the Contoso SmartHotel360 application in Azure.

    • Distribuera en webbplats till Azure med Azure App Service: Genom att skapa webbappar i Azure kan du enkelt publicera och hantera din webbplats utan att behöva arbeta med de underliggande servrarna, lagrings enheterna eller nätverks resurserna.Deploy a website to Azure with Azure App Service: By creating web apps in Azure, you can publish and manage your website easily without having to work with the underlying servers, storage, or network assets. I stället kan du fokusera på dina webbplats funktioner och förlita dig på den robusta Azure-plattformen för att ge säker åtkomst till din webbplats.Instead, you can focus on your website features and rely on the robust Azure platform to help provide secure access to your site.

    • Bearbeta och klassificera avbildningar med Azure-tjänsterna för kognitiv vision: Azure Cognitive Services erbjuder inbyggda funktioner för att aktivera funktioner för dator funktioner i dina program.Process and classify images with the Azure Cognitive Vision Services: Azure Cognitive Services offers prebuilt functionality to enable computer vision functionality in your applications. Lär dig hur du använder Azures vision Services för att identifiera ansikten, tagga och klassificera bilder och identifiera objekt.Learn how to use the Azure Cognitive Vision Services to detect faces, tag and classify images, and identify objects.