2014-11-22
*post*
================================================================================

Docker Adalah Solusi

================================================================================

Akhir-akhir ini saya mencoba mencari solusi untuk infrastruktur software yang saya buat.

Masalahnya adalah semakin beragamnya bahasa pemograman dan utilitas yang saya pakai, bahkan terkadang cuman temporary aja, rasanya notebook kecil yang saya pakai waktu development ini terkesan seperti tumpukan sampah dari baris-baris kode.

Untuk menyelesaikan masalah ini, sebenarnya ada beberapa solusi. yang pertama menggunakan Virtual Machine (VM), yang kedua membeli Virtual Private Server (VPS) di digital ocean dan yang ketiga menggunakan Linux Container(LXC) untuk setiap development stack.

Untuk Solusi pertama yang menggunakan Vitual Machine, kendalanya adalah minimnya spec dari notebook yang saya miliki. RAM dari notebook saya tidak lebih dari 1,8GiB, bayangkan jika setiap VM memakan 512mb, bisa dibayangkan ketika saya harus deploy 3 VM. Keyboardpun membeku, gak bisa ngetik. pernah kejadian sih, hehe

Untuk solusi kedua dengan membeli VPS, udah ketebak lah ya kendalanya. Saya belum punya uang banyak! apalagi harga BBM naik. duh …

Untuk solusi ketiga dengan menggunakan LXC, idenya sama sih sama VM tapi lebih lightweight karena gak pake hypervisor. Tapi … pasti tau lah ya kalau pernah pake LXC ribetnya kaya gimana~

Dari beberapa solusi diatas, solusi ke-3 lah yag paling relevan. Muncullah pertanyaan, ada gak sih alat untuk manage linux container jadi less-painful gitu? Akhirnya bertemulah dengan  docker, manage linux container jadi lebih mudah.

Mulai dari manage dependencies yang sangat verbose dengan adanya Dockerfile.

Setiap stack yang saya miliki saya pisah menjadi komponen sesuai fungsinya, misalnya app, database dan load balancer. gak peduli saya butuh berapa bahasa pemograman yang saya pakai, tinggal spin up container baru. Untuk setiap utilitas yang saya install di container, itu gak mempunyai dampak di OS host saya. jadi tinggal remove aja dengan mudah kalo gak butuh lagi.

Masalah dari tumpukan sampah baris kode di notebook yang saya pakai untuk development pun terpecahkan.

Gak perlu khawatir juga untuk footprint memory, karena docker container hanya butuh memory yang sangat kecil.

Ke untungannya pake docker gak hanya dalam development saja, tapi juga waktu production. banyak banget PaaS yang menyediakan platform untuk docker. tinggal deploy aja, sekarang jadi lebih mudah gitu untuk set up production environment karena identik banget sama development environment.

Are you wanna try docker? Go ahead docker.com

================================================================================

TAGS

*post-tags*

================================================================================

LINKS

*post-links*