Dela via


Skapa molnbaserade lösningar

När planeringen är klar är nästa fas att skapa och konfigurera lösningen i en utvecklingsmiljö, följa bästa praxis och säkerställa kvalitet genom testning. En molnbaserad lösning använder skalbara, motståndskraftiga och observerbara arkitekturmönster för att maximera fördelarna med Azure-tjänster. Att bygga i en icke-produktionsmiljö med starka metoder för testning och automatisering säkerställer kvalitet och beredskap för produktionsdistribution.

Utveckla nya molnbaserade lösningar

Molnbaserad utveckling kräver en strukturerad metod som integrerar kvalitetsmetoder från början. Den här vägledningen hjälper dig att skapa tillförlitliga, säkra och skalbara lösningar genom beprövade utvecklingsmetoder.

Tillämpa Well-Architected Framework-principer under utveckling

En molnbaserad lösning drar nytta av konsekvent tillämpning av waf-principerna (Well-Architected Framework) Well-Architected Framework (WAF) innehåller viktiga principer som vägleder effektiv molnbaserad utveckling. Integrera dessa fem pelare i din utvecklingsprocess för att skapa robusta program som fungerar bra i produktionen.

Utveckla lösningar i en icke-produktionsmiljö

  1. Skapa utvecklingsmiljöer som speglar produktionskonfigurationer. Konfigurera icke-produktionsmiljöer (utveckling, test, QA) som nära speglar produktionskonfigurationen. Ju närmare testmiljöerna är för prod, desto mer förtroende har du att saker fungerar vid lanseringen. Den här metoden är särskilt viktig när du lägger till nya funktioner i en befintlig arbetsbelastning.

  2. Använd realistiska datauppsättningar som representerar produktionsdatavolymer. Testa med data som matchar storleken och komplexiteten för produktionsarbetsbelastningar. Stora datamängder avslöjar prestandaflaskhalsar och skalningsproblem som små testdata missar. Anonymisera produktionsdata eller generera syntetiska data som bevarar de statistiska egenskaperna för verkliga data.

  3. Implementera kostnadskontroller för icke-produktionsmiljöer. Använd Azure DevTest Labs eller resursschemaläggning för att automatiskt starta och stoppa resurser när de inte används. Tillämpa lämpliga tjänstnivåer för utvecklingsarbetsbelastningar och implementera utgiftsgränser för att förhindra oväntade kostnader samtidigt som testeffektiviteten bibehålls.

Mer information finns i Konfigurera testmiljö i WAF.

Implementera ändringar med hjälp av källkontroll och CI/CD

  1. Lagra all kod och konfiguration på en Git-lagringsplats. Spåra programkod, infrastrukturmallar, distributionsskript och konfigurationsfiler i versionskontroll. Den här metoden ger en fullständig historik över ändringar och möjliggör samarbete mellan teammedlemmar.

  2. Bryt upp utvecklingsarbetet i små, frekventa kommandon. Slutför funktionsutvecklingen i små steg som kan sammanfogas och testas oberoende av varandra. Den här metoden minskar integrationskonflikter och gör det lättare att identifiera orsaken till problem när de uppstår.

  3. Automatisera versioner och tester för varje kodändring. Konfigurera CI/CD-pipelines som automatiskt kompilerar kod, kör tester och distribuerar till icke-produktionsmiljöer när ändringar genomförs. Snabba feedbackslingor hjälper utvecklare att snabbt fånga upp och åtgärda problem.

  4. Använd funktionsflaggor för att styra lanseringen av nya funktioner. Implementera funktionsväxlingar som gör att du kan distribuera kod till produktion samtidigt som nya funktioner är inaktiverade tills de är redo för användare. Den här strategin skiljer distribution från lansering och möjliggör säkrare och mer kontrollerade distributioner.

