KONSEP, KELEBIHAN, KEKURANGAN CONTAINERIZATION BERSERTA TEKNOLOGI DAN STUDI KASUS CONTAINERIZATION



Konsep Containerization

Containerization memungkinkan container untuk berjalan di environment yang berbeda dengan cara mengabstraksi sistem operasi dan infrastruktur fisik. Sebuah aplikasi yang dijadikan container berbagi kernel host operating system dengan container yang lain. Bagian sistem operasi yang dibagi itu bersifat “Read-only”. Biasanya, dalam satu container hanya terdapat satu buah service atau microservice.

Kelebihan :

1.      Menjalankan container tidak menggunakan banyak sumber daya. Jadi seseorang dapat menambahkan lebih banyak beban kerja komputasi pada server yang sama.

2.      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 kontainer.

3.      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.

4.      Menemukan kesalahan dan menyelesaikannya mudah dengan container. Mengapa ? Karena tidak ada perbedaan antara menjalankan aplikasi secara lokal atau pada server uji.

Kekurangan :

1.      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.

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

Teknologi yang digunakan untuk Containerization

Docker adalah sebuah platform containerization yang sangat populer dan semakin populer. Docker memberikan kemudahan untuk menggunakan ataupun membangun 'isolated' environment untuk aplikasi. Penggunaan containerization dapat membantu kita dalam memahami konsep microservices, dimana satu container hanya untuk satu fungsi saja.


Bagaimana penggunaan Docker itu sendiri?

Docker dapat kita jalankan melalui terminal dengan command yang cukup sederhana, seperti pada gambar berikut.


Menyalakan dan mematikan sebuah container dapat dilakukan dengan command 'start' dan 'stop' melalui command line, demikian juga untuk melihat informasi container apa saja yang sedang berjalan dengan command ‘docker ps’.

Untuk memulai menggunakan Docker pun sesederhana melakukan download dan install docker, kemudian Docker dapat digunakan melalui command line. Serupa dengan virtualization yang membuat VM melalui image dari OS, containerization pada docker pun membutuhkan image untuk dapat menyalakan sebuah containers. Sebagai contoh, untuk dapat menjalankan 'docker start mysql' kita perlu memiliki image dari container tersebut terlebih dahulu, bisa melalui Docker Hub ataupun membuatnya sendiri dengan menggunakan Dockerfile. Setelah memiliki image terkait, kita bisa menjalankannya dengan menggunakan perintah 'docker run', dimana pada momen tersebut kita dapat melakukan berbagai konfigurasi seperti port forwarding, pemberian nama untuk container yang dibuat, bahkan melakukan pengaturan environment variable dari container tersebut.

Demikian hal-hal paling minimum yang perlu diketahui untuk memulai petualangan ke negeri Docker. Masih banyak command pada Docker yang dapat dieksplorasi, seperti 'docker save' dan 'docker load' yang sangat berguna dalam development. Fungsi dua command tersebut sangat sederhana, namun sangat membantu developer dalam satu tim untuk memiliki konfugurasi yang sama. Contoh sederhananya adalah ketika kita mengembangkan aplikasi, kita bisa menggunakan docker container untuk MySQL dan melakukan berbagai konfigurasi terkait database (mungkin mengatur user, privillege, dll). Karena kita menjalankan MySQL Containers, maka dengan menjalankan command 'docker save' kita bisa membagikan image tersebut pada rekan satu tim, sehingga mereka cukup menggunakan 'docker load' dan akan memiliki image dari MySQL containers yang telah dikonfigurasi, sehingga satu tim memiliki environment MySQL yang sama.

Studi kasus implementasi dari Containerization

Perancangan dan Implementasi Container dengan Konsep Swarm dan Metode Ingress Load Balancing Menggunakan Docker

Masjid Alumni IPB ingin mengembangkan suatu sistem yang disebut masjid berbagi. Masjid berbagi merupakan suatu sistem berbasis aplikasi web dan mobile dan terhubung ke cloud. Masjid berbagi dibuat untuk pengelolaan dan berbagi informasi tentang kegiatan masjid-masjid. Semua aplikasi dan informasi disimpan pada server masjid berbagi sehingga server masjid berbagi harus dapat melayani permintaan oleh masjid-masjid. Pada penelitian ini bertujuan untuk perancangan dan implementasi container menggunakan docker dengan menerapkan docker swarm dan load balancing ingress. Penelitian ini dibagi kedalam empat tahap utama yaitu komunikasi (analisis lingkungan), penerapan container, pengujian dan analisis. Pada penelitian dilakukan perbandingan penerapan dengan satu sampai lima container untuk mengetahui pengaruh banyak container dengan respon server, request yang dapat dilayani dan throughput. Hasil penelitian menunjukkan semakin banyak container lebih baik daripada hanya menggunakan satu container karena dapat meningkatkan respon time dan banyak sucess request. Tetapi banyaknya container harus tetap diperhatikan.


References

K, Y. (2018, Mei 03). Docker Tutorial : Pengenalan Awal & Instalasi. Retrieved from NIAGA HOSTER: https://medium.com/network-evolution/penjelasan-mudah-untuk-memahami-container-f8ad6d482cea#:~:text=Containerization%20memungkinkan%20container%20untuk%20berjalan,system%20dengan%20container%20yang%20lain.

Mengenal Teknologi Containerization. (2017, 03). Retrieved from nostratech: http://blog.nostratech.com/2017/03/mengenal-teknologi-containerization.html

 




Komentar

Postingan populer dari blog ini

Mengapa Harus Belajar Cloud Computing ?

Setting Up VM and Domain