Guider

Hva er CI/CD? Kontinuerlig integrasjon og levering forklart enkelt

CI/CD er en måte å levere programvare på der hver kodeendring automatisk bygges, testes og – hvis den består – gjøres klar for utgivelse eller slippes ut. CI (kontinuerlig integrasjon) betyr at endringer slås sammen ofte og sjekkes av automatiske tester hver gang. CD (kontinuerlig levering eller distribusjon) betyr at endringene som består pakkes og sendes mot brukerne dine med lite eller ingen manuelt arbeid.

Poenget er enkelt: fang feil minutter etter at de er gjort, ikke uker senere når en kunde finner dem.

Hvorfor CI/CD betyr noe når du bygger med KI

KI-appbyggere gjør kodeendringer raskt. En enkelt prompt kan berøre ti filer. Den farten er flott helt til en endring på utsjekkingssiden stille ødelegger innloggingssiden, og ingen merker det før en bruker sender deg en e-post.

CI/CD er sikkerhetsnettet for nettopp dette. I stedet for å stole på at hver endring er grei, kjører en pipeline de samme sjekkene hver gang:

  • Bygger appen fortsatt uten feil?
  • Består de automatiske testene fortsatt?
  • Følger koden prosjektets regler (typer, formatering, sikkerhetssjekker)?

Hvis en sjekk feiler, stoppes endringen før den når brukerne. Jo raskere koden din endres, desto mer verdifull er en sjekk som aldri blir lei eller hopper over et steg.

En hverdagslig analogi

Tenk deg et bakeri som selger brød til butikker hver morgen.

  • Uten CI/CD jobber hver baker med egne oppskriftsjusteringer i en uke, så slår alle sammen endringene fredag kveld og håper brødet fortsatt hever seg. Når det ikke gjør det, vet ingen hvilken endring som var årsaken.
  • Med CI bakes hver lille oppskriftsendring rett inn i en testbrød og sjekkes – smak, vekt, form. En dårlig endring fanges samme dag, og du vet nøyaktig hvilken det var.
  • Med CD går brød som består kontrollen rett på leveransebilen, pakket og merket likt hver gang, i stedet for at noen pakker esker for hånd klokken fem om morgenen.

Kontrollen gjør ikke bakerne bedre. Den gjør feilene deres billige.

Slik fungerer en CI/CD-pipeline

En pipeline er en liste med steg som en CI/CD-tjeneste kjører automatisk når noe skjer – vanligvis når noen pusher kode til et repositorium som GitHub. En typisk pipeline ser slik ut:

StegHva som skjerHva den fanger
1. UtløserKode pushes eller en pull request åpnes–
2. InstallerEn ny maskin laster ned koden og avhengigheteneManglende eller ødelagte pakker
3. ByggAppen kompileres eller pakkesSyntaks- og typefeil, ødelagte importer
4. TestAutomatiske tester kjøresFunksjoner som ikke lenger fungerer
5. KontrollerLinting, formatering, sikkerhetsskanningStilproblemer, kjente sårbare pakker, lekkede nøkler
6. Distribuer til stagingAppen går til en testkopi av produksjonProblemer som bare vises i et ekte miljø
7. Distribuer til produksjonAppen går live – automatisk eller etter godkjenning–

Hvert steg kjører på en ren maskin, ikke på noens laptop, så «det fungerer på min maskin» slutter å være en unnskyldning. Hvis et steg feiler, stopper pipelinen og forteller den som gjorde endringen.

Stegene er definert i en konfigurasjonsfil som ligger sammen med koden. I GitHub Actions er det for eksempel en YAML-fil i mappen .github/workflows i repositoriet.

Kontinuerlig levering vs kontinuerlig distribusjon

«CD» er tvetydig, og folk bruker det på begge måter:

Kontinuerlig leveringKontinuerlig distribusjon
Tester kjøres automatiskJaJa
Utgivelsen pakkes automatiskJaJa
Går live automatiskNei – en person klikker «slipp ut»Ja – hver godkjent endring sendes ut
Passer forDe fleste små team, apper med betalende brukereTeam med god testdekning og overvåking

Kontinuerlig distribusjon fungerer bare godt hvis testene er gode. Hvis testene dine ikke dekker utsjekking, vil kontinuerlig distribusjon med glede sende ut en ødelagt utsjekking.

Et praktisk eksempel: en bookingapp med en pipeline

Si at du har en bookingapp for en frisørsalong, og koden ligger i et GitHub-repositorium. Du ber en KI-appbygger om å «legge til 10 % rabatt for førstegangskunder».

  1. Endringen pushes til en ny gren, og en pull request åpnes.
  2. Pipelinen starter. Den installerer pakker og bygger appen – dette består.
  3. Den kjører testene. En test, «en tilbakevendende kunde betaler full pris», feiler: rabatten gis til alle.
  4. Pull requesten viser et rødt kryss. Endringen kan ikke slås sammen.
  5. Du ber KI-en fikse det. Den pusher en rettelse; pipelinen kjører på nytt, og alt består.
  6. Endringen slås sammen. Pipelinen distribuerer den til et staging-miljø, der du prøver en testbooking.
  7. Du godkjenner, og den distribueres til produksjon.

Uten pipelinen ville steg 3 ha skjedd i kundenes lommebøker.

Nøkkelbegreper

