Så här påskyndar GitHub molnimplementeringen

Översikt

Innovation är den nya valutan i dagens konkurrenslandskap. Samåkning, strömmande innehåll, självkörande bilar och andra tjänster har i grunden förändrat människors dagliga rytmer samtidigt som marknaderna vänts upp och ner och visar hur konkurrenslandskapet har flyttats från fysiska tillgångar till digitala upplevelser.

Dessa typer av överlägsna digitala upplevelser leder till ett avbrott där väletablerade företag möter hård konkurrens från företag som kan förnya och leverera värde till sina kunder snabbare. För att kunna konkurrera och undvika störningar måste företag skapa en innovationskultur och använda de bästa och mest passande verktygen och molntjänsterna.

GitHub innehåller en rad funktioner som kan hjälpa företag att:

  • Dra nytta av Azure-tjänster och -funktioner.
  • Modernisera deras metoder.
  • Bli mer flexibel och innovativ under detta kulturella skifte.

Företag kan dra nytta av GitHubs anslutning till communityn med öppen källkod och hitta tusentals upprepade, förbättrade och redo att distribuera molnlösningsexempel från organisationer som har implementerat Azure-tjänster. De kan enkelt låna från och iterera på dessa lösningar för att skräddarsy dem efter deras affärsbehov.

GitHub gör det enkelt för organisationer att dela inom sina team, vilket gör det snabbare att modernisera och distribuera nästa program eller arbetsbelastning. Företag kan titta på InnerSource, en viktig grundsats för innovation, för att låna metodtips som delning och återanvändning, samarbete och kommunikation med mera från communityn med öppen källkod och tillämpa dem inom organisationen.

Från att skydda paket med öppen källkod till den immateriella egendom som skrivs dagligen bör det vara en viktig prioritet för varje företag att skydda hela programvaruförsörjningskedjan. Det här målet kräver avancerad säkerhetsteknik som kan införlivas och automatiseras under hela livscykeln, och inbyggda GitHub-funktioner som GitHub advanced security och GitHub Actions erbjuder den här typen av flexibilitet.

Dra nytta av tillgångar med öppen källkod

Mycket effektiva organisationer känner igen programvara med öppen källkod (OSS) som viktigt jämfört med valfritt för modern programvaruutveckling. De interagerar med utvecklarcommunitys som de är beroende av och använder en säker plattform för att strategiskt investera i OSS. Därför upplever dessa organisationer innovation snabbt, överträffar konkurrenterna och sänker kostnaderna samtidigt som riskerna minimeras.

OSS består av paket, bibliotek, skript och beroenden som ingår i program. OSS innehåller även tusentals tillgångar med öppen källkod i form av infrastruktur som kod (IaC), dokumentation och vägledning för väldefinierade Azure-arkitekturer. Microsoft, partner, leverantörer, kunder och enskilda personer bidrar med dessa paket till OSS-communityn. Du hittar dem i GitHub och ändrar, återanvänder och distribuerar dem till en specifik Azure-miljö.

Infrastruktur som kod

IaC är hanteringen av infrastruktur som omfattar nätverk, virtuella datorer, lastbalanserare och anslutningstopologi i en beskrivande modell. IaC använder samma versionshanteringssystem som ett DevOps-team använder för källkod. Ett DevOps-team följer till exempel principen att samma källkod genererar samma binärfil. En IaC-modell följer också den principen och genererar samma miljö varje gång du tillämpar modellen. IaC är en viktig DevOps-metod som du kan använda med kontinuerlig leverans (CD).

IaC har utvecklats för att lösa problemet med konfigurationsavvikelser i utgivningspipelinen. Utan den måste teamen underhålla inställningarna för enskilda distributionsmiljöer, och inkonsekvenser mellan miljöer leder till problem under distributioner. Varje miljö blir så småningom en snöflinga, en unik konfiguration som inte kan återskapas automatiskt. Med snöflingor kräver infrastrukturadministration och underhåll manuella processer som bidrar till fel och är svåra att spåra. Infrastrukturdistributioner med IaC kan upprepas och förhindra körningsproblem som orsakas av konfigurationsavvikelser eller saknade beroenden.

Med IaC gör team ändringar i miljöbeskrivningen och versionen av konfigurationsmodellen, som vanligtvis är i väldokumenterade kodformat som JSON. Mer information finns i Azure Resource Manager-mallar . Utvecklare kan förenkla sina arbetsflöden genom att vara värd för IaC-kod på samma GitHub-lagringsplats som sin programkällkod och tillämpa samma CI/CD-metoder för IaC som drivs av GitHub Actions.