Implementera övervakning under utveckling

  1. Integrera Azure Monitor och Application Insights i din programkod. Lägg till insamling av övervakningsdata för att spåra viktiga prestandamått, användarinteraktioner och systemhälsoindikatorer. Konfigurera dessa verktyg under utvecklingen för att säkerställa att de fungerar korrekt före produktionsdistributionen.

  2. Implementera strukturerad loggning i hela programmet. Använd konsekventa loggformat och inkludera kontextuell information som användar-ID, begärande-ID och affärsprocessidentifierare. Strukturera loggarna som JSON-objekt för att aktivera kraftfulla fråge- och analysfunktioner.

  3. Konfigurera aviseringar för viktiga mått och feltillstånd. Konfigurera proaktiv övervakning som meddelar dig när felfrekvensen ökar, svarstiderna försämras eller affärsmått hamnar utanför förväntade intervall. Definiera aviseringströsklar baserat på dina servicenivåmål och affärskrav.

  4. Skapa instrumentpaneler som ger insyn i systemets prestanda. Skapa övervakningsinstrumentpaneler som visar hälsotillståndet för ditt program, din infrastruktur och dina affärsprocesser. Inkludera mått som är viktiga för både tekniska team och affärsintressenter för att möjliggöra datadrivna beslut.

Mer information finns i Designa ett övervakningssystem och Instrumentera ett program i WAF.

Validera molnbaserade lösningar med testning

Omfattande testning verifierar att din lösning uppfyller affärskraven och fungerar tillförlitligt under verkliga förhållanden. Varje typ av testning har ett specifikt syfte för att säkerställa lösningens kvalitet.

  1. Kör funktionstestning från slutpunkt till slutpunkt för att verifiera affärsarbetsflöden. Testa fullständiga användarscenarier från autentisering via transaktionsavslut med realistiska data och interaktioner. Kontrollera att nya funktioner fungerar korrekt och att befintliga funktioner förblir intakta efter ändringar. Kör regressionstester för att fånga oönskade biverkningar av ny utveckling.

  2. Genomför testning av användargodkännande med affärsintressenter. Kontakta faktiska användare eller företagsrepresentanter för att verifiera att lösningen uppfyller deras behov och förväntningar. Låt dem testa viktiga scenarier i en UAT-miljö och ge feedback om användbarhet och funktioner. Få formellt godkännande från intressenter innan du fortsätter till produktionsdistributionen.

  3. Utför belastningstestning under realistiska förhållanden för att verifiera prestanda. Använd Azure Load Testing för att simulera förväntade användarvolymer och dataflöde. Utför tester vid högsta belastningsnivåer och över för att identifiera prestandaflaskhalsar och skalningsgränser. Mät svarstider, dataflöde och resursanvändning för att säkerställa att din lösning uppfyller prestandakraven.

  4. Kör säkerhets- och efterlevnadstestning för att identifiera säkerhetsrisker. Kör automatiserade säkerhetsgenomsökningar på programkod, containeravbildningar och infrastrukturkonfigurationer. Använd Microsoft Defender för molnet för att söka efter felkonfigurationer och efterlevnadsöverträdelser. Åtgärda sårbarheter med hög risk före distributionen och implementera kompenserande kontroller för godkända risker.

  5. Lös kritiska problem före produktionsdistributionen. Behandla testfaser som kvalitetsgrindar som måste godkännas innan du fortsätter. Åtgärda prestandaproblem som förhindrar att serviceavtal uppfylls, löser säkerhetsrisker som utgör en betydande risk. Åtgärda funktionella defekter som påverkar kärnaffärsprocesser. Dokumentera kända problem med låg prioritet med planer för framtida lösning.

  6. Underhåll automatiserade paket för enhets- och integreringstest. Skapa omfattande automatiserade tester som validerar enskilda komponenter och deras interaktioner med externa beroenden. Kör dessa tester som en del av DIN CI/CD-pipeline och efter varje felkorrigering för att förhindra regressioner. En robust automatiserad testsvit möjliggör säker kontinuerlig leverans i molnbaserade miljöer.

Skapa återanvändbar infrastruktur

