Skip to main content

Environment

1. Development Environment​

Environment untuk pengembangan dan debugging. Bersifat fleksibel, sering berubah, menggunakan data dummy, dan tidak fokus pada performa atau keamanan. Setiap developer bekerja di branch masing-masing sebelum merge ke branch development.

2. Staging Environment​

Lingkungan yang menyerupai production sebagai tempat pengujian akhir seperti integration test, UAT, dan load test. Menggunakan data mirip production (anonim). Environment ini di-trigger dari branch staging.

3. Production Environment​

Lingkungan aplikasi live yang berjalan untuk end-user. Stabil, aman, dan menggunakan data asli. Setiap perubahan harus melalui proses review dan deployment yang ketat dari branch production.

Alur CI/CD (Development → Staging → Production)

1. Development Stage​

Workflow:​

  1. Developer membuat fitur di branch masing-masing (feature branch)
  2. Developer push ke repository branch pribadi
  3. Developer melakukan merge ke branch development
  4. Merge ke development otomatis trigger CI/CD build
  5. Aplikasi di-deploy ke environment server Development

Proses CI/CD:​

  • Build otomatis dijalankan
  • Unit test dan linting dieksekusi
  • Artifact dihasilkan dan disimpan ke registry
  • Deploy otomatis ke server Development

2. Staging Deployment​

Workflow:​

  1. Setelah fitur stabil di Development, developer melakukan merge dari branch development ke staging
  2. Merge ke staging otomatis trigger CI/CD build
  3. Aplikasi di-deploy ke environment server Staging

Proses Testing di Staging:​

  • Integration test dijalankan
  • API test dan E2E test
  • Performance test dan load test
  • QA melakukan User Acceptance Testing (UAT)
  • Menggunakan data mirip production (sudah di-anonimkan)

3. Production Deployment​

Workflow:​

  1. Setelah pengujian akhir berhasil di Staging
  2. Developer/DevOps melakukan merge dari branch staging ke production
  3. Merge ke production otomatis trigger CI/CD build
  4. Aplikasi di-deploy ke environment server Production (LIVE)

Proses Deployment ke Production:​

  • Deployment memerlukan approval dari stakeholder
  • Smoke test dijalankan setelah deployment
  • Monitoring aktif untuk log, metrics, dan tracing
  • Rollback otomatis jika terdeteksi masalah critical

Diagram Alur

Branch Strategy

BranchEnvironmentTriggerPurpose
feature/*LocalManual pushDevelopment fitur baru
developmentDevelopment ServerAuto on mergeTesting awal & integrasi
stagingStaging ServerAuto on mergeUAT & pengujian akhir
productionProduction ServerAuto on mergeAplikasi live untuk end-user

Best Practices

Development​

  • Setiap developer bekerja di feature branch terpisah
  • Naming convention: feature/nama-fitur atau bugfix/nama-bug
  • Selalu pull latest dari development sebelum merge
  • Code review dilakukan sebelum merge ke development

Staging​

  • Merge ke staging hanya dilakukan setelah fitur stabil di development
  • Testing lengkap harus dilakukan di staging
  • Data staging harus mirip production tapi sudah di-anonimkan
  • Tidak boleh test langsung di production

Production​

  • Merge ke production memerlukan approval
  • Deployment dilakukan di waktu low-traffic
  • Monitoring harus aktif selama dan setelah deployment
  • Siapkan rollback plan jika terjadi masalah
  • Dokumentasi deployment harus lengkap