Sebagai seorang praktisi IT yang belajar secara otodidak, saya menyadari bahwa proses memahami dunia DevOps dan pemrograman tidaklah selalu mulus. Saya tidak berasal dari jalur pendidikan formal di bidang ini, jadi banyak hal yang harus saya pelajari dari nol sendiri, lewat artikel, dokumentasi, dan trial-error yang sering kali membuat frustrasi.

Learning curve saya mungkin bisa dibilang lebih lambat dibandingkan teman-teman yang belajar dengan sistem yang terstruktur. Mereka sudah mengenal konsep dasar pemrograman, jaringan, dan sistem sejak awal. Sementara saya, harus membongkar satu per satu bagian dari sebuah sistem hanya untuk memahami bagaimana server berjalan, bagaimana aplikasi terhubung ke database, dan bagaimana request ditangani oleh web server.

Di awal perjalanan, saya terbiasa melakukan semua hal secara manual. Termasuk menyiapkan LEMP stack di Linux, instal Nginx, atur konfigurasi, pasang PHP, hubungkan dengan MySQL, dan sesuaikan permission file. Proses ini memang membantu saya memahami fondasi dari sebuah aplikasi web. Tapi setelah menjalani itu selama bertahun-tahun, saya mulai merasakan satu hal penting: terlalu banyak waktu yang terbuang untuk setup, bukan untuk development-nya sendiri.

Sampai akhirnya saya mulai mengenal Docker. Awalnya saya merasa teknologi ini terlalu “tinggi”. Tapi rasa penasaran dan kebutuhan untuk bekerja lebih efisien akhirnya mendorong saya untuk mencoba. Dan ternyata Docker justru membuat semuanya terasa lebih masuk akal.

Dengan Docker, saya bisa membuat environment development yang siap pakai hanya dengan satu file docker-compose.yml dan satu perintah. Nginx, PHP, MySQL, bahkan phpMyAdmin, semuanya langsung berjalan tanpa perlu instalasi manual yang melelahkan. Tidak ada lagi konflik dependency, error karena versi yang berbeda, atau file konfigurasi yang saling bertabrakan.

Yang paling saya syukuri dari penggunaan Docker adalah konsistensi. Saya tidak perlu khawatir lagi bahwa aplikasi saya hanya berjalan di laptop saya saja. Saya bisa pastikan bahwa project saya akan bekerja sama baiknya di laptop orang lain atau di server manapun, karena semuanya sudah terdefinisi secara eksplisit di dalam container.

Docker juga sangat memudahkan saya dalam mengelola banyak project dengan kebutuhan berbeda. Mau Laravel di PHP 8.2? Bisa. Mau buka ulang project lama yang masih pakai PHP 7.4? Gak masalah. Semua bisa jalan beriringan, tanpa harus mengorbankan stabilitas sistem.

Dari segi dokumentasi dan kolaborasi, Docker juga sangat membantu. Saya cukup membagikan file Compose, dan rekan kerja atau kontributor lain bisa langsung menjalankan project tanpa proses setup yang rumit. Ini sangat menyederhanakan proses onboarding dan mempercepat pengembangan.

Jadi, sebagai seseorang yang terbiasa belajar dari nol, saya merasa Docker adalah salah satu alat terbaik yang bisa membantu kita belajar sambil bekerja secara lebih efisien dan terstruktur. Kita tetap bisa memahami sistem di baliknya, tapi tanpa harus terjebak di dalam kerumitan setup yang sebetulnya bisa dihindari.

Ke depannya, saya berencana untuk membuat beberapa tutorial singkat dan praktis tentang Docker, berdasarkan pengalaman pribadi saya dengan pendekatan yang mudah dicerna dan langsung bisa diterapkan. Nantikan di hermanspace.id.