PEBD6027 · RPS minggu 13 · 2x50 menit
DevOps & CI/CD Pipeline · GitHub Actions · GitLab CI · Argo CD GitOps · Observability Hari ini kita masuk DevOps dan CI/CD Continuous Integration Continuous Deployment. Setelah IaC Terraform P10 dan Kubernetes P11, sekarang bagaimana otomasi end-to-end dari kode developer sampai produksi. DevOps adalah budaya dan praktik yang menggabungkan development dan operations. CI/CD pipeline: build, test, scan, deploy otomatis. Konteks Indonesia: Tokopedia deploy 1000+ kali per hari dengan CI/CD, Gojek 200+ kali. Buku pegangan: Kim Holder DevOps Handbook dan Humble Continuous Delivery. Peta Pembelajaran Hari Ini Sub-CPMK 12: merancang pipeline CI/CD untuk aplikasi cloud. Empat indikator capaian.
DevOps culture & CALMS CI: build, test, scan otomatis GitHub Actions & GitLab CI CD: deploy staging/prod otomatis Argo CD GitOps untuk K8s Observability: logging, metric, tracing Posisi 14P: setelah K8s P11, hari ini DevOps CI/CD. P13 FinOps cost management.
Empat indikator: jelaskan DevOps culture, design CI pipeline, design CD pipeline, pilih strategi observability. DORA metrics dari Google DevOps Research Assessment 2023: elite performer deploy multiple kali per hari, MTTR di bawah 1 jam, change failure rate di bawah 15 persen. Indonesia adopsi DevOps tumbuh cepat — perusahaan digital native seperti Gojek Tokopedia Traveloka di elite performer, bank dan SOE tertinggal. Kita akan pelajari tooling dan culture. Mengapa DevOps & CI/CD? DevOps = culture + practice + tool. Hasilnya: speed, stability, dan developer happiness.
Deploy Frequency Elite
Multiple/hari
DORA 2023 — Tokopedia 1000+/hari, Gojek 200+/hari
MTTR Elite
less than 1 hour
DORA 2023 — elite vs low performer gap 2,554x
Studi DORA: elite performer 973x lebih sering deploy dengan change failure rate 7x lebih rendah. Budaya kunci.
DevOps adalah culture plus practice plus tool. Hasilnya: speed stability dan developer happiness. DORA metrics dari Google DevOps Research Assessment 2023 menunjukkan elite performer deploy multiple kali per hari — Tokopedia 1000 plus per hari Gojek 200 plus per hari. MTTR Mean Time To Restore elite performer di bawah 1 jam, gap elite vs low performer 2,554 kali. Studi DORA: elite performer 973 kali lebih sering deploy dengan change failure rate 7 kali lebih rendah. Budaya adalah kunci — tool tanpa culture change tidak ada hasil. DevOps menghilangkan silo antara dev dan ops, share responsibility untuk availability dan reliability. Bagian 1 · 1/4
DevOps Culture & CALMS
Diskusi: bila tim dev dan tim ops sering konflik (dev salin cepat, ops salin stabil), bagaimana solve?
Jawaban: DevOps culture. Hancurkan silo dengan shared KPI: dev ikut bertanggung jawab availability, ops ikut bertanggung jawab speed. SRE Site Reliability Engineering Google adalah implementasi konkret. Cross-functional team: 1 tim berisi dev dan ops bersama. Blameless post-mortem: belajar dari incident tanpa cari salah. SLI Service Level Indicator dan SLO Service Level Objective sebagai shared target. CALMS framework: Culture Automation Lean Measurement Sharing. CALMS Framework CALMS = Culture, Automation, Lean, Measurement, Sharing. Framework adopsi DevOps.
Letter Aspek Praktik Konkret C Culture Blameless post-mortem, shared responsibility A Automation CI/CD pipeline, IaC, test otomatis L Lean Eliminasi waste, small batch, flow M Measurement DORA metrics, SLI/SLO/SLA S Sharing Cross-functional team, knowledge sharing, open doc
CALMS = checklist adopsi DevOps. Tanpa salah satu, transformasi gagal. Culture paling sulit.
CALMS adalah framework adopsi DevOps: Culture Automation Lean Measurement Sharing. Culture: blameless post-mortem, shared responsibility antara dev dan ops. Automation: CI CD pipeline, IaC Infrastructure as Code Terraform, test otomatis unit integration e2e. Lean: eliminasi waste, small batch size, flow efficiency,prinsip Lean Manufacturing Toyota. Measurement: DORA metrics deployment frequency lead time MTTR change failure rate, SLI Service Level Indicator SLO Service Level Objective SLA agreement. Sharing: cross-functional team, knowledge sharing via brown bag session, open documentation internal wiki. CALMS sama dengan checklist adopsi DevOps. Tanpa salah satu, transformasi gagal. Culture paling sulit karena manusia lebih sulit diubah dari tooling. DORA Metrics Empat metric DORA untuk ukur maturity DevOps. Standard industri.
Metric Elite Low Deployment Frequency Multiple per day Between once per month and 6 months Lead Time for Changes Less than 1 hour 1-6 months Change Failure Rate 0-15% 46-60% MTTR (Mean Time to Restore) Less than 1 hour More than 6 months
Bank Indonesia traditional: low performer (monthly deploy, MTTR hari). Bank digital (Jago, BNC): elite/stable performer.
Empat metric DORA untuk ukur maturity DevOps. Standard industri. Deployment Frequency: elite multiple per day, low antara sekali per bulan dan 6 bulan. Lead Time for Changes dari commit ke produksi: elite di bawah 1 jam, low 1 sampai 6 bulan. Change Failure Rate: elite 0 sampai 15 persen, low 46 sampai 60 persen. MTTR Mean Time To Restore: elite di bawah 1 jam, low lebih dari 6 bulan. Bank Indonesia traditional: low performer dengan monthly deploy dan MTTR hari. Bank digital seperti Bank Jago dan Bank Neo Commerce: elite atau stable performer. Tokopedia dan Gojek adalah elite performer global. Target Bisdig: transformasi ke stable performer dalam 1 tahun pertama. Studi Kasus: Tokopedia CI/CD 1000+ Deploy/Hari Tokopedia deploy 1000+ kali per hari dengan CI/CD otomatis. Bagaimana architecture?
Public case study Tokopedia CI/CD (dihedge): GitHub Enterprise monorepo raksasa, Jenkins + Spinnaker pipeline, CanARCanary deployment ke K8s, automated testing ribuan test per PR, feature flag via OpenFeature, observability via Datadog. Engineer push commit → CI run 5-10 menit → auto-deploy canary 1% traffic → validation metric → ramp up 100%. Manual intervensi hanya saat incident.
Lint + static analysis (SonarQube) Unit + integration test Build Docker image Security scan (Snyk, Trivy) Canary 1% → 10% → 100% Feature flag untuk rollback cepat Blue-green untuk DB migration Auto-rollback bila error spike Pelajaran: 1000+ deploy/hari mungkin karena automation total + canary + feature flag + observability real-time.
Tokopedia deploy 1000 plus kali per hari dengan CI/CD otomatis. Public case study Tokopedia CI/CD dihedge menunjukkan: GitHub Enterprise monorepo raksasa, Jenkins plus Spinnaker pipeline Netflix open source, canary deployment ke K8s, automated testing ribuan test per PR, feature flag via OpenFeature, observability via Datadog. Engineer push commit, CI run 5 sampai 10 menit, auto-deploy canary 1 persen traffic, validation metric via Datadog, ramp up 100 persen bila sehat. Manual intervensi hanya saat incident. Komponen pipeline: lint plus static analysis SonarQube, unit plus integration test, build Docker image, security scan Snyk Trivy. Deployment strategy: canary 1 10 100 persen, feature flag untuk rollback cepat, blue-green untuk DB migration, auto-rollback bila error spike. Bagian 2 · 2/4
CI Pipeline Anatomi
Diskusi: bila developer push kode berbahaya (misal SQL injection), di tahap mana CI harus tangkap?
Jawaban: security scan (SAST) di CI. SAST Static Application Security Testing scan source code untuk vulnerability. Tools: SonarQube, Snyk Code, Semgrep. Bila SAST detect SQL injection, pipeline gagal dan PR block. Tambahan: dependency scan (SCA) untuk library berbahaya, container scan untuk image, DAST untuk runtime. Shift-left security: tangkap seawal mungkin, bukan di produksi. Integrasi dengan PR review via GitHub Advanced Security. Anatomi CI Pipeline CI Continuous Integration: setiap commit trigger pipeline otomatis. Quality gate.
Tahap Tools Output 1. Lint ESLint, Black, Prettier Code style konsisten 2. Static Analysis SonarQube, Snyk Code Code smell + SAST 3. Unit Test Jest, pytest, Go test Coverage report 4. Integration Test Testcontainers, Docker Compose Service interaction OK 5. Build Docker, Maven, npm Artifact (image, jar) 6. Container Scan Trivy, Snyk Container Image no CVE critical 7. Push Registry ECR, GHCR Image available untuk deploy
Pipeline fail-fast: tahap pertama gagal → skip sisanya. Hemat CI compute. Feedback cepat ke developer.
CI Continuous Integration: setiap commit trigger pipeline otomatis dengan quality gate. Anatomi pipeline: 1 Lint dengan ESLint Black Prettier untuk code style konsisten. 2 Static Analysis dengan SonarQube Snyk Code untuk code smell dan SAST Static Application Security Testing. 3 Unit Test dengan Jest pytest Go test untuk coverage report. 4 Integration Test dengan Testcontainers Docker Compose untuk service interaction OK. 5 Build dengan Docker Maven npm untuk artifact image jar. 6 Container Scan dengan Trivy Snyk Container untuk image no CVE critical. 7 Push Registry dengan ECR GHCR untuk image available untuk deploy. Pipeline fail-fast: tahap pertama gagal langsung skip sisanya. Hemat CI compute dan feedback cepat ke developer dalam 5 menit. GitHub Actions vs GitLab CI vs Jenkins Tiga tool CI populer. Trade-off: integration, cost, learning curve.
Aspek GitHub Actions GitLab CI Jenkins Hosting SaaS (GitHub) SaaS atau self-host Self-host (biasanya) Config YAML di .github/workflows YAML di .gitlab-ci.yml Groovy Jenkinsfile Ecosystem Marketplace besar Built-in registry & security Plugin 1800+ Cost Gratis publik, $ untuk private Gratis hingga tier menengah Open-source + infra cost Best For GitHub repo, modern team All-in-one GitLab Enterprise legacy, kompleks
Pilihan tergantung strategi Git. GitHub → Actions. GitLab → CI. Legacy → Jenkins migrasi pelan-pelan.
Tiga tool CI populer dengan trade-off integration cost learning curve. GitHub Actions: hosting SaaS GitHub, config YAML di github workflows, ecosystem Marketplace besar, cost gratis publik dolar untuk private, best for GitHub repo modern team. GitLab CI: hosting SaaS atau self-host, config YAML di gitlab ci yml, ecosystem built-in registry dan security, cost gratis hingga tier menengah, best for all-in-one GitLab. Jenkins: hosting self-host biasanya, config Groovy Jenkinsfile, ecosystem plugin 1800 plus, cost open-source plus infra, best for enterprise legacy dan kompleks. Pilihan tergantung strategi Git. GitHub ke Actions. GitLab ke CI. Legacy ke Jenkins dengan migrasi pelan-pelan ke cloud-native. Hitung dari Nol: ROI CI/CD Manual vs Automated Startup 5 engineer, deploy manual 4 jam per release, 4 release/minggu. Berapa saving?
Komponen Manual CI/CD Otomatis Time per release 4 jam × 5 engineer 30 menit × 1 engineer Release per minggu 4 release 20 release (5x lebih) Engineer hours/minggu 80 jam 10 jam Cost @ $50/jam $4,000/minggu $500/minggu Hemat mingguan — $3,500 ($182K/tahun) Initial setup CI/CD — 2 minggu × 5 eng = $20K Net benefit tahun-1 — $160K+ Plus: less human error 10% rollback 2% rollback (hemat lebih)
Harga engineering $50/jam (dihedge). ROI CI/CD dalam 2 bulan. Bonus: 5x release frequency = fitur lebih cepat ke user.
Mari hitung ROI CI/CD manual vs automated untuk startup dengan 5 engineer, deploy manual 4 jam per release, 4 release per minggu. Time per release manual 4 jam kali 5 engineer setara 20 jam. CI/CD otomatis 30 menit kali 1 engineer setara 0,5 jam. Release per minggu manual 4 release, CI/CD 20 release 5 kali lebih. Engineer hours per minggu manual 80 jam vs CI/CD 10 jam. Cost at 50 dolar per jam: manual 4000 dolar per minggu, CI/CD 500 dolar per minggu. Hemat mingguan 3500 dolar atau 182 ribu dolar per tahun. Initial setup CI/CD 2 minggu kali 5 engineer setara 20 ribu dolar. Net benefit tahun pertama 160 ribu dolar plus. Plus less human error: manual 10 persen rollback, CI/CD 2 persen rollback hemat lebih. ROI CI/CD dalam 2 bulan. Bonus 5 kali release frequency sama dengan fitur lebih cepat ke user. 3/4
CD & GitOps
Diskusi: bila deploy ke produksi harus manual approval dari VP, apakah masih bisa CD?
Jawaban: ya, dengan gating. CD Continuous Deployment atau Continuous Delivery. Delivery: setiap commit siap deploy tapi butuh approval. Deployment: setiap commit otomatis deploy. Untuk regulated industry seperti bank, Continuous Delivery dengan manual gate di prod. Staging auto-deploy, prod klik tombol. Tools: Argo CD (GitOps), Spinnaker (multi-stage), Jenkins X (K8s native). Feature flag untuk decouple deploy dari release. CD: Continuous Delivery vs Deployment CD = Continuous Delivery atau Deployment. Beda tipis tapi signifikan untuk compliance.
Aspek Continuous Delivery Continuous Deployment Definisi Setiap commit SIAP deploy Setiap commit OTOMATIS deploy Approval prod Manual gate No manual gate Risk Rendah (human review) Tinggi (tanpa gate) Best For Bank, fintech regulated Startup, web consumer Tools Argo CD + manual sync Argo CD auto-sync Audit Approval trail via PR PR + auto-deploy
Bank compliance POJK: Continuous Delivery dengan 4-eyes approval prod. Continuous Deployment berisiko.
CD sama dengan Continuous Delivery atau Continuous Deployment. Beda tipis tapi signifikan untuk compliance. Continuous Delivery: setiap commit SIAP deploy tapi butuh manual approval prod. Continuous Deployment: setiap commit OTOMATIS deploy tanpa gate. Risk: Delivery rendah dengan human review, Deployment tinggi tanpa gate. Best For: Delivery untuk bank fintech regulated, Deployment untuk startup web consumer. Tools: Delivery Argo CD plus manual sync, Deployment Argo CD auto-sync. Audit: Delivery approval trail via PR, Deployment PR plus auto-deploy. Bank compliance POJK: Continuous Delivery dengan 4-eyes approval prod (1 dev 1 ops). Continuous Deployment berisiko untuk data nasabah. Feature flag untuk decouple deploy dari release. Argo CD GitOps untuk K8s Argo CD = continuous delivery tool untuk K8s. Git sebagai source of truth.
Git repo sebagai source of truth Argo CD sync ke cluster Auto atau manual sync mode Drift detection real-time Audit trail Git history Rollback mudah via Git revert Multi-cluster central Developer friendly PR workflow Argo CD open-source CNCF graduated. Gojek, Bank Jago, Red Hat pakai. Flux alternatif.
Argo CD adalah continuous delivery tool untuk K8s. Git sebagai source of truth. Cara kerja: Git repo sebagai source of truth untuk desired state K8s, Argo CD sync ke cluster, auto atau manual sync mode per env, drift detection real-time. Manfaat: audit trail Git history untuk compliance, rollback mudah via Git revert, multi-cluster central dari 1 Argo CD instance, developer friendly PR workflow tanpa perlu kubectl akses ke prod. Argo CD open-source CNCF graduated project. Gojek, Bank Jago, Red Hat pakai. Flux alternatif dengan pendekatan serupa. Pola GitOps ini dipakai enterprise modern sebagai standard untuk K8s deployment. Integrasi dengan Helm dan Kustomize untuk manifest management. Deployment Strategy Empat strategi deployment. Trade-off: complexity vs zero-downtime vs rollback.
Strategi Cara Use Case Rolling Update Pod lama replace bertahap Default K8s, no extra infra Blue-Green 2 env identik, switch traffic DB migration, instant rollback Canary 1% traffic → 10% → 100% Risk-sensitive, validate metric Feature Flag Toggle fitur tanpa redeploy A/B test, dark launch
Bank & fintech: canary + feature flag standard. Memungkinkan rollback cepat tanpa redeploy.
Empat strategi deployment dengan trade-off complexity vs zero-downtime vs rollback. Rolling Update: Pod lama replace bertahap default K8s no extra infra, cocok untuk web app standar. Blue-Green: 2 env identik switch traffic, cocok untuk DB migration dan instant rollback. Canary: 1 persen traffic ke 10 persen ke 100 persen, cocok untuk risk-sensitive dan validate metric. Feature Flag: toggle fitur tanpa redeploy, cocok untuk A/B test dan dark launch. Bank dan fintech: canary plus feature flag standard. Memungkinkan rollback cepat tanpa redeploy. Istio dan Argo Rollouts untuk canary di K8s. LaunchDarkly dan OpenFeature untuk feature flag managed. 4/4
Observability & SRE
Diskusi: bila produksi incident, bagaimana cara tahu root cause dengan cepat?
Jawaban: observability three pillars. Logging centralized untuk tail log. Metric dashboard Prometheus Grafana atau Datadog untuk lihat anomaly. Distributed tracing Jaeger atau Zipkin untuk trace request across service. Alert via PagerDuty atau Opsgenie. SRE Google Site Reliability Engineering framework: error budget, SLO, blameless post-mortem. Tanpa observability, debugging incident shot in the dark. Observability adalah investasi wajib produksi. Three Pillars of Observability Observability = logs + metrics + traces. Tiga pilar wajib produksi.
Event diskrit stdout aplikasi ELK, Loki, CloudWatch Search & filter Time-series numeric CPU, latency, error rate Prometheus, Datadog Dashboard & alert Request journey across service Distributed tracing Jaeger, Zipkin, X-Ray Root cause analysis Tiga pilar saling melengkapi. Bila incident: alert metric → cari trace → baca log. Workflow debugging.
Observability sama dengan logs plus metrics plus traces. Tiga pilar wajib produksi. Logging: event diskrit, stdout aplikasi, tools ELK Loki CloudWatch, search dan filter untuk forensik. Metrics: time-series numeric, CPU latency error rate, tools Prometheus Datadog, dashboard dan alert untuk anomaly detection. Tracing: request journey across service, distributed tracing, tools Jaeger Zipkin X-Ray, root cause analysis. Tiga pilar saling melengkapi. Bila incident: alert metric trigger, cari trace untuk lihat request yang lambat, baca log untuk detail. Workflow debugging observability-driven. Tanpa ini, debugging incident shot in the dark. OpenTelemetry standard open-source untuk instrumentasi统一 tiga pilar. SRE & Error Budget SRE Site Reliability Engineering Google. Error budget = 1 - SLO. Trade-off speed vs reliability.
SLI: indicator (latency, availability) SLO: target (99,9% availability) SLA: contract dengan customer Error budget = 1 - SLO 99,9% SLO = 43,2 menit downtime/bulan Bila budget habis: freeze fitur Fokus reliability Budget renewal tiap bulan/kuartal Error budget = shared KPI dev (speed) vs ops (reliability). Tanpa budget: dev pakai budget untuk fitur. Habis: ops kunci deploy.
SRE Site Reliability Engineering adalah framework Google. Error budget sama dengan 1 dikurang SLO. Trade-off speed vs reliability. Konsep inti: SLI Service Level Indicator seperti latency availability, SLO Service Level Objective target seperti 99,9 persen availability, SLA Service Level Agreement contract dengan customer, Error budget sama dengan 1 dikurang SLO. Implementasi: 99,9 persen SLO setara 43,2 menit downtime per bulan. Bila budget habis: freeze fitur dan fokus reliability. Budget renewal tiap bulan atau kuartal. Error budget sama dengan shared KPI dev yang speed vs ops yang reliability. Tanpa budget: dev pakai budget untuk fitur. Bila habis: ops kunci deploy sampai reliability recovered. Ini menghilangkan konflik klasik dev vs ops. Feature Flag & Dark Launch Feature flag = decouple deploy dari release. Dark launch = production test tanpa user lihat.
Toggle fitur on/off via config Tanpa redeploy aplikasi Targeting: per-user, per-cohort, per-region Tools: LaunchDarkly, OpenFeature, Unleash Deploy fitur ke prod tanpa ekspos user Route traffic test ke feature Validate metric real-world Gojek: dark launch payment baru Feature flag standard Tokopedia & Gojek. Memungkinkan rollback instan tanpa redeploy (cuma toggle off).
Feature flag adalah decouple deploy dari release. Dark launch adalah production test tanpa user lihat. Feature flag: toggle fitur on atau off via config tanpa redeploy aplikasi, targeting per-user per-cohort per-region untuk canary gradual, tools LaunchDarkly komersial OpenFeature open-source standard Unleash self-host. Dark launch: deploy fitur ke prod tanpa ekspos user, route traffic test ke feature untuk validate metric real-world, contoh Gojek dark launch payment baru dengan route test 1 persen internal user. Feature flag standard Tokopedia dan Gojek. Memungkinkan rollback instan tanpa redeploy cuma toggle off dalam hitungan detik. Tanpa feature flag, rollback butuh redeploy yang lambat dan risky. LaunchDarkly Pricing pay-per-flag-per-user. OpenFeature standard CNCF untuk vendor-neutral API. Ringkasan Kunci Pertemuan 12 Hari ini Anda menguasai DevOps culture, CI/CD pipeline, GitOps, observability, dan SRE.
CALMS Culture
Culture + Automation + Lean + Measurement + Sharing.
CI/CD Pipeline
Lint-test-scan-build-deploy. GitOps via Argo CD untuk K8s.
Observability
Logs + Metrics + Traces. SRE error budget untuk trade-off speed-reliability.
Tiga lensa P12: CALMS culture · pipeline otomatis · observability 3 pilar.
Persiapan P13: FinOps cost management. Baca FinOps Framework FinOps Foundation. Kuis 5 menit soal DORA metrics.
Tiga pesan kunci: CALMS Culture Automation Lean Measurement Sharing. CI CD Pipeline lint test scan build deploy dengan GitOps via Argo CD untuk K8s. Observability Logs Metrics Traces dengan SRE error budget untuk trade-off speed reliability. Tiga lensa P12: CALMS culture, pipeline otomatis, observability 3 pilar. P13 kita masuk FinOps cost management — baca FinOps Framework FinOps Foundation. Kuis 5 menit DORA metrics di awal P13. Sampai jumpa.