Dela via


DevOps-verktygskedja

En DevOps-verktygskedja är en samling verktyg som gör det möjligt för DevOps-team att samarbeta under hela produktlivscykeln och ta itu med viktiga DevOps-grunder.

Verktygen som en DevOps-verktygskedja innehåller fungerar som en integrerad enhet för planering, kontinuerlig integrering, kontinuerlig leverans, drift, samarbete och feedback. Du kan granska några exempel på DevOps-tekniker i olika DevOps-steg i Definiera ditt DevOps-teknikekosystem.

Överväganden för DevOps-verktygskedja

  • DevOps processer kan redan användas i hela organisationen när du väljer en verktygskedja. Du bör hitta rätt balans mellan införandet av tekniker som passar ditt teams behov och målet att standardisera och undvika heterogena DevOps-ekosystem i hela organisationen.

  • Du kan använda olika typer av DevOps-verktygskedjor:

    • Allt-i-ett: Tillhandahåller en komplett lösning som kanske inte kan integreras med andra verktyg från tredje part. Allt-i-ett-verktygskedjor kan vara användbara för organisationer som påbörjar sin DevOps-resa. Exempel: Azure DevOps-verktygskedja med full stack.
    • Anpassad: Gör att team kan ta med och blanda befintliga verktyg som de känner till och redan har i bruk i den bredare DevOps-verktygskedjan. Integrering är viktigt för dessa typer av verktygskedjor för att undvika onödiga tidsväxlingar mellan skärmar, logga in på flera platser och ha utmaningen att dela information mellan verktyg. Exempel: Azure DevOps och GitHub-verktygskedjan.
  • Överväg att använda verktygskedjor som uppdateras regelbundet och som har hjälp när du behöver det via e-post eller onlineportal. Detta är ett krav för alla produkter eller tjänster som är på den kritiska vägen till marknaden.

Planerad

  • Överväg att använda ett verktyg som stöder metoder för kontinuerlig planering :
    • Versionsplanering
    • Epos- och funktionsidentifiering
    • Prioritering
    • Skattning
    • Definition av användarberättelse
    • Förfining av kvarvarande uppgifter
    • Sprintplanering
    • Daglig Scrum
    • Sprint recension
    • Återblick

Kontinuerlig integrering och kontinuerlig leverans

  • När du implementerar kontinuerlig integrering (CI)/Kontinuerlig leverans (CD) bör du överväga att använda ett verktyg som stöder:
    • Versionskontrollsystem. Allt i projektet måste checkas in på en lagringsplats för en enda versionskontroll som Git: kod, tester, databasskript, bygg- och distributionsskript och allt annat som behövs för att skapa, installera, köra och testa ditt program.
    • Förgreningsstrategi.
    • Automatiserade versioner.
  • Observera att ditt val av lagringsplats också påverkas av kraven på datasuveränitet/hemvist. Om du behöver dina data lokalt i andra länder/regioner än USA behöver du Azure DevOps-lagringsplatser när GitHub Repos inte kan användas.
  • Om du vill minimera mängden manuell konfiguration som krävs för att etablera resurser kan du överväga att använda Infrastruktur som kod (IaC). Med IaC kan du tillämpa programvaruteknikmetoder som testning och versionshantering, vilket gör infrastruktur och distributioner automatiserade, konsekventa och repeterbara. Behåll skript och mallar under källkontroll precis som andra kod som du underhåller.
  • Använd verktyg för kodgenomsökning som hjälper dig att identifiera kodfel så snart som möjligt. Inkludera kontroller före distributionen för att verifiera och bekräfta ändringar före någon distribution (exempel: "what-if") funktion.
  • CI/CD-verktyg påskyndar tiden till marknaden för din produkt. Verktyg som gör att du kan parallellisera uppgifter och dra nytta av elastisk skalbarhet på molnbaserad infrastruktur förbättrar prestandan för din CI/CD-process.
  • Överväg att använda CI/CD-verktygsfunktioner som stöder måttet på DevOps-prestanda. Instrumentpaneler och rapportering kan spåra aspekter av din utvecklingsprocess som ledtid, cykeltid, arbetshastighet och så vidare.

Kontinuerliga åtgärder

