Catatan proyek · May 1, 2022
Saya menangani migrasi aplikasi dari hosting ke cloud sekaligus membenahi keamanannya. Pekerjaan ini mencakup akses admin melalui VPN, WAF di depan API, rewrite API transaksi, penataan hak akses MySQL, obfuscation kode, pemisahan aplikasi dan database, serta destructive penetration testing.
Kebutuhan awal
Perpindahan ke cloud menjadi kesempatan untuk membenahi lingkungan aplikasi. Lingkup pekerjaan yang diminta mencakup tujuh hal: VPN untuk admin, WAF di depan API, rewrite API, kebijakan pengguna MySQL, obfuscation kode, pemisahan aplikasi dan database, serta destructive penetration testing.
Pekerjaan yang saya tangani
1. VPN untuk akses admin
Saya menambahkan VPN untuk akses administrasi ke lingkungan server. Jalur akses admin ditata sebagai bagian dari migrasi, terpisah dari kebutuhan akses pengguna aplikasi.
2. WAF di depan API
Saya menempatkan Web Application Firewall di depan API untuk menyaring request sebelum mencapai aplikasi. Lapisan ini melengkapi perbaikan di dalam API.
3. Rewrite API untuk transaksi dan data penting
Saya mengerjakan ulang bagian API dengan prioritas pada proses transaksi dan penanganan data penting. Bagian yang berkaitan dengan operasi dan data sensitif menjadi fokus pembenahan aplikasi.
4. Policy untuk pengguna MySQL
Saya mengatur kebijakan akses pengguna MySQL sesuai kebutuhan penggunaannya. Hak akses database ditata bersama hubungan antara aplikasi dan database yang dipisahkan.
5. Obfuscation kode
Saya menerapkan obfuscation kode sebagai bagian dari kebutuhan project. Obfuscation melengkapi pekerjaan pengamanan, dengan kontrol akses, WAF, dan perbaikan API tetap memiliki perannya masing-masing.
6. Pemisahan aplikasi dan database
Saya memisahkan aplikasi dan database agar keduanya dapat dikelola sebagai komponen tersendiri. Hubungan akses antarkomponen menjadi bagian yang perlu ditata dalam lingkungan cloud.
7. Destructive penetration testing
Saya melakukan destructive penetration testing dalam lingkup pekerjaan yang disepakati. Pengujian ini menjadi bagian dari pemeriksaan keamanan aplikasi dan lingkungan yang dikerjakan.
Kubernetes dan alur deployment
Setelah migrasi, saya juga membangun cluster Kubernetes untuk menjalankan aplikasi-aplikasinya. Konfigurasi infrastruktur saya kelompokkan ke dalam Helm, komponen Kubernetes, Terraform untuk Cloudflare, dan webhook. Repository-nya memuat konfigurasi Argo CD, cert-manager, serta contoh ingress.
Alur deployment menghubungkan GitHub Actions dengan container registry dan Argo CD. Ketika kode di-push ke GitHub, GitHub Actions membangun container image lalu mengirimkannya ke registry. Notifikasi registry diteruskan ke webhook untuk memicu sinkronisasi aplikasi melalui Argo CD ke Kubernetes.
Domain aplikasi dikelola melalui Cloudflare, dengan cloudflared sebagai bagian dari jalur akses ke lingkungan cloud.
Hasil pekerjaan
Penugasan migrasi berlangsung dari Feb 22, 2022 sampai Mar 1, 2022 dan mendapat rating 10/10 dari klien di Projects.co.id.
Pekerjaan ini mencakup perpindahan lingkungan, pengamanan aplikasi, dan penataan akses database. Pengembangan infrastrukturnya kemudian dilengkapi dengan cluster Kubernetes beserta alur build image dan sinkronisasi deployment.
Preview