Se Åtgärden AzOps GitHub för ett exempel på hur du distribuerar anpassade Resource Manager-mallar i olika Azure-omfång. Om du inte har använt Resource Manager-mallar eller IaC tidigare kan du också bläddra azure-quickstart-templates i lagringsplatsen på GitHub, hitta mallen som du vill distribuera och välja knappen Distribuera till Azure för att testa hur den fungerar.

Skärmbild av knappen Distribuera till Azure.

Komponenter och metodtips för molnmönster

Följande arkitekturdiagram visar säkerhetskontrollerna som körs i GitHub- och Azure-komponenterna i en GitHub DevSecOps-miljö:

Ett arkitekturdiagram som visar säkerhetskontrollerna som körs i GitHub- och Azure-komponenterna i en GitHub DevSecOps-miljö.

  • GitHub tillhandahåller en kodvärdplattform som utvecklare kan använda för att samarbeta med projekt med öppen källkod och InnerSource.

  • Codespaces är en utvecklingsmiljö online. Det här verktyget hanteras av GitHub och drivs av Microsoft Visual Studio Code och tillhandahåller en komplett utvecklingslösning i molnet.

  • GitHub-säkerhet fungerar för att eliminera hot på flera sätt. Agenter och tjänster identifierar sårbarheter i lagringsplatser och beroende paket. De uppgraderar också beroenden till aktuella och säkra versioner.

  • GitHub Actions är anpassade arbetsflöden som tillhandahåller CI/CD-funktioner direkt i lagringsplatser. Datorer med namnet runners är värdar för dessa CI/CD-jobb.

  • Microsoft Entra ID är en molnbaserad identitetstjänst med flera klienter som styr åtkomsten till Azure och andra molnprogram som Microsoft 365 och GitHub.

  • Azure App Service tillhandahåller ett ramverk för att skapa, distribuera och skala webbappar. Den här plattformen erbjuder inbyggt infrastrukturunderhåll, säkerhetskorrigeringar och skalning.

  • Azure Policy hjälper team att hantera och förhindra IT-problem via principdefinitioner som kan framtvinga regler för molnresurser. Om ett projekt till exempel är på väg att distribuera en virtuell dator med en okänd SKU skickar Azure Policy aviseringar om problemet och stoppar distributionen.

  • Microsoft Defender för molnet ger enhetlig säkerhetshantering och avancerat skydd mot hot i hybridmolnarbetsbelastningar.

  • Azure Monitor samlar in och analyserar prestandamått, aktivitetsloggar och annan programtelemetri. Den här tjänsten varnar program och personal när den identifierar oregelbundna villkor.

InnerSource

Översikt över InnerSource

Många företag använder termen InnerSource för att beskriva hur deras teknikteam arbetar tillsammans med kod. InnerSource är en utvecklingsmetod där ingenjörer skapar egenutvecklad programvara med bästa praxis från storskaliga projekt med öppen källkod som Kubernetes eller Visual Studio Code.

Storskaliga projekt med öppen källkod kräver samordning och samarbete mellan tusentals deltagare. De mest framgångsrika projekten drivs av en vision för deras framtida och dagliga användarbehov: hastighet, tillförlitlighet och funktionalitet. Den skala med vilken dessa projekt fungerar ger några lektioner och kan hjälpa företag att skapa bättre programvara snabbare med InnerSource.

Med GitHubs pull-begäranden och problem är samarbete och kodgranskning inbyggda i utvecklingsprocessen. Interna och outsourcade team kan dela arbete, diskutera ändringar och få feedback på ett och samma ställe. Detta hjälper organisationer att dela expertis internt och undvika att återuppfinna fälttestade lösningar som utvecklats för andra projekt.

Anatomin för ett InnerSource-projekt

Rätt blandning av individer, team och resurser kan säkerställa ett projekts framgång. Många projekt med öppen källkod följer en liknande organisationsstruktur som kan hjälpa organisationer att konfigurera korsfunktionella team för att hantera InnerSource-projekt. Ett typiskt projekt med öppen källkod har följande typer av personer:

  • Utvecklare: Dessa deltagare ansvarar för att driva visionen och hantera projektets organisatoriska aspekter. De kanske inte är de ursprungliga ägarna eller författarna till koden.

  • Bidragsgivare: Dessa människor är alla som har bidragit med något till projektet.

  • Community-medlemmar: Det här är personer som använder projektet. De kan vara aktiva i konversationer eller uttrycka sin åsikt om projektets riktning.

