Kontainerisasi

date
Jun 15, 2022
slug
kontainerisasi
status
Published
tags
DevOps
summary
Kontainerisasi adalah teknologi yang mengizinkan pembagian aplikasi ke dalam lingkungan yang dapat dipindahkan dari satu sistem ke sistem lain.
type
Post

Definisi


Kontainerisasi adalah sebuah sistem pengemasan perangkat lunak yang hanya menggunakan library dan dependensi sistem operasi yang diperlukan untuk menjalankan kode untuk membuat satu executable ringan yang disebut kontainer, lebih hemat sumber daya dan lebih portabel daripada menggunakan sistem Virtualisasi.
Kontainer telah menjadi unit komputasi de facto dari aplikasi cloud-native modern saat ini.
Kontainerisasi memungkinkan para developer untuk membuat dan mendeploy aplikasinya lebih cepat dan lebih aman. Kontainer diabstraksikan dari host sistem operasi, karena itu dia berdiri sendiri, dan menjadi portable, dapat dijalankan disemua platform atau cloud, bebas dari error.
Konsep kontainerisasi ini sebenarnya sudah lama dikemukakan, sekitar puluhan tahun lalu, tetapi kemunculan Docker Engine yang Open Source di tahun 2013, kemudian para industri terus mempercepat dan mengembangkan teknologi ini.
Saat ini para perusahaan semakin banyak menggunakan kontainerisasi untuk membuat aplikasi baru dan memodernisasi aplikasi yang ada di cloud.
💡
Dalam survey IBM baru-baru ini, 61% pengadopsi kontainer ternyata menggunakan 50% atau lebih aplikasi baru yang mereka buat selama 2 tahun sebelumnya. 64% pengadopsi mengharapkan 50% atau lebih aplikasi mereka aplikasi mereka akan dimasukkan ke kontainer selama 2 tahun kedepan.
Kontainer terkenal dengan “keringanannya”, karena kontainer-kontainernya berbagi kernel didalam 1 sistem operasi yang tidak perlu memerlukan resource tambahan untuk menghubungkan sistem operasi dalam setiap aplikasi seperti konsep virtualisasi.
Kontainer lebih kecil kapasitasnya daripada VM, membutuhkan waktu lebih sedikit saat mulai, memungkinkan lebih banyak kontainer untuk running pada komputasi yang sama dengan satu sistem operasi.
Maka dari itu hal ini dapat mengefisiensi resource dan menghemat biaya server.
Hal yang paling penting dari kontainerisasi adalah memungkinkan aplikasi untuk dapat dirancang/ditulis sekali, kemudian dijalankan di mana saja.
Portabilitas ini sangat mempercepat pengembangan, mengisolasi kesalahan, kemudahan manajemen, keamanan yang disederhanakan, dan masih banyak lagi.

Kelebihan


Aplikasi di dalam kontainer dapat berjalan lebih cepat dan lebih efektif daripada di Virtual Machine, tidak perlu booting sepenuhnya saat start aplikasi dan dimatikan lagi saat close.
Kontainer menggunakan sumber daya yang ada secara efisien, karena tidak perlu menggunakan sistem operasi sendiri.
Aplikasi dalam container lebih mudah untuk diskalakan karena virtualisasi container didasarkan pada unit yang beroperasi secara independen. Hal ini memungkinkan aplikasi dimulai dengan cepat dan fleksibel saat dibutuhkan dan sumber daya kontainer juga dapat ditambah atau dikurangi selama waktu proses.
Kontainer dapat dengan mudah dipindahkan ke lingkungan lain karena sebagian besar tidak tergantung pada sistem operasi host. Oleh karena itu mereka dapat bermigrasi ke host lain dengan mudah. Kontainer dapat membuat pengembangan software menjadi lebih cepat karena satu kontainer dapat dikembangkan dalam waktu yang singkat dan mudah diduplikasi. Jadinya kontainer yang di development akan memberikan hasil yang sama ke kontainer yang ada di production.

Kekurangan


Semua kontainer pada host machine harus dirancang untuk berjalan di OS dengan jenis yang sama. Kontainer yang Sistem Operasi nya berbeda, akan membutuhkan host yang berbeda. Karena satu Sistem Operasi digunakan bersama, kerentanan keamanan di kernel Sistem Operasi menjadi ancaman untuk semua kontainer di host machine tersebut.
Kontainerisasi masih menjadi solusi baru dengan variasi yang luas dalam rencana implementasi, jadi bagi beberapa orang masih kesulitan saat menerapkan atau menggunakannya.

Konklusi

Kontainerisasi adalah sebuah teknologi yang sangat menarik dan menjanjikan untuk membangun aplikasi dan memodernisasinya. Kelebihannya dalam hal portabilitas, kecepatan startup, dan efisiensi sumber daya memungkinkan para developer untuk membuat dan mendeploy aplikasi mereka lebih cepat dan lebih aman. Meskipun masih ada beberapa kekurangan yang harus diperhatikan, kontainerisasi menjanjikan kemudahan dan kecepatan dalam pengembangan dan distribusi aplikasi.