Kalau anda biasa memakai WSL (Windows Subsystem Linux) untuk pengembangan maka sekarang bisa saya katakan ada fitur upgrade gratis yaitu anda bisa memakai Docker, di WSL 2 tepatnya! ๐
WSL 2
Perbedaan terbesar dari WSL 2 dari yang sebelumnya adalah WSL 2 memakai kernel Linux tersendiri (forking-an kernel.org) sehingga pasti ada benefit seperti peningkatan perfomansi, booting time yang lebih cepat, penggunaan resource yang lebih sedikit dan kemampuan full system call sehingga memungkinkan software seperti Docker bisa di instal secara langsung ๐.
Windows 10 Update
Pastikan Windows 10 telah terupdate, untuk amannya pake saja versi 2004. Anda bisa memakai tool seperti Windows 10 Update Assistant atau kalau lebih ekstrim fresh install OS โ๏ธ.
Perlu di ingat bahwa anda memerlukan Windows 10 Pro untuk memakai fitur virtualisasi.
Fitur Windows
Selanjutnya enable beberapa fitur windows yaitu Virtual Machine Platform dan Windows Subsystem For Linux
Distro WSL
Anda bisa menginstall distro kesukaan anda di WSL tetapi disini saya pakai Ubuntu 18.04 LTS.
Secara default distro yang terinstal masih memakai WSL 1 sehingga untuk mengubahnya ke WSL 2, cek dahulu dengan perintah berikut
wsl -l -v
kemudian untuk mengubah distro supaya berjalan di WSL 2
wsl --set-version Ubuntu-18.04 2
atau jika anda ingin secara default nanti distro yang terinstall memakai WSL 2 ketikkan saja perintah berikut
wsl --set-default-version 2
Docker WSL 2
Langkah kemudian instal Docker Desktop untuk Windows yang mendukung WSL 2 Windows 10. Silahkan mengunduh Docker Desktop.
Kelebihan utama dari Docker Desktop ini adalah terintegrasinya antara Docker dan Kubernetes artinya anda tidak hanya mendapatkan fitur Docker di WSL 2 tetapi juga lingkungan deployment yaitu Kubernetes single node cluster dalam lingkungan lokal๐.
Docker Desktop juga menyediakan kubectl
yaitu cli tool untuk berinteraksi dengan kluster Kubernetes di Windows 10.
Sebagai contoh untuk mengecek status pods pada kluster Kubernetes
PS C:\Users\Equan> kubectl get pods
NAME READY STATUS RESTARTS AGE
kubernetes-getting-started-bd5fd58b5-7klp9 1/1 Running 2 10h
kubernetes-getting-started-bd5fd58b5-w6vt4 1/1 Running 2 10h
kubernetes-getting-started-bd5fd58b5-wr2d8 1/1 Running 0 10h
tidak hanya itu saja,dashboard dari Docker Desktop sangat berguna untuk memonitor ataupun mengatur docker dan juga untuk pods.
Kalau anda baru mengetahui atau baru mempelajari Kubernetes, Saya sarankan mengikuti Tutorial Kubernetes. Intinya Kubernetes ada untuk mengatur layanan supaya tidak terjadi down time service dan juga memudahkan dalam rescale service.
Tool Tambahan Pengembangan
Karena Saya memakai Visual Studio Code (VSC) dalam mengembangkan aplikasi maka ada beberapa saran Saya mengenai pemakaian WSL & Docker di VSC.
Visual Studio Code + Remote WSL
Saya sarankan menginstal ekstensi Remote WSL untuk editor Visual Studio Code.
Salah satu benefit melakukan pengembangan di WSL adalah terpusatnya kode pengembangan di satu tempat dibandingkan jika anda menginstal stack di Windows 10 secara langsung yang biasanya menurut pengalaman saya sangat morat-marit (alias berantakan!).
Visual Studio Code + Docker
Pastikan juga menginstal ekstensi Docker di Visual Studio agar lebih mudah dalam penanganan dan pengawasan image/container.
Secara umum bisa dikatakan kita memakai Visual Studio Code di Windows 10 untuk mengembangkan aplikasi yang berada di lingkungan Linux dan semua itu terjadi pada satu mesin ๐ฒ dan itu mungkin dengan adanya ekstensi seperti Remote WSL plus tambahan dukungan docker native di WSL 2.
Visual Studio Code + Kubernetes
Karena Docker Desktop WSL 2 juga mendukung Kubernetes maka akan lebih baik jika anda menginstal ekstensi Kubernetes pada VSC.
Ekstensi ini mendukung banyak platform Kubernetes seperti Azure, Minikube, Amazon Web Service, GCP dll.
Docker Hub
Kalau sempat silahkan mencoba Docker Kalender Jawa - Modul ES6 ๐.
Referensi
Dokumentasi resmi Microsoft Docker WSL 2
Mau tidak mau kita sebagai programer harus menyesuaikan norma baru dalam pengembangan aplikasi yaitu mengedepankan kemudahan instalasi dan distribusi perangkat lunak yang kita kembangkan dan itu bisa dicapai salah satunya kalau kita mempelajari solusi seperti Docker dan Kubernetes.
Platform OS tidak begitu penting menurut saya hanya saja beberapa tahun terakhir saya melihat kalau Windows 10 semakin ramah untuk pengembangan dan deployment aplikasi, jadi bebas bebas saja anda mau memakai Linux maupun macOS tapi yang pasti tetap produktif dan solutif.
Ok. Semangat koding! ๐จ๐ฝ