
Hari 1: Ngebangun SecureBank API dari Nol
Awal perjalanan 60 hari DevSecOps! Bikin REST API perbankan pakai Go dengan 3 endpoint, unit test, dan fondasi struktur proyek yang rapi.
Awal Mula Perjalanan 60 Hari DevSecOps
Hari pertama dari challenge 60 hari DevSecOps Mastery! Targetnya sederhana tapi penting: bikin fondasi proyek yang bakal dipakai terus sampe hari ke-60. Nama proyeknya SecureBank API — sebuah REST API perbankan yang bakal diamankan secara bertahap.
Bukan cuma nulis kode doang, hari ini fokusnya adalah ngeset semuanya dari awal biar rapi dan siap dikembangkan.
Apa yang Dibikin Hari Ini
Struktur Folder Go yang Bener
Bikin struktur folder proyek Go yang ngikutin standar:
cmd/api/— tempat entry point dan handler APIinternal/— handler, middleware, model, repository, servicepkg/crypto/— utility kriptografi (nanti dipakai di fase lanjutan)configs/— konfigurasi aplikasisecurity/— folder buat nyimpen threat model dan audit report
Struktur ini penting banget karena setiap fase challenge bakal nambah file di folder-folder ini. Jadi dari awal harus udah bener.
Tiga Endpoint API
SecureBank API punya 3 endpoint dasar:
GET /health— cek apakah APInya hidupGET /balance?id=ACC001— lihat saldo akunPOST /transfer— transfer duit antar akun
Semuanya pake data in-memory (map) dengan sync.RWMutex biar aman dari concurrent access. Belum pake database dulu — itu nanti di fase berikutnya.
Enam Unit Test
Bukan cuma bikin endpoint doang, tapi juga nulis test buat mastiin semuanya jalan bener:
TestHealthCheck— cek response 200 OKTestGetBalanceFound— cek saldo akun yang adaTestGetBalanceNotFound— cek akun yang ga ada return 404TestTransferSuccess— transfer sukses return 200TestTransferInsufficientBalance— saldo kurang return 400TestTransferAccountNotFound— akun ga ada return 404
Hasilnya? 6 test, 6 PASS. Hijau semua.
Lesson Learned
1. Struktur folder itu investasi jangka panjang. Waktu ngebangun API sederhana rasanya mubazir bikin folder internal/handler, internal/service, dan seterusnya. Tapi karena proyek ini bakal dipakai 60 hari dan nambah kompleksitas terus, struktur yang rapi dari awal bakal ngehemat waktu di depan.
2. sync.RWMutex itu penting buat API yang handle concurrent request. Kalo ga dipake, race condition bisa bikin saldo akun ngaco — bayangin di aplikasi perbankan. Ini sesuatu yang sering lupain waktu pertama bikin API.
3. Nulis test dari hari pertama itu ngasih confidence. Bukan cuma ngeverifikasi kode yang sekarang, tapi juga ngeverifikasi kalau nanti ada perubahan — apakah yang udah jalan tetep jalan. Di hari-hari berikutnya waktu nambahin security scanning, bakal kebantu banget sama test ini.
Kesimpulan
Hari pertama ini fondasinya. Kayak bikin rumah — kalo fondasinya miring, di atasnya pasti bakal ribet. SecureBank API sekarang udah punya 3 endpoint yang fungsional, 6 unit test yang hijau, dan struktur folder yang siap dikembangkan selama 60 hari kedepan.
Besok lanjut ke Hari 2: bikin pipeline CI/CD pake GitHub Actions — biar setiap push ke repo otomatis di-build dan di-test. Ini baru awalnya, masih banyak yang bakal dipelajari!
Kodenya bisa dilihat di repo: github.com/stayrelevantid/chalange-devsecops
Diskusi & Komentar
Autoscaling di GKE Pakai KEDA dan GCP Pub/Sub
Next ArticleHari 2: CI/CD Pipeline Auto Build & Test di GitHub
Artikel Terkait
Hari 5: Trivy SCA Scan Nemukan 4 CVE di Golang API
Hari kelima 60 hari DevSecOps! Scan dependensi Go pakai Trivy dan nemukan 4 CVE termasuk 1 CRITICAL — termasuk library deprecated jwt-go.
Hari 3: Ngecek Kebocoran Secret di Kode Pakai Gitleaks
Hari ketiga 60 hari DevSecOps! Pakai Gitleaks buat scan secret yang bocor di repo — ternyata tool ini cukup pintar bedainya secret asli dan contoh.
Hari 4: Gitleaks di CI, Refactor Config ke Env Var
Hari keempat 60 hari DevSecOps! Integrasikan Gitleaks ke pipeline CI, refactor config ke env vars, dan 3 kali fix error CI — akhirnya pipeline hijau.