Containerzation

Konsep Containerzation 

Berbeda dari VM, container adalah sebuah virtualisasi OS yang dapat membungkus suatu aplikasi beserta dependency dan environment-nya. Setiap container ini memiliki process yang terisolir sehingga tidak mengganggu host OS ataupun container yang lain. Prinsip container ini mirip dengan kontainer yang ada di kapal kargo di mana kapal kargo tersebut diibaratkan sebagai sistem komputer.

Jika dibandingkan dengan VM, secara pengaturan kontainer lebih mudah. Hal ini disebabkan karena konsep berbagi resource hardware dari container lebih fleksibel bila dibandingkan VM. Sebagai contoh, tadi disebutkan bahwa kita mempunyai 1 PC dengan 4 Core, RAM 8 GB, dan storage sebesar 500GB. Katakanlah kita mempunyai 2 container dengan kebutuhan RAM berbeda. Beberapa apps dalam container A membutuhkan RAM 5GB sedangkan apps dalam container B membutuhkan RAM 2GB. Dengan container, kita tak perlu menset kebutuhan hardware resource setiap container karena berada dalam satu sistem komputer. Sementara jika kita memakai VM dengan hardware resource yang sudah kita bagi sama rata seperti disebutkan di contoh sebelumnya, kita tidak mungkin memasang apps di container A di salah satu sistem komputer karena RAM maksimal yang bisa kita pakai hanyalah 4GB.

Faktor portabilitas juga menjadi kelebihan yang dimiliki oleh container. Para developer bisa membagikan container dengan format ISO image ke setiap perangkat yang dia pakai ataupun ke developer lain.

Jenis-jenis Containerzation

 Setidaknya saat ini terdapat 2 jenis kontainer yang umum dapat kita pergunakan, yaitu :

  1. Kontainer berbasis sistem operasi (OS Container), yakni kontainer yang memberikan isolasi pada level sistem operasi dan memanfaatkan kernel yang sama dari suatu induk, contohnya adalah LXC, OpenVZ, Linux VServer, BSD Jails and Solaris zones.
  2. Kontainer berbasis aplikasi (Application Container), yakni kontainer 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 dan Rocket (rkt).

Keunggulan Container

  • Fleksibel dan scalable
  • Mengurangi resource yang dibutuhkan dalam IT Management
  • Waktu yang dibutuhkan untuk mengemas dan memasang app dalam container lebih cepat bila dibandingkan dengan VM
  • Kontainer cepat! Membuat container hanya membutuhkan beberapa detik. Waktu respons cepat ketika menyangkut aktivitas pengguna. Kontainer membantu mengurangi waktu yang dibutuhkan untuk pengembangan, pengujian, dan penyebaran.

Kekurangan

·       Ada kurang fleksibilitas dalam sistem operasi. Jika Anda ingin menjalankan kontainer dengan sistem operasi yang berbeda, Anda harus memulai server baru.

·       Keamanan adalah masalah dengan virtualisasi berbasis container dibandingkan dengan mesin virtual 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.


Implementasi

 

Kontainer berbasis sistem operasi merupakan teknologi kontainer yang memperlakukan kontainer-kontainer didalamnya sebagai satu kesatuan sistem secara utuh seolah-olah dalam satu sistem operasi tersendiri secara terisolasi. Misalnya  Service A merupakan MySQL versi 5.6 dan Service B merupakan node.js versi 4.x, dan Service C dan D masing-masing adalah aplikasi atau service yang membutuhkan Service A dan B. Dengan pemanfaatan teknologi kontainer berbasis sistem operasi dan pendekatan arsitektur yang umum dipergunakan pada teknologi tersebut, masing-masing kontainer memiliki sistem operasi, MySQL, dan node.js terpisah secara utuh dan terisolasi satu sama lain.

Keunggulan dari teknologi ini salah satunya adalah keunggulan dari teknologi kontainer itu sendiri secara umum, yakni dengan menawarkan fitur yang mirip virtualisasi namun dengan peningkatan performa yang cukup signifikan karena tidak ada overhead dari sistem virtualisasi dan memanfaatkan kernel dan hardware dari induk secara native. Sedangkan kelemahan teknologi ini juga sama dengan kelemahan teknologi Linux container pada umumnya yaitu tidak dapat dijalankan pada sistem operasi selain linux karena perbedaan kernel, sehingga tetap diperlukan virtualisasi saat menjalankan kontainer pada sistem operasi selain linux.

Teknologi ini banyak dipakai sebagai infrastruktur pada shared hosting dan virtual private server karena sifatnya yang high performance serta memiliki lingkungan yang terisolasi antara kontainer satu dengan yang lain.




Komentar