Gitlab mengediakan 2 workflow yaitu
- Continuous Integration / Continuous Delivery (CI/CD)
- GitOps (Pull request, Merge request)
Yang jadi pertanyaan kita harus pilih yang mana? Jawabannya It's Depend, what you want todo!
kita bisa menggunakan CI/CD atau GitOps ataupun Combine between of them.
Untuk menggunakan workflow CI/CD temen-temen bisa menggunakan branch
main
, some feature has deprecated (e.g. Kubernetes integration, application performance metrics)feature/main
(development version)
Untuk menggunakan workflow GitOps temen-temen bisa menggunakan branch
gitlab-fluxcd
gitlab-kas
, some feature has deprecated (e.g kubernetes agent)
Semua branch di sertai dengan contoh penggunaanya, temen-temen bisa lihat pada folder examples/<modules>
Untuk menggunakan system DevSecOps ini ada beberapa yang harus temen-temen install diantaranya tools sebagai berikut:
- Gitlab CE/EE
- Gitlab Runner with container executor (docker, podman)
- Kubernetes Cluster
- Sonarqube
- Nexus OSS
- Object storage (AWS s3, Google Cloud Storage, min.io)
- Files storage (NFS, Google Cloud Filestore, AWS fileshare, etc)
Untuk memudahkan proses installasi tools tersebut, temen-temen bisa menggunakan script ansible playbook yang telah saya buatkan.
Overview architecture
Berikut adalah beberapa technology yang nantinya masih tetep digunakan, ditinggalkan, serta rencannya akan digunakan dimasa depan: