Skip to main content

CI/CD Flow

Alur Continuous Integration dan Continuous Deployment

Dokumen ini menjelaskan alur kerja CI/CD (Continuous Integration dan Continuous Deployment) yang digunakan pada environment cloud-native dalam tugas akhir ini. CI/CD berperan penting dalam membuktikan keunggulan environment yang diusulkan dibandingkan deployment monolith manual.


1. Tujuan CI/CD Flow

Tujuan penerapan CI/CD pada sistem ini adalah:

  1. Mengotomatiskan proses build dan deployment aplikasi
  2. Mengurangi human error pada proses deployment
  3. Menjaga konsistensi environment aplikasi
  4. Mempercepat siklus pengembangan dan rilis aplikasi

2. Komponen CI/CD

CI/CD flow pada sistem ini menggunakan komponen berikut:

KomponenFungsi
GiteaSource code management
Gitea RunnerMenjalankan pipeline CI/CD
DockerBuild image aplikasi
Container RegistryMenyimpan image Docker
K3sMenjalankan aplikasi di Kubernetes

3. Alur CI (Continuous Integration)

Tahapan Continuous Integration dimulai ketika terjadi perubahan kode pada repository.

3.1 Trigger Pipeline

  • Developer melakukan git push ke repository Gitea
  • Gitea secara otomatis memicu pipeline CI

3.2 Tahapan CI

  1. Checkout Code Gitea Runner mengambil source code dari repository

  2. Install Dependencies Dependency aplikasi Node.js diinstal menggunakan npm

  3. Static Check (Optional) Pemeriksaan dasar seperti linting atau build check

  4. Build Docker Image Aplikasi dikemas ke dalam Docker image

  5. Push Image ke Registry Docker image dikirim ke container registry


4. Alur CD (Continuous Deployment)

Setelah tahap CI berhasil, proses berlanjut ke Continuous Deployment.

4.1 Deployment ke Kubernetes

  1. Gitea Runner menjalankan perintah deployment
  2. Kubernetes manifest (Deployment & Service) diterapkan ke cluster K3s
  3. Kubernetes membuat atau memperbarui pod aplikasi

4.2 Update Service

  • Jika terdapat perubahan versi image, Kubernetes melakukan rolling update
  • Service tetap dapat diakses selama proses update

5. Alur CI/CD Secara Keseluruhan

Urutan CI/CD flow dapat dijelaskan sebagai berikut:

  1. Developer melakukan perubahan kode
  2. Kode di-push ke repository Gitea
  3. Pipeline CI dijalankan oleh Gitea Runner
  4. Docker image dibangun dan dikirim ke registry
  5. Pipeline CD menerapkan update ke cluster K3s
  6. Kubernetes melakukan rolling update dan self-healing

6. Perbandingan dengan Deployment Monolith

AspekMonolith ManualCI/CD Cloud Native
Proses DeploymentManualOtomatis
KonsistensiRendahTinggi
Risiko Human ErrorTinggiRendah
RollbackSulitMudah

7. Kontribusi CI/CD terhadap Keunggulan Sistem

Penerapan CI/CD memberikan kontribusi signifikan terhadap keunggulan sistem, antara lain:

  • Mempercepat waktu deployment
  • Menjamin konsistensi aplikasi
  • Mendukung skalabilitas dan reliability
  • Meningkatkan efisiensi operasional

8. Kesimpulan

Dengan menerapkan CI/CD menggunakan Gitea, Gitea Runner, dan K3s, sistem deployment yang diusulkan mampu memberikan proses rilis aplikasi yang lebih cepat, stabil, dan terstandarisasi dibandingkan deployment monolith konvensional.