MEMAHAMI TEKNOLOGI CONTAINERIZATION

      Apa itu Containerization?

Containerization itu sendiri adalah pendekatan dimana kita menjalankan multiple instances (Containers) pada satu Operating System (OS) yang sama, dimana containers tersebut akan memiliki shared kernel.

Serupa dengan VM, dimana pada satu Host OS kita dapat menjalankan berbagai aplikasi lain yang terisolasi dari Host kita. Perbedaan utama antara virtualization dan containerization adalah pada virtualization kita menyalakan OS di dalam OS, sehingga secara resource dan performance akan lebih berat dibandingkan dengan containerization yang melakukan isolasi dari masing-masing aplikasi ke dalam virtual environment dengan shared kernel milik host. Tetapi bukan berarti virtualization adalah teknologi buruk. Terdapat 2 jenis container yang umum dapat kita pergunakan, yaitu:

 

Container Berbasis Sistem Operasi (OS Container), yakni container yang memberi isolasi pada level sistem operasi dan memnfaatkan kernel yang sama dari suatu induk, contohnya adalah LXC, OpenVZ, Linux VServer, BSD Jails and Solaris Zones.

Container Berbasis Aplikasi (Applcation Container), yakni container yang memberikan isolasi pada level aplikasi dengan memanfaatkan beberapa komponen yang ada pada sistem operasi induk, ditambah beberapa komponen pada kontainer-kontainer lain yang menjadi basis dari berjalannya sebuah aplikasi, contohnya adalah Docker danRocket (rkt).

Docker

Docker adalah salah satu teknologi coontainer yang paling banyak digunakan. Bahkan, ketika orang merujuk ke container, mereka kebanyak memahami yang dimaksud itu Docker, selain Docker, ada beberapa teknologi container Open Source sepeti rkt oleh CoreOS. Juga, perusahaan besar yang membangun mesin container mereka sendiri. Misalnya, Imctfy oleh Google.

 

Docker Container terdiri dari berbagai lapisan. Ini termasuk images dan binari yang dikemas kedalam satu paket. Base image memiliki sistem operasi container. OS image dan OS host dapat berbeda atau sama.

 

Ada beberapa image diatas base image. Mereka bersama-sama membuat sebagian dari container. Pengaturannya agak dinamis. Misalnya, diatas base image, ada image yang berisi dependensi apt-get. Diatas itu, mungkin ada image yang berisi aplikasi biner. tetapi bagian yang paling menarik adalah, jika ada dua container dengan lapisan image 1,2,3 dan 1,2,4 maka anda hanya perlu menyimpan satu salinan setiap image secara lokal mauput di repositori.

 

Docker dimuat dengan banyak fitur keren, seperti:

 

1. Copy on write

2. Volumes

3. Docker daemon

4. Version controlled repositories and more.

 

Kelebihan dan Kekurangan Container

Kelebihan :

Menjalankan Container tidak menggunakan banyak sumberdaya. Jadi seseorang dapat menambahkan lebih banyak beban kerja komutasi pada server yang sama.

Dibandingkan dengan mesin virtual, ukuran rata-rata suatu container berada dalam kisaran puluhan atau ratusan MB, sedangkan mesin virtual mengkonsumsi beberapa gigabytes. Server dapat menampung lebih banyak container.

Container cepat. Membuat Container hanya membutuhkan beberapa detik. Waktu respons cepat ketika menyangkut aktivitas pengguna. Container membantu mengurangi waktu yang dibutuhkan untuk pengembangan, pengujian dan penyebaran.

Menemukan kesalahan dan menyelesaikannya mudah dengan Container. Kerna tidak ada perbedaan antara menjalankan aplikasi secara lokal atau pada server uji.

Kekurangan :

Keamanan adalah masalah dengan virtualisasi berbasis Container dibandingan dengan mesinvirtual tradisional. Dalam Container, Kernel dan komponen lain dari sistem operasi host dibagikan. Mereka memiliki akses root. Jadi, Container kurang terisolasi satu sama lain. Secara keseluruhan, itu tergantung pada jenis aplikasi dan modifikasi.

Ada kurang fleksibilitas dalam sistem operasi. Jika ingin menjalankan Container dengan sistem operasi berbeda, harus memulai server baru.

Bagaimana Cara Kerja Container?

Container Menyediakan fleksibilitas secara keseluruhan dibandingkan kita menggunakan server secara fisik dan virtual machine. Container dapat langsung berjalan diatas sistemporasi tanpa menggunakan hypervisor. Container dapat membagi resource pada IS beseray fungsinya.

Hal ini sangan menguntungkan secara performa dan penggunaan resource larena aplikasi yang digunakan hanya menggunakan resource berdasarkan apa yang dipakai saja.

 

Kesimpulan

Teknologi container khususnya linux container sangan mempermudah proses dev-ops dalam hal deployment dan maintenance suatu service. Karena sifatnya yang isolated, proses sclaing juga dapat dilakukan secara mudah, karena dapat meminimalisir human error. Namun untuk mengubah service yang telah jalan dalam fase produksi non-container based menuju container based terkadang effort yang diperlukan tidaklah sedikit karena dapat mempengaruhi arsitektur sistem atau service secara mendasar.

Komentar