Kontinuerliga åtgärder är ett fokus som hjälper organisationer att upprätthålla kontinuiteten i utdata mellan interna system och kunder genom oavbruten leverans av kritiska tjänster eller funktioner. Målen med kontinuerliga åtgärder är:

  • För att minska eller eliminera behovet av planerade driftstopp eller avbrott, till exempel schemalagt underhåll, kapacitetsoptimering och distribution.
  • För att öka systemens tillförlitlighet och återhämtning i tre aspekter, med människor, processer och verktyg.

Använd molnbaserade verktyg för att:

  • Övervaka viktiga mått för tjänstprestanda och tillgänglighet.
  • Få digital erfarenhet och kundinsikter.
  • Generera intelligensdrivna svar för incidenter, systemåterställning eller skalning.
  • Automatisera proaktivt underhåll och uppgifter som distribution eller systemuppdateringar.
    • Azure Automation är ett molnbaserat verktyg som du kan använda för att skapa händelsebaserad automatisering för att diagnostisera och lösa problem.

Samarbete och feedback

  • Snabba feedbackslingor är kärnan i CI/CD-processen. Ett CI/CD-verktyg använder feedback för att lösa villkor i CI/CD-arbetsflödeslogik och visar information tillbaka till användare, vanligtvis via en instrumentpanel.

  • Stöd för e-postaviseringar och integrering med IDE:er eller kommunikationsplattformar säkerställer att du kan hålla dig informerad om vad som händer utan att behöva kontrollera en instrumentpanel. Se till att du har flexibiliteten att konfigurera vilka aviseringar du får, eftersom för många aviseringar omvandlar dem till bakgrundsbrus.

  • Alla verktyg som du väljer för samarbetet bör ha stöd för följande samarbetsmetoder:

    • Kanban-samarbete
    • Samarbete med Wiki-innehåll
    • ChatOps-samarbete
    • Grupprum

DevOps-verktygskedjans rekommendationer för Azure-landningszoner

DevOps-verktygskedjor för Azure Landing Zone-implementering bör överväga alla tidigare diskuterade DevOps-faser:

  • Planerad
  • CI/CD (inklusive automatiseringsfunktioner som infrastruktur som kod)
  • Operations
  • Samarbeten och feedback

Granska vägledningen för distribution av landningszoner och överväganden för att välja ett implementeringsalternativ i Välja införande av landningszon.

Oavsett vilken metod som valts (starta små och expandera eller i företagsskala) finns det några vanliga topologier som företag tenderar att följa när de utformar sina DevOps-arbetsflöden och verktygskedjor.

  • Azure DevOps-verktygskedja med full stack: För företag som redan är starkt investerade i Microsofts ekosystem kan de med den här topologin dra full nytta av de interna integreringarna mellan Microsofts produkter och tjänster och effektivisera viktiga processer.
  • Azure DevOps- och GitHub-verktygskedjan: Med den här topologin kan du använda fördelarna med både Azure och GitHub som en del av en välintegrerad lösning.

Azure DevOps-verktygskedja med full stack

Diagram över en fullständig azure DevOps-verktygskedja.

DevOps-fas Verktyg
Planerad Azure Boards tillhandahåller kraftfulla och flexibla planeringsfunktioner för utvecklare och andra personer, inklusive hierarkiska kvarvarande uppgifter, anpassningsbara Kanban-tavlor, omfattande processanpassning, teaminstrumentpaneler och anpassad rapportering.
CI/CD Med Azure Repos kan du skapa privata Git-lagringsplatser och det stöder olika Git-klienter, förgreningsstrategi och skydd. Azure Repos tillhandahåller även lokaliserad datahemvist i molnet för att möjliggöra efterlevnad av europeiska regler. Med Azure Pipelines kan kunder konfigurera automatiserade pipelines för CI/CD, inklusive för avancerad testrapportering, och ger kraftfullt stöd för pipelines för flera enheter. Detaljerade behörigheter, portar, anpassade kontroller och automatisk rapportering av testresultat i Azure Pipelines hjälper dig att tillämpa bästa praxis för säkerhet, efterlevnad och säker distribution i din organisation och stöder körning och skalbarhet för parallella steg. Azure Artifacts tillhandahåller en feed för att lagra paket och granska och verifiera varje paket i säkerhetssyfte, samt ger detaljerad behörighetskontroll och granskning. Azure Test Plans i Azure DevOps tillhandahåller en webbläsarbaserad testhanteringslösning för testning av undersökande, manuell och användargodkännande. Användare av Azure-testplaner använder vanligtvis också Azure Boards för planering och projekthantering. Du kan länka användarberättelser och andra krav för att testa fall och kan dokumentera buggar som hittas via testning. Använd Marketplace-tillägg för DevOps för att förbättra analys av statisk kod med verktyg som skannrar med autentiseringsuppgifter, skannrar med öppen källkod, buggar och sårbarhetsskannrar med mera.
Operations Azure-instrumentpaneler och -rapportering tillhandahåller anpassad rapportering som hjälper dig att övervaka viktiga prestandamått för tjänsten. Azure Diagnostics och Application Insights är standardmetoden för att spåra Hälsotillstånd och status för Azure-resurser. Azure Monitor tillhandahåller centraliserad övervakning och hantering. Azure Automation kan användas för att skapa händelsebaserad automatisering för att diagnostisera och lösa problem.
Samarbeten och feedback Med Azure DevOps Wiki kan du dela information med medlemmar i andra team och stöder samarbetsredigering av dess innehåll och struktur. Azure Boards tillhandahåller Kanban-samarbete och stöd för kommentarer och diskussioner i kvarvarande uppgifter. Du kan integrera Microsoft Teams med Azure DevOps för en komplett samarbetsupplevelse för teamet.

