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
Posting Komentar