A Continuous Deployment az a gyakorlat, amely során minden kódváltozás automatikusan éles környezetbe kerül az összes ellenőrzési szakaszon való átmenés után. Ellentétben a Continuous Delivery-vel, ahol a kiadás kézi megerősítést igényel, ez a modell kiküszöböli az emberi tényezőt a telepítési folyamatból. A Puppet State of DevOps, 2025 jelentése szerint a CD-vel rendelkező csapatok 106-szor gyakrabban hajtanak végre telepítéseket a hagyományos megközelítésekhez képest.
Főbb pontok
Continuous Deployment egy olyan fejlesztési módszer, ahol minden kódváltozás, amely átmegy az összes automatizált ellenőrzésen, automatikusan éles környezetbe kerül. A folyamat nem igényel kézi jóváhagyást — ha a kód átment a fordításon, teszteken és elemzésen, azonnal eljut a felhasználókhoz.
A CD koncepciója szorosan kapcsolódik a DevOps kultúrához, és magas fokú automatizálást igényel. A csapatnak meg kell bíznia a tesztjeiben, és gyors visszaállítási mechanizmusokkal kell rendelkeznie problémák esetén. E feltételek nélkül az automatikus telepítés kockázatossá válik.
A Google Cloud DORA, 2025 szerint az elit végrehajtók (elite performers) naponta többször telepítenek kódot, míg az alacsony hatékonyságú csapatok — havonta egyszer. Ezt a különbséget pontosan a Continuous Deployment és a kapcsolódó CI/CD gyakorlatok teszik lehetővé.
A hagyományos megközelítésben a kiadások néhány hetente vagy havonta jelennek meg. A fejlesztők felhalmozzák a változtatásokat, ami bonyolult egyesítésekhez és konfliktusokhoz vezet. A CD megfordítja ezt a modellt: a változtatások egyesével, a befejezés után azonnal kikerülnek. Ez csökkenti az egyes kiadások összetettségét és egyszerűsíti a problémák megtalálását.
A CD bevezetéséhez funkciókapcsolókra (feature toggles) van szükség, amelyek lehetővé teszik a befejezetlen funkciók elrejtését a felhasználók elől. Nélkülük a fejlesztők nem tudják biztonságosan egyesíteni a befejezetlen funkciókat. Átfogó monitorozás és riasztás is szükséges — ha a telepítés tönkreteszi a környezetet, a csapatnak perceken belül tudnia kell róla.
A minőségbiztosítás a CD-ben nem külön fázis, hanem folyamatos folyamat. Minden commit több száz vagy ezer automatizált teszten megy keresztül: egység-, integrációs, UI- és képernyőkép-teszteken. Ha akár egy teszt is megbukik — a telepítés blokkolva van a javításig.
A CI, CD és Continuous Delivery kifejezéseket gyakran összekeverik, bár a kódszállítás automatizálásának különböző szakaszait írják le. A különbségek megértése kritikus fontosságú a megfelelő pipeline felépítéséhez.
| Gyakorlat | Mit csinál | Eredmény |
|---|---|---|
| CI (Continuous Integration) | Automatikus fordítás és tesztelés minden commitnál | A kód mindig működőképes állapotban |
| Continuous Delivery | CI + automatikus kiadás előkészítés (kézi telepítési trigger) | A kiadás bármikor készen áll a telepítésre |
| Continuous Deployment | Continuous Delivery + automatikus telepítés élesbe | A változtatások késedelem nélkül eljutnak a felhasználókhoz |
Folyamatos integráció (CI) — mindkét modell alapja. Nélküle sem Continuous Delivery, sem CD nem lehetséges. A CI garantálja, hogy a kód nem romlott el, és készen áll a további szakaszokra.
Continuous Delivery — amikor a csapat bármikor megnyomhat egy gombot és kiadhat egy verziót. A különbség a CD-hez képest abban rejlik, hogy a Continuous Delivery a végső döntést emberre bízza (Release Manager vagy DevOps mérnök). A CD teljesen megszünteti ezt a kaput.
Szabályozási követelményekkel rendelkező projekteknél (fintech, egészségügy) vagy ahol minden kiadás kötelező kézi ellenőrzésen megy keresztül (érdekelt felek jóváhagyása), a Continuous Delivery teljes automatizálás nélkül biztonságosabb választás. A CD a legjobban a SaaS-termékek és a gyors frissítési ciklusú mobilalkalmazások esetében működik.
A teljes CD pipeline több egymást követő szakaszból áll. Minden szakasz kiszűri a hibákat — ha a szakasz sikeresen teljesült, a kód továbblép a következőre. Tekintsünk át egy tipikus láncot mobilalkalmazáshoz.
Minden a repository-ba való push-sal kezdődik. A CI-szerver (például GitHub Actions vagy Jenkins) webhook-értesítést kap, betölti a legújabb kódverziót, és elindítja a fordítást. Android esetén ez lehet `./gradlew assembleRelease`, iOS esetén — `xcodebuild -workspace App.xcworkspace -scheme App -configuration Release`.
name: CI Pipeline
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Android APK
run: ./gradlew assembleRelease
- name: Run Unit Tests
run: ./gradlew test DebugUnitTestCoverage
Sikeres fordítás után elindulnak a tesztek: egység-, integrációs, UI- és statikus kódelemzés. A minőségellenőrző rendszer ellenőrzi a kódlefedettséget, a sebezhetőségek jelenlétét és a kódstílusnak való megfelelést. Ha a küszöbértékek nem teljesülnek — a pipeline leáll.
Ha minden teszt sikeres, az artefaktum automatikusan telepítésre kerül a staging környezetbe. Ott end-to-end teszteket és teljesítményteszteket végeznek. Ebben a szakaszban külső szolgáltatásokkal való integrációs ellenőrzések is csatlakoztathatók.
Az utolsó szakasz — az élesbe való kirakás. A kockázatok csökkentése érdekében canary kiadásokat (canary releases) használnak, amikor az új verzió először a felhasználók kis százalékához kerül. Ha a metrikák stabilak — a forgalom fokozatosan 100%-ra nő.
pipeline {
agent any
stages {
stage('Build') {
steps {
sh './gradlew assembleRelease'
}
}
stage('Test') {
steps {
sh './gradlew test'
}
}
stage('Deploy') {
steps {
sh './deploy.sh --canary 5%'
}
}
}
post {
failure {
notify 'devops-team'
}
}
}
Számos platform támogatja a CD-t a piacon. A választás a technológiai halmaztól, a csapat méretétől és az infrastruktúra költségvetésétől függ. Tekintsük át a fő kategóriákat és képviselőiket.
A GitHub Actions, GitLab CI/CD, CircleCI és Bitbucket Pipelines beépített pipeline-támogatást kínálnak. Integrálódnak a felhőregiszterekkel (Docker Hub, GitHub Container Registry), és támogatják a telepítést AWS-re, Google Cloud-ra, Azure-ra és Firebase App Distribution-be.
Spinnaker, ArgoCD és Flux — kizárólag a CD-re összpontosító eszközök. Fejlett telepítési stratégiákat kínálnak: blue-green, canary, rolling update. Az ArgoCD különösen népszerű a Kubernetes-ökoszisztémában a GitOps megközelítésnek köszönhetően, ahol az infrastruktúra állapotát Git repository írja le.
A Fastlane a de facto szabvány a fordítások és publikálások automatizálására az App Store-ban és Google Play-ben. Integrálódik a CI-szerverekkel, és kezeli a kódaláírást, képernyőképeket, béta terjesztést TestFlight-on és Internal App Sharing-en keresztül. A Bitrise és a Codemagic — speciális CI/CD mobilalkalmazásokhoz.
# Fastfile — Fastlane konfiguráció
default_platform(:android)
platform :android do
desc "Deploy a new version to Google Play"
lane :deploy do
gradle(task: 'assembleRelease')
upload_to_play_store(
track: 'production',
release_status: 'completed'
)
end
end
A Continuous Deployment-re való áttérés nem csak technikai felkészülést, hanem a csapat kultúrájának megváltoztatását is igényli. Megfelelő gyakorlatok nélkül az automatikus telepítés gyakori incidensekhez és a folyamatba vetett bizalom csökkenéséhez vezethet.
A feature flag-ek lehetővé teszik a befejezetlen kód éles környezetbe telepítését, de elrejtését a felhasználók elől. Ez a CD alapja — a fejlesztők bármikor egyesíthetnek változtatásokat anélkül, hogy megvárnák a funkció befejezését. A LaunchDarkly, Flagsmith és ConfigCat népszerű platformok a funkciókapcsolók kezelésére.
Metrikák nélkül a telepítés sikeressége nem értékelhető. Kulcsmetrikák: válaszidő (latency), hibaszázalék (error rate), átviteli sebesség (throughput). Használjon olyan eszközöket, mint a Datadog, New Relic vagy Grafana az egyes kiadások valós idejű nyomon követésére.
A CD kritikus gyakorlata — az automatikus visszaállítási mechanizmus. Ha a telepítés után a metrikák romlanak (az error rate meghaladja a küszöbértéket), a rendszernek magának kell visszaállítania az előző verziót. Ez csökkenti a helyreállítási időt (MTTR) órákról percekre.
A CD pipeline értékes eszköz és potenciális támadási célpont. Használjon titokkezelést (Vault, AWS Secrets Manager), írja alá az artefaktumokat és konténereket, szkennelje a függőségeket sebezhetőségekre (Dependabot, Snyk). Soha ne tároljon hozzáférési kulcsokat a repository-ban.
Gyakran ismételt kérdések
A Continuous Delivery előkészíti a kiadást, de kézi megerősítést igényel az éles telepítéshez. A Continuous Deployment ezt a lépést is automatizálja — a kód az összes ellenőrzésen való átesés után emberi beavatkozás nélkül jut el a felhasználókhoz.
Technikailag lehetséges, de ez jelentősen megnehezíti a folyamatot. Funkciókapcsolók nélkül a fejlesztők nem tudják egyesíteni a befejezetlen kódot, ami lelassítja a munkát és növeli a konfliktusok kockázatát az egyesítés során.
Egy kis csapat számára a nulláról — 2-6 hónap. Az idő az automatizáltság jelenlegi szintjétől, a projekt összetettségétől és a csapat folyamatváltozásokra való felkészültségétől függ.
Alapvető DORA-metrikák: telepítési gyakoriság (deploy frequency), változtatások átfutási ideje (lead time), átlagos helyreállítási idő (MTTR) és a sikertelen változtatások aránya (change failure rate).
Nem, a szigorú szabályozási követelményekkel rendelkező projekteknél (például egészségügyi vagy pénzügyi rendszerek) gyakran szükség van az egyes kiadások kézi jóváhagyására. Ilyen esetekben a Continuous Delivery előnyösebb.
Összegzés
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is