Latar Belakang

Adi Purnama

Adi Purnama

Sedikit cerita...

Beberapa waktu lalu, saya mencoba untuk eksplorasi deployment secara manual. Seperti tahun-tahun sebelum adanya Docker. Hanya ada akses SSH, tools deployment seperti Capistrano. Semua dependensi: database, redis, web server, langsung install di server pakai SSH.

Tebak, berapa waktu yang saya habiskan?

Hampir seharian. Itu juga masih belum berhasil. Ada aja errornya. Heran :)

Akhirnya saya berhenti sejenak. Merenung.

Bro, kalau kayak gini terus, habis waktu kita. Waktu yang terbuang ini bisa kita pakai untuk hal lain yang lebih prioritas.

Shipping our code to production shouldn't be this hard.

Akhirnya saya nggak lanjut eksplorasi, dan kembali menggunakan Dokku sebagai tools utama deploy aplikasi. Saya harus terima dengan tradeoff storage yang cepat habis karena build cache yang menumpuk setiap kali ada deployment.

Yah, bukan issue besar sih. Cache tersebut masih bisa dihapus manual secara berkala.

Tantangan utama yang ingin saya selesaikan adalah: bagaimana caranya deploy banyak aplikasi di satu server yang sama, tanpa harus ribet ngurusin deployment from scratch.

Saya punya beberapa aplikasi yang berjalan di production. Aplikasi-aplikasi ini belum perlu resource yang terlalu gede. Tapi, saya host aplikasi-aplikasi tersebut di 1 server per aplikasi. Saya rasa terlalu overkill, dan bikin boncos juga.

Itulah tujuan saya explore deployment pakai Capistrano. Supaya tau seberapa besar effort deploymentnya. Dan... menurut saya cukup besar.

Lalu saya berpikir. Bagaimana kalau saya coba pakai Dokku saja. Sepemahaman saya, berdasarkan dokumentasi resminya, harusnya sangat memungkinkan untuk deploy banyak aplikasi dalam satu server.

Saya coba proof of concept nya, dengan deploy project iseng saya yang udah mati suri: Cirian, di salah satu server aplikasi.

Yap, ternyata bisa!

Nggak pake lama, saya langsung memindahkan semua aplikasi yang ada ke satu server.

As per saya nulis ini, sudah ada 4 aplikasi yang berjalan di server.

***

Buku ini buat siapa?

Buku ini sangat cocok untuk para programmer/solopreneur yang kesulitan dalam hal deployment aplikasi, yang masih merasa belum perlu memakai layanan serverless.

Serverless is great, for sure. Tapi dari segi biaya, serverless lebih mahal dari sewa server biasa. Di serverless, app server dan database server perlu 2 instance yang berbeda. 1 instance database server harganya lumayan mahal, untuk spec yang nggak seberapa.

Padahal, needs mereka belum sampai situ. Bisa jadi, 1 VPS dengan RAM 2GB dan storage 60GB pun masih sangat cukup. Harganya di bawah 100rb. Database dan aplikasi bisa diinstall di server yang sama.

Untuk backup, cukup sewa layanan S3-compatible storage. Buat script untuk upload database secara berkala ke storage tersebut. Beres deh.

Efisiensi cost itu penting, karena kebanyakan programmer/solopreneur nggak didanai oleh investor. Uang yang ada, selain untuk sewa server, bisa digunakan untuk hal lain. Misal, marketing.

Kalau produk kita bagus, orang banyak yang suka dan mau beli, dengan operational cost yang minim, kita bisa mendapatkan keuntungan yang banyak.

Ujung-ujungnya, tetap kembali ke prinsip ekonomi.