Assalamualaikum wr,wb. Halo sahabat-sahabat adaptive network semuanya. Perkenalkan saya Peiter Solarso Pasaribu mahasiswa Teknik Telekomunikasi, Pada kesempatan kali ini saya akan sedikit menjelaskan apa itu docker dan kubernetes sesuai pengetahuan saya. Tanpa bicara Panjang lebar, langsung saja saya mulai.


Apa itu Docker ?

Docker adalah seperangkat platform sebagai produk layanan yang menggunakan virtualisasi tingkat OS untuk mengirimkan perangkat lunak dalam paket yang disebut wadah (container).

Docker sendiri bisa didefinisikan sebagai project open source dengan menyediakan jenis platform terbuka yang digunakan untuk developer juga administrator admin, supaya pengembang bisa membangun, mengemas, serta menjalankan berbagai aplikasi dalam lokasi manapun sebagai sebuah container  yang bersifat ringan.

Mungkin anda belum paham berdasarkan penjelasan diatas dan mungkin juga anda berpikir “lantas apa bedanya docker dengan virtual machine seperti virtualbox?”. Baiklah akan saya jelaskan agak rinci sepengetahuan saya.

Virtual Machine vs Container Manager

Berdasarkan gambar diatas sudah terlihat jelas perbedaaan antara konsep virtual machine dengan container.

Konsep virtual machine adalah menjalankan semua aplikasi didalam sebuah guest os (os virtual). Sedangkan konsep container yaitu menjalankan semua aplikasi didalam sebuah pembungkus yang disebut container.

Lantas apa keuntungan dari penggunaan konsep container ?

Apabila kita menggunakan konsep VM sebagai tempat membangun aplikasi kita, maka kita membutuhkan waktu lebih untuk menjalankan aplikasi kita. Karena konsep VM  perlu menjalankan guest osnya terlebih dahulu.

Sedangkan konsep container tidak memerlukan waktu untuk menjalankan guest osnya, karena pada dasarnya konsep container tidak menggunakan guest os untuk menjalankan aplikasi.

Lantas bagiamana aplikasi kita berjalan jika konsep container tidak menggunakan guest os ?

aplikasi kita berjalan didalam sebuah container dan tiap – tiap container ini berjalan  diatas os dimana container manager itu diinstall.

Selain itu, keuntungan lain dari penggunaan container adalah kemudahan dan efisiensi docker untuk membangun sebuah aplikasi.

Maksudnya bagaimana ?

Baiklah saya akan langsung menjelaskannya dalam sebuah contoh.

Semisal kita ingin membangun sebuah website dan kita ingin website ini dibangun di banyak server sekaligus (semisal server a, server b, server c), maka yang kita perlu lakukan hanya menginstall/menyiapkan komponen yang dibutuhkan satu persatu ke 3 server itu secara bergantian (install webserver, library, database di server a, lanjut install webserver, library, database di server b, dan lanjut install satu persatu komponen di server c) tentu hal tersebut sangat menyita banyak waktu.

Dengan adanya docker, hal yang barusan saya jelaskan menjadi lebih simple dilakukan dan waktu yang dibutuhkan menjadi lebih sedikit.

Karena dengan menggunakan docker kita hanya perlu menginstall komponen-komponen yang dibutuhkan (webserver,library,database) kedalam sebuah container lalu upload ke docker hub (container registry).

Jika sudah, kita hanya perlu mengunduhnya ke server2 yang dituju dan menjalankan saja tanpa perlu melakukan instalasi.


Apa itu Kubernetes ?

Kubernetes merupakan platform open-source yang digunakan untuk melakukan manajemen workloads aplikasi yang dikontainerisasi, serta menyediakan konfigurasi dan otomatisasi secara deklaratif.

Kubernetes berada di dalam ekosistem yang besar dan berkembang cepat. Servicesupport, dan perkakas Kubernetes tersedia secara meluas. Atau lebih simple nya Kubernetes adalah sebuah container orkestrasion yang memiliki fungsi untuk mengontrol banyak container sekaligus yang dikontrol oleh sebuah pengontrol saja.

Hal yang dimaksud mengontrol disini mencakup banyak hal mulai dari membuat banyak container sekaligus, memastikan container selalu berjalan, melakukan pembuatan container ulang apabila terdapat container yang rusak atau mati, memilih node mana (server mana) yang akan dikirimkan container kita, dan masih banyak lagi kegunaan Kubernetes.

Manfaat/Keuntungan Kubernetes

Service discovery and load balancing

Kubernetes dapat mengekspose aplikasi didalam container kita ke dunia luar (internet) baik menggunakan dns maupun ip address. Dengan menggunakan Kubernetes juga, kita dapat melakukan pembagian-pembagian traffic secara merata yang mengarah ke server aplikasi kita dengan begitu maka tidak akan ada server yang terbebani begitu banyak traffic jaringan.

Automated rollouts and rollbacks

Di kubernetes terdapat sebuah resource yang bernama deployment. Berkat adanya deployment ini kita menjadi dapat melakukan upgrade versi aplikasi kita ke versi terbaru dengan mudah dan tidak hanya itu kita bisa mengembalikan versi aplikasi kita ke versi sebelumnya baik dengan cara manual maupun otomatis.

Self Healing

Kubernetes merestart container yang gagal, mematikan dan mengganti container yang tidak menanggapai request, dan kubernetes tidak akan memberikan trafik ke container sampai container benar-benar siap untuk menerima request (ready to serve). dan masih banyak lagi.

Saya rasa cukup sampai disini penjelasan dari saya. Penjelasan saat ini saya hanya membahas apa itu docker dan Kubernetes secara teori, next apabila ada kesempatan saya akan mulai menjelaskan docker dan Kubernetes secara teknis. Sekian terimakasih, apabila ada pertanyaan silahkan berkomentar.

Last modified: October 18, 2020

Author

Comments

Write a Reply or Comment

Your email address will not be published.