Distribuera en hybridapp med lokala data som skalar över molnet
Den här lösningsguiden visar hur du distribuerar en hybridapp som sträcker sig över både Azure och Azure Stack Hub och använder en enda lokal datakälla.
Genom att använda en hybridmolnlösning kan du kombinera efterlevnadsfördelarna med ett privat moln med skalbarheten i det offentliga molnet. Dina utvecklare kan också dra nytta av Microsofts ekosystem för utvecklare och tillämpa sina kunskaper på molnet och lokala miljöer.
Översikt och antaganden
Följ den här självstudien för att konfigurera ett arbetsflöde som gör att utvecklare kan distribuera en identisk webbapp till ett offentligt moln och ett privat moln. Den här appen kan komma åt ett dirigerbart nätverk som inte är internet som finns i det privata molnet. Dessa webbappar övervakas och när det finns en trafiktopp ändrar ett program DNS-posterna för att omdirigera trafik till det offentliga molnet. När trafiken sjunker till nivån före topparna dirigeras trafiken tillbaka till det privata molnet.
Den här självstudien omfattar följande uppgifter:
- Distribuera en hybridansluten SQL Server databasserver.
- Anslut en webbapp i globala Azure till ett hybridnätverk.
- Konfigurera DNS för skalning mellan moln.
- Konfigurera SSL-certifikat för skalning mellan moln.
- Konfigurera och distribuera webbappen.
- Skapa en Traffic Manager och konfigurera den för skalning mellan moln.
- Konfigurera Program Insights övervakning och aviseringar för ökad trafik.
- Konfigurera automatisk trafikväxling mellan globala Azure och Azure Stack Hub.
Tips
Microsoft Azure Stack Hub är en utökning av Azure. Azure Stack Hub ger dig flexibilitet och innovation inom molnbaserad databehandling i din lokala miljö, vilket möjliggör det enda hybridmoln som gör att du kan skapa och distribuera hybridappar var som helst.
Artikeln Om designöverväganden för hybridappar granskar grundpelare för programvarukvalitet (placering, skalbarhet, tillgänglighet, återhämtning, hanterbarhet och säkerhet) för att utforma, distribuera och använda hybridappar. Designövervägandena hjälper till att optimera hybridappdesignen, vilket minimerar utmaningarna i produktionsmiljöer.
Antaganden
Den här självstudien förutsätter att du har grundläggande kunskaper om globala Azure och Azure Stack Hub. Om du vill veta mer innan du påbörjar självstudien kan du läsa följande artiklar:
Den här självstudien förutsätter också att du har en Azure-prenumeration. Om du inte har någon prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Förutsättningar
Innan du startar den här lösningen måste du se till att du uppfyller följande krav:
En Azure Stack Development Kit (ASDK) eller en prenumeration på ett Azure Stack Hub integrerat system. Om du vill distribuera ASDK följer du anvisningarna i Distribuera ASDK med installationsprogrammet.
Din Azure Stack Hub ska ha följande installerat:
- Den Azure App Service. Arbeta med Azure Stack Hub operatör för att distribuera och konfigurera Azure App Service i din miljö. Den här självstudien App Service måste ha minst en (1) tillgänglig dedikerad arbetsroll.
- En Windows Server 2016 bild.
- En Windows Server 2016 med en Microsoft SQL Server bild.
- Lämpliga planer och erbjudanden.
- Ett domännamn för din webbapp. Om du inte har något domännamn kan du köpa ett från en domänleverantör som GoDaddy, Bluehost och InMotion.
Ett SSL-certifikat för din domän från en betrodd certifikatutfärdare som LetsEncrypt.
En webbapp som kommunicerar med en SQL Server databas och stöder Application Insights. Du kan ladda ned exempelappen dotnetcore-sqldb-tutorial från GitHub.
Ett hybridnätverk mellan ett virtuellt Azure-nätverk Azure Stack Hub virtuellt nätverk. Detaljerade anvisningar finns i Konfigurera hybridmolnanslutning med Azure och Azure Stack Hub.
En ci/CD-pipeline (kontinuerlig integrering/kontinuerlig distribution) med en privat byggaragent Azure Stack Hub. Detaljerade anvisningar finns i Konfigurera hybridmolnidentitet med Azure och Azure Stack Hub appar.
Distribuera en hybridansluten SQL Server databasserver
Logga in på Azure Stack Hub användarportalen.
På instrumentpanelenväljer du Marketplace.

