Aplikasi dalam container adalah aplikasi yang dijalankan dalam paket kode terisolasi yang disebut container. Container mencakup semua dependensi yang mungkin perlu dijalankan oleh aplikasi pada sistem operasi host apa saja, seperti library, biner, file konfigurasi, dan framework, menjadi satu file yang ringan dan dapat dieksekusi.
Proses containerization aplikasi membuat pengembangan aplikasi lebih cepat, lebih efisien, dan aman dengan memisahkan fungsionalitas yang berbeda dari dependensi hardware dan bagian software lainnya. Container dapat berjalan pada sistem operasi host apa pun dan terisolasi dari objek software dan hardware lainnya, menjadikannya alat yang serbaguna untuk membangun aplikasi yang dapat dibangun sekali dan berjalan di mana saja.
Dari Google Penelusuran hingga YouTube dan Gmail, semua yang ada di Google dijalankan melalui container. Platform open source Kubernetes dan Knative dikembangkan di Google dan merupakan beberapa alat yang paling banyak digunakan untuk mengelola container dan aplikasi.
Isolasi
Karena setiap aplikasi dalam container berada di lingkungan terisolasi yang jauh dari komponen sistem dan aplikasi lain, kesalahan dalam aplikasi tidak akan memengaruhi sistem lokal atau aplikasi lain sehingga dapat membatasi cakupan insiden bug.
Portabilitas
Aplikasi dalam container beroperasi secara independen dari sistem operasi sehingga dapat ditransfer ke hampir semua lingkungan seperti server fisik, virtual machine, atau di komputer pribadi developer, atau di cloud.
Ringan
Tidak seperti virtual machine, container tidak membawa versi sistem operasi bersamanya, yang membuatnya jauh lebih ringan dan lebih efisien daripada metode virtualisasi lainnya.
Efisiensi
Aplikasi containerization dapat berbagi kernel komputasi dan resource komputer, sementara lapisan aplikasi dalam sebuah container dapat digunakan bersama di beberapa container. Oleh karena itu, aplikasi dalam container memerlukan lebih sedikit resource, sehingga memungkinkan beberapa container dijalankan pada komputer atau lingkungan virtual yang sama.
Skalabilitas
Instance container tambahan dapat dengan cepat ditambahkan untuk menangani beban aplikasi yang meningkat.
Aplikasi dalam container bekerja dengan menjalankan paket software yang dapat dieksekusi (container) yang menyertakan semua dependensi aplikasi yang diperlukan agar aplikasi dapat berjalan di atas sistem operasi host. Aplikasi dalam container memiliki beberapa objek, termasuk semua komponen aplikasi (misalnya, framework, library) yang membentuk image container, yang kemudian dijalankan oleh mesin container. Image container adalah blueprint atau arsitektur dari sistem container. Saat aplikasi dijalankan, konten image disalin ke dalam instance container dan kemudian dapat digunakan di sejumlah container dalam aplikasi. Image container dibuat dengan standar industri yang disebut Open Container Initiative (OCI), yang membantu kemampuan berbagi dan kompatibilitas container.
Mesin container adalah lingkungan runtime untuk container dan merupakan platform tempat aplikasi dalam container dijalankan. Mesin container menerima perintah untuk membangun, mengelola, dan memulai container melalui alat klien. Mesin container yang paling populer adalah alat seperti Docker atau CRI-O.
Alat orkestrasi digunakan untuk mengelola aplikasi dalam container, terutama di lingkungan dengan banyak container. Alat orkestrasi, seperti Kubernetes, men-deploy, mengelola, dan menskalakan container
Container dan virtual machine memiliki fungsi yang serupa, tetapi container cenderung menggunakan lebih sedikit resource dan lebih fleksibel.
Virtual machine memungkinkan beberapa aplikasi dan sistem operasi berbagi resource dari satu server atau komputer fisik serta berjalan secara bersamaan (misalnya Windows dan Linux berbagi komputer yang sama). Virtual machine membawa file dan dependensinya, serta salinan sistem operasinya sendiri.
Container tidak membawa salinan sistem operasi seperti yang dilakukan virtual machine. Karena itu, perbedaan utama antara container dan virtual machine adalah bahwa containerization menggunakan resource komputasi dengan lebih efisien. Sebagai gantinya, runtime container diinstal di sistem operasi yang ada di server atau komputer, sehingga memungkinkan semua container menggunakan sistem operasi yang sama.
Pada tingkat paling dasar, container dibagi menjadi dua jenis: container sistem dan container aplikasi.
Container aplikasi adalah solusi stateless yang biasanya menjalankan satu proses. Ketika kita membahas aplikasi dalam container, aplikasi tersebut menjalankan container aplikasi tempat setiap container menangani suatu proses, dengan beberapa container yang diatur oleh alat seperti Kubernetes.
Banyak aplikasi yang beredar di pasaran. Docker dianggap sebagai yang paling populer, meskipun ada beberapa lainnya. Pengembangan container open source dikelola oleh OCI.
Container sistem—juga dikenal sebagai container sistem operasi—adalah jenis yang lebih lama dan berfungsi seperti virtual machine, meskipun tanpa overhead komputasi yang sama. Container ini berfungsi sebagai sistem mandiri dan tidak menyertakan image container atau memerlukan software khusus. Container sistem biasanya digunakan pada aplikasi lama yang monolitik.
Berikut ini beberapa jenis alat dan mesin yang umum untuk aplikasi dalam container:
Platform open source paling populer untuk containerization. Docker memungkinkan pembuatan dan operasi container berbasis Linux.
Project open source LinuxContainers.org, LXC memungkinkan aplikasi menjalankan beberapa sistem Linux secara bersamaan, menggunakan satu kernel Linux sebagai sistem operasi.
Dikenal juga sebagai Rocket, rkt adalah mesin container berbasis aplikasi yang memungkinkan kontrol terperinci atas container atau sebagai komponen tertentu dalam sistem container Docker.
Container Runtime Interface (CRI) untuk platform pengelolaan container Kubernetes, yang digunakan untuk mengaktifkan runtime yang kompatibel dengan OCI. Sering digunakan sebagai pengganti Docker saat menggunakan Kubernetes.
Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.