BegrepBetydning
PipelineDen automatiske sekvensen av steg som kjøres på hver endring.
Bygg (build)Å gjøre kildekode om til noe som kan kjøres.
Automatisk testKode som sjekker at annen kode gjør det den skal.
Pull request (PR)En foreslått endring som andre (og pipelinen) gjennomgår før den slås sammen. Se hva GitHub er.
Gren (branch)En egen rekke med endringer, slik at arbeid som pågår ikke påvirker hovedkoden.
StagingEn privat kopi av appen din som speiler produksjon, for å sjekke endringer før brukerne ser dem.
ProduksjonDen levende appen brukerne dine bruker.
Rulling tilbake (rollback)Å gå tilbake til forrige fungerende versjon når en utgivelse går galt.
Grønt / rødt byggEn pipelinekjøring som besto / feilet.

Vanlige misforståelser

  • «CI/CD betyr at appen min er testet.» En pipeline kjører bare de testene du har. Hvis det ikke finnes tester, beviser CI bare at appen bygger – ikke mer. Be KI-en skrive tester for de flytene som betyr mest.
  • «CI/CD er bare for store selskaper.» Hostede verktøy som GitHub Actions krever en kort konfigurasjonsfil for å settes opp, og små team bruker dem hele tiden. Det er testene, ikke verktøyet, som krever innsats.
  • «Automatisk distribusjon betyr at ingen kontrollerer noe.» Gode pipelines legger til sjekker, de fjerner dem ikke. Mange team beholder et menneskelig godkjenningssteg før produksjon.
  • «Hvis pipelinen er grønn, fungerer appen.» Det betyr at de automatiske sjekkene besto. Du bør fortsatt prøve endringen selv, helst i en forhåndsvisning eller på staging.
  • «CI/CD erstatter sikkerhetskopier.» Det gjør det ikke. En dårlig databasemigrering som består testene kan fortsatt skade ekte data. Behold sikkerhetskopier og en måte å rulle tilbake på.

Hva du bør spørre KI-appbyggeren din om

  • «Skriv automatiske tester for registrering, innlogging og utsjekking, og vis meg hvordan jeg kjører dem.»
  • «Sett opp en GitHub Actions-arbeidsflyt som installerer avhengigheter, bygger appen og kjører testene på hver pull request.»
  • «Legg til en typesjekk og en linter i pipelinen, og gjør at den feiler ved feil.»
  • «Forklar med enkle ord hva hvert steg i pipelinen gjør.»
  • «Hva skjer hvis en distribusjon feiler halvveis? Hvordan ruller jeg tilbake?»
  • «Sjekk at ingen hemmeligheter er hardkodet i repositoriet eller skrevet ut i pipeline-loggene.»

Hvis appen din bruker API-nøkler, trenger pipelinen dem også – lagret som krypterte hemmeligheter i CI-verktøyet, aldri i konfigurasjonsfilen. Se miljøvariabler og hemmeligheter.

CI/CD og Mythex

Mythex kjører ikke en CI-pipeline for deg, men dekker flere av de samme behovene på sin egen måte:

  • Sjekkpunkter. Etter hver vellykket agenttur lagrer Mythex et git-sjekkpunkt, og Gå tilbake til dette punktet ruller prosjektet tilbake hvis en endring gikk galt. Se Chat.
  • App-testing. Skriv /test, så klikker agenten seg gjennom den levende forhåndsvisningen din som en bruker og rapporterer ødelagte flyter – nyttig før hver publisering. Se App-testing.
  • Publisering er et bevisst steg. Endringer vises først i den private forhåndsvisningen; den offentlige appen din oppdateres bare når du publiserer på nytt – nærmere kontinuerlig levering enn kontinuerlig distribusjon.
  • GitHub-synkronisering (Pro). Synkroniser prosjektet til et GitHub-repositorium, så kan du legge til egne GitHub Actions-arbeidsflyter som kjører tester ved hver push. Se GitHub og eksport.

For en sjekkliste over hva du bør teste manuelt før lansering, se hvordan du tester appen din før lansering, og for arbeid med versjonskontroll, hvordan du bruker Git med en KI-bygd app.

Spørsmål

Hva står CI/CD for?

CI står for kontinuerlig integrasjon: hver kodeendring slås sammen ofte og bygges og testes automatisk. CD står for kontinuerlig levering eller kontinuerlig distribusjon: endringer som består testene gjøres klare for utgivelse automatisk (levering), eller slippes ut til brukere uten et manuelt steg (distribusjon).

Hva er forskjellen mellom kontinuerlig levering og kontinuerlig distribusjon?

Med kontinuerlig levering er hver endring som består pipelinen klar til å slippes ut, men en person bestemmer fortsatt når den går live. Med kontinuerlig distribusjon går hver godkjent endring live automatisk, uten et menneskelig godkjenningssteg.

Trenger jeg CI/CD for en liten app bygget med KI?

Ikke fra dag én. En liten app med noen få brukere klarer seg med testing i en forhåndsvisning og publisering for hånd. CI/CD blir nyttig når flere personer endrer koden, når ekte kunder er avhengige av appen, eller når du stadig ødelegger ting som tidligere fungerte.

Hvilke verktøy brukes til CI/CD?

Vanlige er GitHub Actions, GitLab CI/CD, CircleCI og Jenkins, i tillegg til de innebygde distribusjonspipelinene til hostingplattformer. De gjør alle den samme grunnleggende jobben: kjøre en liste med steg automatisk hver gang koden endres.

Mythex · Pricing · Bygg hva som helst med KI · Maler for nettsider og apper · Mythex sammenlignet · Ordliste for app-bygging med KI · Gratis verktøy for app-bygging med KI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)