I Marketplaceväljer du Computeoch sedan Mer. Under Merväljer du avbildningen Kostnadsfri licens SQL Server: SQL Server 2017 Developer Windows Server.

På Kostnadsfri SQL Server Licens: SQL Server 2017 Developer på Windows Serverväljer du Skapa.
I Grundläggande inställningar Konfigurera grundläggandeinställningar anger du ett Namn för den virtuella datorn (VM), ett användarnamn för SQL Server SA och ett lösenord för SA. I listrutan Prenumeration väljer du den prenumeration som du distribuerar till. För Resursgruppanvänder du Välj befintlig och lägger den virtuella datorn i samma resursgrupp som Azure Stack Hub webbappen.

Under Storlekväljer du en storlek för den virtuella datorn. I den här självstudien rekommenderar vi A2_Standard eller en DS2_V2_Standard.
Under Inställningar Konfigurera valfria funktionerkonfigurerar du följande inställningar:
Storage konto:Skapa ett nytt konto om du behöver ett.
Virtuellt nätverk:
Viktigt
Se till att SQL Server virtuella datorn är distribuerad i samma virtuella nätverk som VPN-gatewayerna.
Offentlig IP-adress:Använd standardinställningarna.
Nätverkssäkerhetsgrupp:(NSG). Skapa en ny NSG.
Tillägg och övervakning:Behåll standardinställningarna.
Diagnostiklagringskonto:Skapa ett nytt konto om du behöver ett.
Spara konfigurationen genom att välja OK.

Under SQL Server konfigurerardu följande inställningar:
För SQL anslutningväljer du Offentlig (Internet).
Behåll standardvärdet1433 för Port.
För SQL autentiseringväljer du Aktivera.
Anteckning
När du SQL autentisering bör den fyllas i automatiskt med den "SQLAdmin"-information som du konfigurerade i Grundläggande.
Behåll standardinställningarna för resten av inställningarna. Välj OK.

Granska VM-konfigurationenpå Sammanfattning och välj sedan OK för att starta distributionen.

Det tar lite tid att skapa den nya virtuella datorn. Du kan visa STATUS för dina virtuella datorer i Virtuella datorer.

Skapa webbappar i Azure och Azure Stack Hub
Det Azure App Service enklare att köra och hantera en webbapp. Eftersom Azure Stack Hub är konsekvent med Azure kan App Service köras i båda miljöerna. Du använder den här App Service som värd för din app.
Skapa webbappar
Skapa en webbapp i Azure genom att följa anvisningarna i Hantera en App Service plan i Azure. Se till att du lägger webbappen i samma prenumeration och resursgrupp som hybridnätverket.
Upprepa föregående steg (1) i Azure Stack Hub.
Lägg till väg för Azure Stack Hub
Den App Service på Azure Stack Hub måste vara dirigerbar från det offentliga Internet för att användarna ska få åtkomst till din app. Om din Azure Stack Hub är tillgänglig från Internet anteckningen av den offentliga IP-adressen eller URL:en för Azure Stack Hub-webbappen.
Om du använder en ASDK kan du konfigurera en statisk NAT-mappning för att exponera App Service utanför den virtuella miljön.
Anslut en webbapp i Azure till ett hybridnätverk
Webbappen måste vara ansluten till hybridnätverket mellan Azure och SQL Server-databasen i Azure Stack Hub för att kunna tillhandahålla anslutning mellan webbappen i Azure och Azure Stack Hub. Om du vill aktivera anslutning måste du:
- Konfigurera punkt-till-plats-anslutning.
- Konfigurera webbappen.
- Ändra den lokala nätverksgatewayen i Azure Stack Hub.
Konfigurera det virtuella Azure-nätverket för punkt-till-plats-anslutning
Den virtuella nätverksgatewayen på Azure-sidan av hybridnätverket måste tillåta att punkt-till-plats-anslutningar integreras med Azure App Service.
I Azure Portal går du till sidan för den virtuella nätverksgatewayen. Under Inställningarväljer du Punkt-till-plats-konfiguration.