När den moderniserade lösningen har klarat alla tester i icke-produktionsmiljön bör du avbilda infrastrukturkonfigurationen och konfigurationerna som kod, så att den enkelt kan replikeras i produktionsmiljöer och i framtida miljöer. Återanvändbar infrastruktur innebär att använda IaC-mallar (infrastructure-as-code) och automatisering för konsekvens och hastighet.

  1. Skapa IaC-mallar för beprövade konfigurationer. Ta den slutliga arkitekturen i testmiljön (som speglar vad du vill ha i prod) och kodifiera den. Använd Bicep-, Terraform- eller Azure Resource Manager-mallar för att definiera infrastrukturen. Parametrisera dessa mallar så att de kan återanvändas för olika steg, till exempel dev, test, prod med små justeringar som namn eller storlekar. Den här konfigurationen säkerställer att den produktionsmiljö som du skapar matchar det du har testat. Den undviker det mänskliga felet när du manuellt klickar på Azure-portalen för att skapa resurser. Det innebär också att om du behöver återskapa miljön, till exempel för haveriberedskap eller distribution till nya regioner, har du infrastrukturdistributionen klar. Mer information finns i CAF Manage – Manage code-based deployments (Hantera kodbaserade distributioner).

  2. Lagra mallar i versionskontroll. Kontrollera din infrastrukturkod till en Git-lagringsplats (tillsammans med programkoden eller på en separat lagringsplats). Använd GitHub eller Azure DevOps för att hantera IaC-tillgångar med rätt versionskontroll. Versionskontroll möjliggör kodgranskningar, stöd för teamsamarbete och uppmuntrar återanvändning av mallar mellan projekt. Den här metoden ger fullständig spårning för infrastrukturändringar och stöder återställningsfunktioner när problem uppstår.

  3. Automatisera installation av beroenden och konfiguration. Skapa skript eller pipelineuppgifter för att distribuera dessa mallar och hantera även nödvändiga konfigurations- eller seeding-uppgifter. Använd Azure Pipelines, GitHub Actionsför att köra distributionsjobb som tar IaC-mallen och distribuerar till en målprenumeration/resursgrupp. Automatisera installation av appberoenden, konfiguration av inställningar och hantering av hemligheter. Målet är miljökonfiguration med ett klick (eller ett kommando): från ingenting till en miljö som körs helt och hållet och som matchar det du har testat.

  4. Testa IaC och automation från slutpunkt till slutpunkt. Använd en separat Azure-prenumeration eller resursgrupp som sandbox-miljö och öva på att distribuera hela miljön från grunden med hjälp av dina mallar och skript. Testa att dina IaC-mallar, pipelines och skript kan skapa den fullständiga infrastrukturstacken från ingenting. Testa olika distributionsscenarier, inklusive inledande distribution, konfigurationsuppdateringar och återställningsprocedurer för att bekräfta att automatiseringen fungerar korrekt.

Mer information finns i Designa en leveranskedja för arbetsbelastningsutveckling och Infrastruktur som kod i WAF.

Skapa distributionsdokumentation

Även med automatisering är det viktigt att ha bra dokumentation kring distributioner för granskning, registrering av nya teammedlemmar och för framtida underhåll. Distributionsdokumentationen bör omfatta konfigurationer, procedurer och återställningssteg i läsbar form för människor.

  1. Dokumentkonfigurationsinställningar och -steg. Registrera alla miljöspecifika inställningar, anslutningssträngar, tjänstslutpunkter och säkerhetskonfigurationer i tillgänglig dokumentation. Inkludera stegvisa distributionsinstruktioner, kravkrav och valideringssteg efter distributionen. Den här dokumentationen möjliggör konsekventa distributioner och stöder felsökning när problem uppstår. Om en ny ingenjör var tvungen att implementera kunde de läsa det här dokumentet och följa med eller förstå pipeline-utdata.

  2. Uppdatera återgångs- och återställningsprocedurer. När du har slutfört dina tester formaliserar du steg för att återställa ändringar när distributionsproblem uppstår. Inkludera återställningsutlösare, procedurer för säkerhetskopiering och återställning av data och återställningsverifieringssteg. Testa rollback- och återställningsprocedurer regelbundet för att säkerställa att de fungerar korrekt när det behövs. Den här förberedelsen minskar stilleståndstiden.

  3. Samla in all den här dokumentationen på en central plats. Använd SharePoint, GitHub eller en wiki för att lagra den här informationen. Se till att teamet och supportpersonalen vet var de hittar den. I en stressincident är det en livräddare att ha tydliga dokument till hands.

Nästa steg