Docker sebagai Platform Kontainerisasi yang Memberikan Efisiensi

Docker merupakan salah satu platform terbuka di bawah Lisensi Apache versi 2.0 untuk sysadmin, developer, atau siapa saja yang memiliki tujuan menggunakan platform guna membangun, mendistribusikan, kemudian menjalankan aplikasi dimana saja. Mulai dari data center, laptop, virtual mesin, atau cloud. Platform Docker memungkinkan proses pemaketan aplikasi beserta komponennya dalam kontainer terisolasi secara cepat. Dengan demikian bisa dijalankan di mana saja tanpa harus repot-repot melakukan konfigurasi pada kontainer. Sehingga memang diakui memberikan efisiensi tersendiri bagi para user.

Platform Docker sebagai Kontainerisasi yang Memberikan Efisiensi

Docker bisa digunakan secara free alias gratis. Hanya saja Docker baru bisa dijalankan di mesin dengan sistem operasi Linux. Meskipun demikian tidak perlu khawatir karena generasi Windows selanjutnya akan terdapat fitur container secara native atau alternatif lainnya dengan memanfaatkan mesin virtual pada mesin Windows.

Sudah bukan rahasia bila kernel Linux memiliki fitur cgroups yang mampu mengisolasi sumber daya seperti jaringan, block I/O, CPU, dan memori tanpa harus menjalankan mesin virtual.

Pada awalnya Docker sebenarnya dikembangkan sebagai project internal di dotCloud oleh Solomom Hykes bersama beberapa koleganya seperti Francois Xavier Bourlet dan Andrea Luzzardi. Bisa dibilang Docker adalah evolusi dari teknologi propietary yang selanjutnya menjelma menjadi project open source mirip seperti halnya Cloudlets. Perilisan versi open source Docker juga terbilang baru yakni pada bulan Maret 2013 lalu. Meski masih anyar nyatanya Docker sukses merebut minat banyak orang. Hal ini bisa dilihat dimana hanya dalam waktu sekejap Docker sudah mendapat ribuan tanda bintang dan dilirik ratusan orang, serta ratusan orang kontributor.

Arsitektur Client Server Docker

Arsitektur Client Server merupakan arsitektur yang digunakan Docker. Dalam hal ini dikirimkan request berupa perintah dari Docker client ke Docker daemon seperlu membangun, mengirimkan, lalu menjalankan container Docker. Docker client adalah bentuk Docker binary yang mana merupakan antar muka pengguna utama untuk Docker yang menerima perintah pengguna lalu berkomunikasi dengan Docker daemon. Sementara Docker daemon berjalan di mesin host. Perlu diketahui bahwa user tidak melakukan interaksi langsung dengan Docker daemon melainkan melalui Docker client.

Poin-Poin dalam Penggunaan Docker

Tidak dipungkiri beberapa terminologi atau istilah menjadi komponen penting Docker. Hanya saja terminologi dalam Docker tesebut kerap membuat bingung. Oleh sebab itu berikut diberikan beberapa poin penting menyangkut istilah-istilah yang turut menjadi komponen utama di dalam Docker dan sebaiknya diketahui, diantaranya yaitu:

  • Docker Images

Apa itu Docker Image? Merupakan template yang bersifat read only. Docker Images dibutuhkan seperlu menjalankan container. Dalam membangun image anyar ataupun mengubah image yang telah ada sebelumnya, Docker memberikan cara sederhana. Adapun di dalam Docker Index bisa didapati banyak image yang dibuat oleh pengguna lain yang dapat dimanfaatkan sebagai base image. Misal untuk membuat aplikasi PHP menggunakan mysql dan apache web server, maka cukup mengunduh base image lalu tambahkan aplikasi PHP yang sudah dibuat.

  • Docker Container

Berbeda dengan Docker Image. Merupakan image yang bersifat read write dan berjalan di atas image. Dalam hal ini union file sistem digunakan Docker sebagai back end file sistem container. Semua perubahan yang ada akan disimpan dalam container yang membuat layer baru terbentuk di atas base image. Ringkasnya container adalah layer yang memungkinkan terjadinya proses instalasi suatu aplikasi.

  • Dockerfile

Merupakan builder atau skrip otomasi guna membangun suatu image. Dockerfile berisi semua perintah yang umumnya dilakukan secara manual guna membangun image. Namun, dengan memanfaatkan Docker builder akan didapati Docker membangun image selangkah demi selangkah lalu merampungkan perintah secara berurutan.

  • Docker Registry