Välj Konfigurera nu för att konfigurera punkt-till-plats.

På sidan Punkt-till-plats-konfiguration anger du det privata IP-adressintervall som du vill använda i Adresspool.
Anteckning
Se till att intervallet som du anger inte överlappar något av de adressintervall som redan används av undernät i de globala Azure Azure Stack Hub komponenterna i hybridnätverket.
Avmarkera IKEv2VPNunder Tunnel typ. Välj Spara för att slutföra konfigurationen av punkt-till-plats.

Integrera Azure App Service med hybridnätverket
Om du vill ansluta appen till det virtuella Azure-nätverket följer du anvisningarna i Gateway required VNet integration (Gateway som krävs för VNet-integrering).
Gå till Inställningar för App Service plan som är värd för webbappen. Under Inställningar väljer du Nätverk.

I VNET-integrationdu Klicka här för att hantera.

Välj det virtuella nätverk som du vill konfigurera. Under IP-ADRESSER DIRIGERADETILL VNET anger du IP-adressintervallet för det virtuella Azure-nätverket, Azure Stack Hub VNet och punkt-till-plats-adressutrymmena. Välj Spara för att verifiera och spara inställningarna.

Mer information om hur App Service integreras med virtuella Azure-nätverk finns i Integrera din app med en Azure Virtual Network.
Konfigurera Azure Stack Hub virtuella nätverket
Den lokala nätverksgatewayen i Azure Stack Hub virtuella nätverket måste konfigureras för att dirigera trafik från App Service punkt-till-plats-adressintervallet.
I Azure Stack Hub-portalen går du till Lokal nätverksgateway. Under Inställningar väljer du Konfiguration.

I Adressutrymmeanger du punkt-till-plats-adressintervallet för den virtuella nätverksgatewayen i Azure.