Större projekt kan också ha underkommittéer eller arbetsgrupper som fokuserar på olika uppgifter som verktygsutveckling, triagering och moderation av gemenskapen. InnerSource-projekt kommer sannolikt att följa en liknande struktur. Många ingenjörsorganisationer sorterar utvecklare i team som programteknik, plattformsutveckling och webbutveckling. Att strukturera organisationer på det här sättet kan lämna blinda fläckar som utesluter kvalificerade personer. Att organisera en grundläggande beslutsgrupp som stöds av team i en organisation kan hjälpa till att samla den expertis som krävs för att lösa problem snabbare.

Inom ett företag är bidragsgivarna utvecklare över hela företaget, och ansvariga är projektets ledare och viktiga beslutsfattare.

  • Utvecklare: Utvecklare, produktchefer och andra viktiga beslutsfattare inom ett företag som ansvarar för att driva ett projekts vision och för att hantera dagliga bidrag.

  • Bidragsgivare: Utvecklare, dataforskare, produktchefer, marknadsförare och andra roller inom ett företag som hjälper till att driva programvara framåt. Deltagare kanske inte ingår i direktprojektteamet, men hjälper till att skapa programvara genom att bidra med kod, skicka felkorrigeringar med mera.

Mer information finns i vitboken En introduktion till InnerSource.

Automatisering

Med GitHub Actions kan användare skapa anpassade arbetsflöden direkt i sina GitHub-lagringsplatser. Användare kan identifiera, skapa och dela åtgärder för att utföra valfritt jobb, inklusive CI/CD, och kombinera åtgärder i ett helt anpassat arbetsflöde. De kan också skapa CI-arbetsflöden som skapar och testar projekt som skrivits på olika programmeringsspråk. Exempel finns i guiderna för GitHub Actions.

GitHub Actions kan användas för att kombinera IaC-begrepp och CI/CD-metoder för att automatisera hela distributionslivscykeln från slutpunkt till slutpunkt, inklusive etablering eller uppdatering av målmiljön på ett repeterbart sätt och paketering och distribution av själva programmet.

Exempel:

GitHub Actions för Azure har skapats för att förenkla hur du automatiserar dina distributionsprocesser för att rikta in dig på Azure-tjänster som Azure App Service, Azure Kubernetes Service, Azure Functions med mera. Lagringsplatsen för Azure Starter-åtgärdsarbetsflöden innehåller arbetsflöden från slutpunkt till slutpunkt för att skapa och distribuera webbappar av valfritt språk och alla ekosystem till Azure. Besök GitHub Marketplace för att se alla åtgärder som är tillgängliga.

Säkerhet

GitHubs skift-vänster-säkerhetsfunktioner

Från och med de första utvecklingsstegen följer DevSecOps rekommenderade säkerhetsmetoder. Genom att använda en strategi för att förflytta mot vänster omdirigerar DevSecOps säkerhetsfokus. I stället för att peka mot granskning i slutet övergår det till utveckling i början. Förutom att skapa robust kod hjälper den här felsnabba metoden till att lösa problem tidigt när de är lätta att åtgärda.

Med många säkerhetsfunktioner erbjuder GitHub verktyg som stöder alla delar av ett DevSecOps-arbetsflöde:

  • Webbläsarbaserade IDE:er med inbyggda säkerhetstillägg
  • Agenter som kontinuerligt övervakar säkerhetsrekommendationer och ersätter sårbara och inaktuella beroenden
  • Sökfunktioner som söker igenom källkoden efter sårbarheter
  • Åtgärdsbaserade arbetsflöden som automatiserar varje steg i utveckling, testning och distribution
  • Utrymmen som ger en möjlighet att privat diskutera och lösa säkerhetshot och sedan publicera informationen
  • I kombination med övervaknings- och utvärderingskraften i Azure ger dessa funktioner en utmärkt tjänst för att skapa säkra molnlösningar

Exempel:

GitHub DevSecOps-installationer omfattar många säkerhetsscenarier. Möjligheterna innehåller följande fall:

  • Utvecklare som vill dra nytta av förkonfigurerade miljöer som erbjuder säkerhetsfunktioner.
  • Administratörer som förlitar sig på att ha up-to- datum, prioriterade säkerhetsrapporter nära till hands, tillsammans med information om påverkad kod och föreslagna korrigeringar.
  • Strömlinjeformade organisationer som behöver system för att automatiskt skaffa nya och okomprometterade säkerhetsenheter när hemligheter lämnas tillgängliga i kod.
  • Utvecklingsteam som kan dra nytta av automatiska uppgraderingar när nyare eller säkrare versioner av externa paket blir tillgängliga.

Mer information finns i:

Nästa steg

  • Välj ditt implementeringsteam (vanligtvis en utvecklarchef och några utvecklare som definierats som administratörer) och distribuera GitHub.
  • Lär dig vanliga och avancerade Git-arbetsflöden för att förbättra hur du använder GitHub.

Följande länkar innehåller mer information om GitHub.