Azure DevOps- och GitHub-verktygskedja

Diagram över en Azure DevOps- och GitHub-verktygskedja.

DevOps-fas Verktyg
Planerad Azure Boards tillhandahåller en stabil och skalbar lösning för planering, lagringsplatshantering, datavisualisering och hierarkisk arbetsobjektsorganisation. Den integreras med GitHub så att du kan länka arbetsobjekt och GitHub-incheckningar. Du kan också välja det perfekta arbetsflödet, oavsett om det är ett enkelt, inbyggt arbetsflöde eller ett anpassat arbetsflöde som du skapar med den kraftfulla och flexibla anpassningsmotorn för Azure Boards. När du behöver visualisera dina data hjälper Azure Boards dig att enkelt skapa och konfigurera anpassade instrumentpaneler och övervaka förloppet under projektets livscykel.
CI/CD Använd GitHub Enterprise-versionen (GHE) av GitHub, som innehåller GitHub Repo och GitHub Advanced Security (GHAS). GHAS innehåller CodeQL, kodgenomsökning, hemlig genomsökning och beroendegranskning. GHE erbjuder också Codespaces, en moln-IDE som du kan använda för att utveckla kod och som kan ersätta Visual Studio Code, som organisationer vanligtvis inkluderar i Azure DevOps-scenarier med full stack. Du kan använda GitHub Actions för att automatisera arbetsflöden som inte bygger om dina lagringsplatser finns i GitHub. Om du har mer komplexa scenarier där du behöver komma åt kod utanför GitHub eller kräver centraliserad hantering för arbetsflödesmallar och bygg-pipelines, kan du använda Azure Pipelines. För Azure Boards kan du integrera Azure Pipelines med GitHub-lagringsplatser. Mer information om hur du integrerar Azure DevOps och GitHub finns i Arbeta med Azure DevOps och GitHub. GitHub Packages är en programpakettjänst som gör att du kan vara värd för dina egna paket privat eller offentligt. GitHub erbjuder stöd för containerregister för att vara värd för Docker- eller OCI-avbildningar. Du behöver åtkomsttoken för att kunna publicera, installera eller ta bort paket och skydda paketlivscykelhanteringen. För att automatisera paket kan du integrera GitHub Packages med GitHub Actions, GitHub-API:er och webhooks för att skapa DevOps-arbetsflöden som innehåller kod, CI och distributioner i ett enda gränssnitt.
Operations GitHub Insights tillhandahåller analysrapporter baserade på data från din GitHub Enterprise Server-instans för att hjälpa dig att förstå och förbättra din programleveransprocess. För diagnostik och hantering av landningszoner använder du de Azure-tjänster som rekommenderas i scenariot Full-stack Azure DevOps .
Samarbete och feedback Du kan använda GitHub-diskussioner för att dela frågor, idéer, konversationer, förfrågningar om kommentarer (RFC), resursplanering och meddelanden. Använd Azure Boards för att enkelt skapa och konfigurera anpassade instrumentpaneler och övervaka förloppet under projektets livscykel. Anta Microsoft Teams för en fullständig samarbetsupplevelse för teamet.