Välj Spara för att verifiera och spara konfigurationen.
Konfigurera DNS för skalning mellan moln
Genom att konfigurera DNS korrekt för molnappar kan användarna komma åt globala Azure och Azure Stack Hub instanser av din webbapp. DNS-konfigurationen för den här självstudien låter Azure Traffic Manager dirigera trafik när belastningen ökar eller minskar.
I den här Azure DNS du hantera DNS eftersom App Service inte fungerar.
Skapa underdomäner
Eftersom Traffic Manager förlitar sig på DNS-CNAAM:er behövs en underdomän för att korrekt dirigera trafik till slutpunkter. Mer information om DNS-poster och domänmappning finns i mappa domäner med Traffic Manager.
För Azure-slutpunkten skapar du en underdomän som användarna kan använda för att få åtkomst till webbappen. I den här självstudien kan använda app.northwind.com, men du bör anpassa det här värdet baserat på din egen domän.
Du måste också skapa en underdomän med en A-post för den Azure Stack Hub slutpunkten. Du kan använda azurestack.northwind.com.
Konfigurera en anpassad domän i Azure
- Lägg till app.northwind.com till Azure-webbappen genom att mappa ett CNAME till Azure App Service.
Konfigurera anpassade domäner i Azure Stack Hub
Lägg till azurestack.northwind.com värdnamn i webbappen Azure Stack Hub genom att mappa en A-post till Azure App Service. Använd den Internet-dirigerbara IP-adressen för App Service appen.
Lägg till app.northwind.com värdnamn i webbappen Azure Stack Hub genom att mappa en CNAME till Azure App Service. Använd det värdnamn som du konfigurerade i föregående steg (1) som mål för CNAME.
Konfigurera SSL-certifikat för skalning mellan moln
Det är viktigt att säkerställa att känsliga data som samlas in av webbappen är säkra under överföring till och när de lagras på SQL databasen.
Du konfigurerar dina Azure- och Azure Stack Hub för att använda SSL-certifikat för all inkommande trafik.
Lägga till SSL i Azure och Azure Stack Hub
Så här lägger du till SSL i Azure:
Kontrollera att SSL-certifikatet du får är giltigt för den underdomän som du skapade. (Det är okej att använda jokerteckencertifikat.)
I Azure Portal du anvisningarna i avsnitten Förbered webbappen och Binda SSL-certifikat i artikeln Binda ett befintligt anpassat SSL-certifikat till Azure Web Apps. Välj SNI-baserad SSL som SSL-typ.
Omdirigera all trafik till HTTPS-porten. Följ anvisningarna i avsnittet Framtvinga HTTPS i artikeln Binda ett befintligt anpassat SSL-certifikat till Azure Web Apps.
Så här lägger du till SSL Azure Stack Hub:
- Upprepa steg 1–3 som du använde för Azure med hjälp av Azure Stack Hub portalen.
Konfigurera och distribuera webbappen
Du konfigurerar appkoden för att rapportera telemetri till rätt Application Insights-instans och konfigurerar webbapparna med rätt anslutningssträngar. Mer information om Insights finns i Vad är Insights?
Lägga till Insights
Öppna webbappen i Microsoft Visual Studio.
Lägg till Insights i projektet för att överföra telemetrin som Application Insights använder för att skapa aviseringar när webbtrafiken ökar eller minskar.
Konfigurera dynamiska anslutningssträngar
Varje instans av webbappen använder olika metoder för att ansluta till SQL databasen. Appen i Azure använder den privata IP-adressen för den SQL Server virtuella datorn och appen i Azure Stack Hub använder den offentliga IP-adressen för den SQL Server virtuella datorn.
Anteckning
I ett Azure Stack Hub system bör den offentliga IP-adressen inte vara Internet-dirigerbar. På en ASDK är den offentliga IP-adressen inte dirigerbar utanför ASDK.
Du kan använda App Service miljövariabler för att skicka en annan anslutningssträng till varje instans av appen.
Öppna appen i Visual Studio.
Öppna Startup.cs och leta upp följande kodblock:
services.AddDbContext<MyDatabaseContext>(options => options.UseSqlite("Data Source=localdatabase.db"));Ersätt det tidigare kodblocket med följande kod, som använder en anslutningssträng som definierats i filen appsettings.json:
services.AddDbContext<MyDatabaseContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MyDbConnection"))); // Automatically perform database migration services.BuildServiceProvider().GetService<MyDatabaseContext>().Database.Migrate();
Konfigurera App Service appinställningar
Skapa anslutningssträngar för Azure och Azure Stack Hub. Strängarna ska vara samma, förutom de IP-adresser som används.
I Azure Azure Stack Hub lägger du till lämplig anslutningssträng som en appinställning i webbappen med som ett prefix i namnet.
Spara inställningarna för webbappen och starta om appen.
Aktivera automatisk skalning i globala Azure
När du skapar webbappen i en App Service miljö börjar den med en instans. Du kan automatiskt skala ut för att lägga till instanser för att tillhandahålla fler beräkningsresurser för din app. På samma sätt kan du automatiskt skala in och minska antalet instanser som appen behöver.
Anteckning
Du måste ha en App Service plan för att konfigurera utskalning och inskalning. Om du inte har någon plan kan du skapa en innan du påbörjar nästa steg.
Aktivera automatisk utskalning
I Azure Portal du listan App Service plan för de webbplatser som du vill skala ut och väljer sedan Skala ut (App Service plan).

Välj Aktivera autoskalning.

Ange ett namn för Autoskalningsinställningsnamn. För standardregeln för automatisk skalning väljer du Skala baserat på ett mått. Ange Instansgränser tillMinimum: 1, Maximum: 10och Standard: 1.

