Utforsk kildekontroll og versjonskontroll
Bruk av kilde- og versjonskontroll er en grunnleggende Fremgangsmåte for DevOps. Det er også en forutsetning for slike praksiser som kontinuerlig integrasjon og infrastruktur som kode, som begge er avgjørende for å nå hele DevOps-potensialet. Organisasjonen i vårt eksempelscenario bør gjennomgå sin nåværende strategi for utvikling av samarbeidsprogramvare og overgang til en distribuert versjonskontrollmodell, for eksempel Git, spesielt med tanke på planene om å bruke GitHub for programvarelivssyklusadministrasjon. Dette krever imidlertid god forståelse av versjons- og kildekontrollprinsippene og fordelene deres, som vi dekker her.
Kildekontroll og versjonskontroll
Begrepene kildekontroll og versjonskontroll brukes ofte om hverandre, og i mange sammenhenger refererer de til det samme konseptet. Generelt er begge knyttet til praksisen med å administrere endringer i kode i et delt utviklingsmiljø. Du kan imidlertid støte på mer nyanserte scenarioer der meningen deres er litt annerledes. I disse scenarioene angir kildekontroll et system som administrerer endringer i kildekodefiler mens versjonskontroll omfatter endringsbehandling av alle filtyper for formål som strekker seg utover kildekoden alene. Fremover bruker vi termen versjonskontroll til å representere Git-baserte repositorier for samarbeidsprogramvare som er tilgjengelige i GitHub og Azure DevOps.
Hva er fordelene med versjonskontroll?
Versjonskontroll holder oversikt over endringer i filer innenfor administrasjonsomfanget. Dette gir et bredt spekter av fordeler:
logg og versjonssporing: Du har muligheten til å se gjennom loggen over endringer i en fil, inkludert muligheten til å avgjøre når hver enkelt endring fant sted, og hva som var deres omfang. Dette gir også sporbarhet, vanligvis ved å knytte hvert sett med endringer til en unik identifikator.
tilbakerulling og gjenoppretting: Hvis det oppstår en feil eller et problem, kan du enkelt tilbakestille endringer for å gjenopprette den kjente, fungerende versjonen av den berørte filen.
Forgrening og sammenslåing: Hvis du trenger å utvide funksjonaliteten til gjeldende kode ved å legge til en annen funksjon eller løse en nyoppdaget feil, kan du opprette en såkalt gren, som lar deg arbeide uavhengig av den eksisterende kodebasen. Den nye grenen er i utgangspunktet identisk med den hovedgrenen som er vert for gjeldende kode. Når du har fullført endringene, slår du sammen den nye grenen med hovedgrenen. Selv om dette fortsatt kan føre til konflikter (hvis en annen utvikler bestemte seg for å endre samme sett med filer i mellomtiden via en annen gren), er omfanget begrenset, og de kan vanligvis enkelt identifiseres og løses.
samarbeid og parallell utvikling: Konfliktløsningsbestemmelser supplert med forgrening og sammenslåing gjør det enklere å la flere utviklere arbeide på samme kodebase, noe som øker effektiviteten. Med distribuerte kontrollsystemer, for eksempel Git, er det også mulig å redigere kode i frakoblet modus. Samarbeid innebærer også gjensidige fagfellevurderinger av pull-forespørsler, fremme kunnskapsdeling og gjennomsiktighet.
Automatisering: Versjonskontroll er en viktig del av kontinuerlig integrering og automatiserte distribusjoner. Automatisert bygg og testing kan utløses automatisk når en ny versjon av koden sendes til versjonskontrollrepositoriet eller slås sammen med hovedgrenen. Ulike versjoner av koden kan distribueres til ulike miljøer.