Docker sebagai Platform Kontainerisasi yang Memberikan Efisiensi

Docker is one of open platform under the Apache License version 2.0 for sysadmins, developers, or anyone who has a goal to use the platform to build, distribute, and run the application anywhere. Starting from the data center, laptop, virtual machine, or a cloud. Docker Platform enables application packaging process and its components in isolated containers quickly. Thus can run anywhere without having to bother to set up the container. So were admittedly provides its own efficiency for the user.

The Docker Platform as containerize That Deliver Efficiency

Docker can be used for free. Docker can be run only on a machine with a Linux operating system. However do not worry because the next generation of MS. Windows will have native container features or alternatively by utilizing a virtual machine on a Windows machine.

It is no secret when the Linux kernel features a cgroups are able to isolate resources such as networks, I/O blocks, CPU, and memory without having to run virtual machines.

At first Docker was actually developed as an internal project at dotCloud by Solomom Hykes shared some of his colleagues as Francois Xavier Bourlet and Andrea Luzzardi. You could say Docker is the evolution of a proprietary technology that is subsequently transformed into a similar open source project as well as Cloudlets. The release of Docker open source version also new, in March 2013. Although still newer fact Docker successfully captured the interest of many people. This can be seen in just a short time Docker has thousands of asterisks and atract hundreds of people, as well as hundreds of contributors.

Docker Client Server Architecture

Docker using Client Server architecture. In this case the request is sent in the form of an order from a client to Docker Daemon such build, send, and run the container. Docker client is a binary form which is the primary user interface for Docker who receive the user’s commands and communicate with Docker daemon. While Docker daemon running on the host machine. Note, user does not interact directly with Docker Daemon but through 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.