Välj + Lägg till en regel.
I Måttkällaväljer du Aktuell resurs. Använd följande villkor och åtgärder för regeln.
Kriterie
Under Tidsaggregering väljer du Medelvärde.
Under Måttnamnväljer du CPU-procent.
Under Operatorväljer du Större än.
- Ange Tröskelvärde till50.
- Ange Varaktighet till10.
Åtgärd
Under Åtgärdväljer du Öka antal med.
Ange Antal instanser till 2.
Ställ in Neds kyl nedtill 5.
Välj Lägg till.
Välj + Lägg till en regel.
I Måttkällaväljer du Aktuell resurs.
Anteckning
Den aktuella resursen innehåller ditt App Service plan namn/GUID och listrutan Resurstyp och Resurs är inte tillgänglig.
Aktivera automatisk inskalning
När trafiken minskar kan Azure-webbappen automatiskt minska antalet aktiva instanser för att minska kostnaderna. Den här åtgärden är mindre aggressiv än utskalning och minimerar påverkan på appanvändarna.
- Gå till standardskalningsvillkoret och välj sedan + Lägg till en regel. Använd följande villkor och åtgärder för regeln.
Kriterie
Under Tidsaggregering väljer du Medelvärde.
Under Måttnamnväljer du CPU-procent.
Under Operatorväljer du Mindre än.
- Ange Tröskelvärde till30.
- Ange Varaktighet till10.
Åtgärd
Under Åtgärdväljer du Minska antal med.
- Ange Antal instanser till 1.
- Ställ in Neds kyl nedtill 5.
Välj Lägg till.
Skapa en Traffic Manager och konfigurera skalning mellan moln
Skapa en Traffic Manager med hjälp av Azure Portal och konfigurera sedan slutpunkter för att aktivera skalning mellan moln.
Skapa Traffic Manager profil
Välj Skapa en resurs.
Välj Nätverk.
Välj Traffic Manager profil och konfigurera följande inställningar:
- I Namnanger du ett namn för din profil. Det här namnet måste vara unikt trafficmanager.net zonen och används för att skapa ett nytt DNS-namn (till exempel northwindstore.trafficmanager.net).
- För Routningsmetodväljer du viktad.
- För Prenumerationväljer du den prenumeration som du vill skapa profilen i.
- I Resursgruppskapar du en ny resursgrupp för den här profilen.
- I Resursgruppsplats väljer du plats för resursgruppen. Den här inställningen refererar till platsen för resursgruppen och har ingen inverkan Traffic Manager den profil som distribueras globalt.
Välj Skapa.

När den globala distributionen Traffic Manager din profil är klar visas den i listan över resurser för den resursgrupp som du skapade den under.
Lägga till Traffic Manager-slutpunkter
Sök efter den Traffic Manager som du skapade. Om du navigerade till resursgruppen för profilen väljer du profilen.
I Traffic Manager väljerdu Slutpunkterunder INSTÄLLNINGAR.
Välj Lägg till.
I Lägg till slutpunktanvänder du följande inställningar för Azure Stack Hub:
- För Typväljer du Extern slutpunkt.
- Ange ett Namn för slutpunkten.
- För Fullständigt kvalificerat domännamn (FQDN) eller IPanger du den externa URL:en för Azure Stack Hub webbappen.
- För Viktbehåller du standardvärdet, 1. Den här vikten resulterar i all trafik som går till den här slutpunkten om den är felfri.
- Lämna Lägg till som inaktiverat avmarkerat.
Välj OK för att spara Azure Stack Hub slutpunkten.
Nu ska du konfigurera Azure-slutpunkten.
I Traffic Manager väljerdu Slutpunkter.
Välj +Lägg till.
På Lägg till slutpunktanvänder du följande inställningar för Azure:
- För Typväljer du Azure-slutpunkt.
- Ange ett Namn för slutpunkten.
- För Målresurstypväljer du App Service.
- För Målresursväljer du Välj en apptjänst för att se en lista Web Apps i samma prenumeration.
- I Resurs väljer du den apptjänst som du vill lägga till som den första slutpunkten.
- För Viktväljer du 2. Den här inställningen resulterar i all trafik som går till den här slutpunkten om den primära slutpunkten är skadad, eller om du har en regel/avisering som omdirigerar trafik när den utlöses.
- Lämna Lägg till som inaktiverat avmarkerat.
Välj OK för att spara Azure-slutpunkten.
När båda slutpunkterna har konfigurerats visas de i Traffic Manager när du väljer Slutpunkter. Exemplet i följande skärmbild visar två slutpunkter, med status- och konfigurationsinformation för var och en.

Konfigurera övervakning Insights program och aviseringar i Azure
Azure Application Insights kan du övervaka din app och skicka aviseringar baserat på de villkor som du konfigurerar. Några exempel är: appen är inte tillgänglig, har fel eller visar prestandaproblem.
Du använder måtten Azure Application Insights för att skapa aviseringar. När de här aviseringarna utlöses växlar webbappens instans automatiskt från Azure Stack Hub till Azure för att skala ut och sedan tillbaka till Azure Stack Hub att skala in.
Skapa en avisering utifrån mått
I den Azure Portal går du till resursgruppen för den här självstudien och väljer instansen Program Insights för att öppna Program Insights.