Merupakan tempat penyimpanan Docker images yang isinya kumpulan images baik yang dibuat sendiri atau oleh orang lain (tim Docker / komunitas).

Platform Docker vs Mesin Virtual (VM)

Tentu ada yang ingin membandingkan Docker dengan virtual mesin. Adapun dari perbandingan keduanya didapati hasil yang mencengangkan sekaligus membuktikan bahwa Docker memang memberikan efisiensi.

docker efficiency vs vm

Docker terbilang cukup ringan dan cepat dibanding dengan virtual mesin khususnya yang berbasis hypervisor. Dengan demikian Docker tampil sebagai alternatif yang memberikan efisiensi bagi pengembang software dan operator. Pada mesin host, Docker nyaris tidak menambah beban yang berarti jika dibandingkan dengan mesin virtual, sehingga Docker memberikan sejumlah keuntungan, diantaranya:

  • Docker menawarkan layer virtualisasi nyaris tanpa menambah beban seperti halnya virtualisasi dengan basis hypervisor di mesin virtual. Adapun beban besarnya hanya sebesar layanan aplikasi/proses yang berjalan.

  • Docker memungkinkan untuk menjalankan banyak container pada mesin host. Bila dibandingkan dengan mesin virtual memakan memori lebih dari 1 GB, sedangkan Docker hanya 27 MB saja dengan 10 container ubuntu.

Docker dan Perkembangannya

Dengan sejumlah kemudahan yang dijanjikan, wajar bila Platform Docker tampil menjadi standar bagi teknologi berbasis container. Hal ini terbukti dimana Docker banyak diintegrasikan oleh project PaaS (Platform as a Service) diantaranya Deis, Vagrant, Flynn, dan Dokku. Bahkan sejumlah Data Center raksasa didapati pula menggunakan container. Selain itu, diketahui pula bahwa platform provider seperti dotCloud dan Heroku serta pengembang web seperti Twitter dan Google berjalan memanfaatkan teknologi container. Ratusan ribu atau malah dalam skala jutaan container mampu berjalan paralel.

Berdasar hasil riset dan analisis, Platform Docker sukses menjadi perangkat yang memaketkan aplikasi secara independen di dalam container terutama container yang berjalan dalam Linux server. Adapun cara ini digadang-gadang memberi keuntungan dari segi portabilitas dan fleksibilitas yang memungkinkan aplikasi dapat dioperasikan di mana saja baik dalam private cloud, public cloud, bare metal, atau lainnya.

Lebih tepatnya Docker melengkapi kemampuan dari format container yang telah ada sebelumnya, sebut saja LXC. Selebihnya Docker pun memiliki bekal API yang menyuguhkan solusi virtualisasi ringan dengan menjalankan proses yang terisolasi.

Teknologi container Docker dapat dimanfaatkan dalam membuat sistem yang terdistribusi dan dapat dijalankan pada satu proses per node atau satu mesin fisik secara otomatis. Sehingga tiap node dapat digunakan menjadi sumber daya yang tersedia sebagai PaaS. PaaS itu sendiri merupakan gaya pengembang yang sudah lebih dulu dikenal oleh Riak, Cassandra, dan lain sebagainya.

Docker memang layak menyandang predikat sebagai platform kontenerisasi yang memberikan efisiensi dan efektifitas. Terlebih lagi Docker mendukung integrasi dengan platform dan juga infrastruktur sejenis. Sebut saja seperti Jenkins, Chef, Ansible, OpenStack Nova, Puppet, Vagrant, dan Salt.

Case study

Swisscom, telco provider terbesar di Swiss berhasil menjalankan 400 aplikasinya yang sebelumnya menggunakan VM sebanyak 400 menjadi hanya dengan 20 VM saja dengan menggunakan teknologi Docker. Dengan platform ini, perusahaan dapat meningkatkan efisiensi penggunaan infrastruktur yang juga mengurangi biaya (terutama biaya untuk storage, perawatan dan hypervisor licensing).

Partner Member

Sebagai salah satu bentuk komitmen Elitery dalam memberikan layanan terbaik untuk pelanggannya dengan menggunakan solusi Docker (seperti optimisasi infrastruktur), Elitery telah resmi menjadi Docker Partner Member sejak Juli 2016.