Definisi


https://images.unsplash.com/photo-1605745341112-85968b19335b?ixlib=rb-1.2.1&q=80&cs=tinysrgb&fm=jpg&crop=entropy

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.

<aside> 💡 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.

</aside>

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.

https://images.unsplash.com/photo-1646627927863-19874c27316b?ixlib=rb-1.2.1&q=80&cs=tinysrgb&fm=jpg&crop=entropy

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


https://images.unsplash.com/photo-1583686298564-46fbffda0707?ixlib=rb-1.2.1&q=80&cs=tinysrgb&fm=jpg&crop=entropy

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