Apakah infrastruktur cloud yang kompleks benar-benar diperlukan?
- Mendengarkan pembahasan Pieter Levels di Lex Friedman Podcast memberikan banyak wawasan
- Pieter membangun bisnis mikro SaaS yang sukses dengan menjalankan aplikasi di satu server saja
- Penting untuk menghindari kompleksitas infrastruktur cloud dan fokus pada product-market fit
- Ini mungkin tidak cocok untuk semua startup, tetapi kita perlu menghindari kompleksitas demi kompleksitas itu sendiri
Pengamatan terbaru
Proyek 1: Lambda yang berlebihan
- Menjalankan berbagai layanan dengan 20-30 fungsi Lambda
- Pekerjaan latar belakang menggunakan SQS dan Lambda
- Log yang tersebar di CloudWatch
Hasil: debugging sulit, perubahan sulit dilakukan, dan deployment menjadi rumit. Ini sebenarnya bisa disederhanakan dengan satu container NodeJS atau aplikasi Python Flask/FastAPI dan Redis
Proyek 2: Kekacauan microservice
- Menjalankan 7 microservice kecil di Kubernetes (EKS)
- Layanan terpisah untuk CRUD dan business logic
Hasil: lebih banyak waktu dihabiskan untuk mengelola infrastruktur. Muncul pertanyaan apakah pemisahan sejauh ini memang diperlukan
Kekuatan konfigurasi satu server
- Server modern sangat kuat. Hetzner dan latitude.sh menyediakan VM yang kuat dengan harga terjangkau
- VM GCP dan instance EC2 juga memiliki harga yang masuk akal
- Menyediakan daya komputasi yang kuat dengan RAM 40GB dan multi-core
- Semuanya terpusat sehingga lebih mudah dikelola
- Masalah penskalaan hingga jutaan QPS bisa diselesaikan nanti
Yang dibutuhkan untuk konfigurasi satu VM:
- Mesin yang kuat (EC2, GCP VM, Hetzner, dll.)
- Akses yang aman (HTTPS, SSH dengan pembatasan IP, atau SSM)
- CI/CD untuk deployment tanpa downtime
- Konfigurasi DNS
- Backup database secara berkala
- Redundansi dengan VM siaga
Docker Compose
- Docker Compose sangat bagus untuk pengembangan lokal
- Dapat mengelola banyak layanan dengan satu perintah
- Lebih jarang digunakan di lingkungan production
- Ada kemungkinan downtime saat update
Docker Compose Anywhere: proyek akhir pekan
- Docker Compose Anywhere dikembangkan selama akhir pekan
- Menyediakan fitur berikut:
- Penyiapan server Linux sekali klik melalui GitHub Actions
- Deployment tanpa downtime menggunakan GitHub Container Registry dan Docker Rollout
- Pengelolaan environment variable dan secret (mempertimbangkan penggunaan
ageatausops) - Backup Postgres otomatis melalui GitHub Actions
- Dukungan multi-app di satu VM
- SSL otomatis melalui Traefik dan Let's Encrypt
Beberapa hal yang perlu dipertimbangkan
Untuk keamanan:
- Tetapkan aturan firewall yang ketat (buka hanya port yang diperlukan)
- Jaga keamanan SSH key (di AWS lebih memilih SSM, di GCP lebih memilih CLI)
- Gunakan bastion host untuk memperkuat keamanan
- Pertimbangkan perlindungan secret serta penggunaan WAF atau Cloudflare
Untuk perlindungan data:
- Kirim backup database terenkripsi ke cloud storage yang aman (misalnya S3)
- Buat snapshot disk secara berkala untuk redundansi tambahan
- Terapkan kebijakan retensi untuk backup dan snapshot
Ringkasan GN⁺
- Artikel ini menekankan bahwa startup sebaiknya menghindari infrastruktur cloud yang kompleks dan fokus pada product-market fit dengan konfigurasi yang sederhana
- Artikel ini memperkenalkan kelebihan konfigurasi satu server dan cara deployment sederhana dengan memanfaatkan Docker Compose
- Penting untuk fokus pada pengembangan produk inti tanpa membuang waktu untuk mengelola infrastruktur yang rumit
- Proyek dengan fungsi serupa antara lain Heroku dan DigitalOcean
1 komentar
Komentar Hacker News
Dalam banyak proyek, tim yang ingin memakai teknologi terbaru sering kali menghasilkan keluaran yang berkualitas rendah
Di startup kecil, satu VM digunakan untuk menjalankan nginx, webapp, postgres, redis, dan lain-lain
SaaS dimulai di satu server lalu diperluas ke beberapa server
Fitur inti Kubernetes seperti deployment, layanan pod, dan blue-green deployment memang berguna
Banyak orang membangun infrastruktur yang rumit untuk mempelajari Kubernetes
Bahkan buku tentang microservices juga menyarankan, "bangun monolith terlebih dahulu"
Tidak disarankan memilih framework yang rumit sejak awal
Di cloud, hanya menggunakan VM, block dan blob storage, DNS, IdP, serta registrar domain
Selama 6 tahun, proyek dijalankan di satu VPS seharga $10/bulan
Lebih menyukai solusi berbasis cloud, tetapi menggunakannya secara selektif