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:
- Mengotomatiskan proses build dan deployment aplikasi
- Mengurangi human error pada proses deployment
- Menjaga konsistensi environment aplikasi
- Mempercepat siklus pengembangan dan rilis aplikasi
2. Komponen CI/CD
CI/CD flow pada sistem ini menggunakan komponen berikut:
| Komponen | Fungsi |
|---|---|
| Gitea | Source code management |
| Gitea Runner | Menjalankan pipeline CI/CD |
| Docker | Build image aplikasi |
| Container Registry | Menyimpan image Docker |
| K3s | Menjalankan 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 pushke repository Gitea - Gitea secara otomatis memicu pipeline CI
3.2 Tahapan CI
-
Checkout Code Gitea Runner mengambil source code dari repository
-
Install Dependencies Dependency aplikasi Node.js diinstal menggunakan npm
-
Static Check (Optional) Pemeriksaan dasar seperti linting atau build check
-
Build Docker Image Aplikasi dikemas ke dalam Docker image
-
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
- Gitea Runner menjalankan perintah deployment
- Kubernetes manifest (Deployment & Service) diterapkan ke cluster K3s
- 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:
- Developer melakukan perubahan kode
- Kode di-push ke repository Gitea
- Pipeline CI dijalankan oleh Gitea Runner
- Docker image dibangun dan dikirim ke registry
- Pipeline CD menerapkan update ke cluster K3s
- Kubernetes melakukan rolling update dan self-healing
6. Perbandingan dengan Deployment Monolith
| Aspek | Monolith Manual | CI/CD Cloud Native |
|---|---|---|
| Proses Deployment | Manual | Otomatis |
| Konsistensi | Rendah | Tinggi |
| Risiko Human Error | Tinggi | Rendah |
| Rollback | Sulit | Mudah |
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.