Du använder den här vyn för att skapa en utskalningsavisering och en inskalningsavisering.
Skapa utskalningsaviseringen
Under KONFIGURERAväljer du Aviseringar (klassisk).
Välj Lägg till måttavisering (klassisk).
I Lägg tillregel konfigurerar du följande inställningar:
- För Namnanger du Burst i Azure Cloud.
- En Beskrivning är valfri.
- Under Källavisering påväljer du Mått.
- Under Villkorväljer du din prenumeration, resursgruppen för din Traffic Manager profil och namnet på Traffic Manager för resursen.
För Måttväljer du Begärandefrekvens.
För Villkorväljer du Större än.
För Tröskelvärdeanger du 2.
För Periodväljer du Under de senaste 5 minuterna.
Under Meddela via:
- Markera kryssrutan för E-postägare, deltagare och läsare.
- Ange din e-postadress för Ytterligare e-postadresser för administratörer.
Välj Spara på menyraden.
Skapa inskalningsaviseringen
Under KONFIGURERAväljer du Aviseringar (klassisk).
Välj Lägg till måttavisering (klassisk).
I Lägg tillregel konfigurerar du följande inställningar:
- För Namnanger du Skala tillbaka till Azure Stack Hub.
- En Beskrivning är valfri.
- Under Källavisering påväljer du Mått.
- Under Villkorväljer du din prenumeration, resursgruppen för din Traffic Manager profil och namnet på Traffic Manager för resursen.
För Måttväljer du Begärandefrekvens.
För Villkorväljer du Mindre än.
För Tröskelvärdeanger du 2.
För Periodväljer du Under de senaste 5 minuterna.
Under Meddela via:
- Markera kryssrutan för E-postägare, deltagare och läsare.
- Ange din e-postadress för Ytterligare e-postadresser för administratörer.
Välj Spara på menyraden.
Följande skärmbild visar aviseringar för utskalning och inskalning.

Omdirigera trafik mellan Azure och Azure Stack Hub
Du kan konfigurera manuellt eller automatiskt växling av webbappens trafik mellan Azure och Azure Stack Hub.
Konfigurera manuell växling mellan Azure och Azure Stack Hub
När webbplatsen når de tröskelvärden som du konfigurerar får du en avisering. Använd följande steg för att manuellt omdirigera trafik till Azure.
I Azure Portal väljer du din Traffic Manager profil.

Välj Slutpunkter.
Välj Azure-slutpunkten.
Under Statusväljer du Aktiveradoch sedan Spara.

På Slutpunkter för Traffic Manager väljer du Extern slutpunkt.
Under Statusväljer du Inaktiveradoch sedan Spara.

När slutpunkterna har konfigurerats går apptrafiken till din skalningsbaserade Azure-webbapp i stället för Azure Stack Hub webbappen.

Om du vill återställa flödet till Azure Stack Hub använder du föregående steg för att:
- Aktivera Azure Stack Hub slutpunkten.
- Inaktivera Azure-slutpunkten.
Konfigurera automatisk växling mellan Azure och Azure Stack Hub
Du kan också använda programövervakning Insights om appen körs i en serverlös miljö som tillhandahålls av Azure Functions.
I det här scenariot kan du konfigurera Application Insights att använda en webhook som anropar en funktionsapp. Den här appen aktiverar eller inaktiverar automatiskt en slutpunkt som svar på en avisering.
Använd följande steg som vägledning för att konfigurera automatisk trafikväxling.
Skapa en Azure-funktionsapp.
Skapa en HTTP-utlöst funktion.
Importera Azure-SDK:er för Resource Manager, Web Apps och Traffic Manager.
Utveckla kod för att:
- Autentisera till din Azure-prenumeration.
- Använd en parameter som växlar Traffic Manager för att dirigera trafik till Azure eller Azure Stack Hub.
Spara koden och lägg till funktionsappens URL med lämpliga parametrar i avsnittet Webhook i inställningarna för Insights programaviseringsregel.
Trafiken omdirigeras automatiskt när en Application Insights-avisering aktiveras.
Nästa steg
- Mer information om Azure Cloud Patterns finns i Designmönster för molnet.