Containerization vs Virtualization
1. Perkenalan
Virtualisasi dan containerization adalah dua mekanisme yang paling sering digunakan untuk menghosting aplikasi di sistem komputer . Virtualisasi menggunakan pengertian mesin virtual sebagai unit fundamental. Kontainerisasi, di sisi lain, menggunakan konsep wadah. Kedua teknologi ini memainkan peran penting dan memiliki kelebihan dan kekurangan.
Pada artikel ini, kami akan memperkenalkan kedua teknologi ini dan membandingkan beberapa karakteristiknya.
2. Virtualisasi
Virtualisasi membantu kita membuat versi virtual atau berbasis perangkat lunak dari sumber daya komputer . Sumber daya komputer ini dapat mencakup perangkat komputasi, penyimpanan, jaringan, server, atau bahkan aplikasi.
Ini memungkinkan organisasi untuk mempartisi satu komputer fisik atau server menjadi beberapa mesin virtual (VM) . Setiap VM kemudian dapat berinteraksi secara independen dan menjalankan sistem operasi atau aplikasi yang berbeda sambil berbagi sumber daya dari satu komputer.
2.1. Bagaimana Cara Kerja Virtualisasi?
Perangkat lunak Hypervisor memfasilitasi virtualisasi . Hypervisor berada di atas sistem operasi. Namun, kami juga dapat memiliki hypervisor yang diinstal langsung ke perangkat keras. Hypervisor mengambil sumber daya fisik dan membaginya sehingga lingkungan virtual dapat menggunakannya .
Ketika pengguna atau program mengeluarkan instruksi ke VM yang membutuhkan sumber daya tambahan dari lingkungan fisik, hypervisor menyampaikan permintaan ke sistem fisik dan menyimpan perubahannya ke cache. Ada dua tipe hypervisor, Tipe 1 (Bare Metal) dan Tipe 2 (Hosted).

Fitur utama virtualisasi adalah memungkinkan Anda menjalankan sistem operasi yang berbeda pada perangkat keras yang sama. Setiap sistem operasi mesin virtual (OS tamu) melakukan semua aktivitas start-up yang diperlukan seperti bootstrap, memuat kernel, dan sebagainya. Namun, setiap OS tamu dikontrol melalui langkah-langkah keamanan yang ditingkatkan sehingga mereka tidak memperoleh akses penuh ke OS yang mendasarinya.
3. Kontainerisasi
Containerization adalah alternatif ringan untuk virtualisasi. Ini melibatkan merangkum aplikasi dalam wadah dengan lingkungan operasinya sendiri. Jadi, alih-alih menginstal OS untuk setiap mesin virtual, container menggunakan OS host.
3.1. Bagaimana Cara Kerja Containerization?
Setiap penampung adalah paket perangkat lunak yang dapat dijalankan yang berjalan di atas OS host . Sebuah host dapat mendukung banyak penampung secara bersamaan. Misalnya, dalam lingkungan arsitektur layanan mikro, penyiapan ini berfungsi karena semua container berjalan pada proses minimal yang diisolasi sumber daya yang tidak dapat diakses orang lain.

Diagram sebelumnya menunjukkan tata letak arsitektur dalam container. Kami dapat menganggap wadah sebagai lapisan atas kue berlapis-lapis:
- Di bagian bawah lapisan, terdapat infrastruktur fisik seperti CPU, penyimpanan disk, dan antarmuka jaringan
- Di atas itu, ada OS host dan kernelnya. Kernel bertindak sebagai jembatan antara perangkat lunak OS dan sumber daya perangkat keras
- Mesin kontainer dan OS tamu minimalnya berada di atas OS host
- Di bagian paling atas, ada biner, pustaka untuk setiap aplikasi, dan aplikasi yang berjalan di ruang pengguna yang terisolasi
Containerization berevolusi dari fitur Linux yang dikenal sebagai cgroups . Ini adalah fitur untuk mengisolasi dan mengontrol penggunaan sumber daya untuk proses sistem operasi.
Misalnya, ini menentukan jumlah CPU dan RAM atau jumlah utas yang dapat diakses oleh suatu proses dalam kernel Linux. cgroups kemudian menjadi Linux Containers (LXC) dengan fitur yang lebih canggih untuk isolasi namespace komponen, seperti tabel routing dan sistem file.
4. Perbandingan
Mari kita rangkum perbandingan antara virtualisasi dan containerization dalam berbagai aspek:
Daerah |
Virtualisasi |
Kontainerisasi |
Isolasi |
Menyediakan isolasi
lengkap dari sistem operasi host dan VM lainnya |
Biasanya memberikan
isolasi ringan dari host dan penampung lain, tetapi tidak memberikan batasan
keamanan sekuat VM |
Sistem operasi |
Menjalankan sistem
operasi lengkap termasuk kernel, sehingga membutuhkan lebih banyak sumber
daya sistem seperti CPU, memori, dan penyimpanan |
Menjalankan bagian mode
pengguna dari suatu sistem operasi, dan dapat disesuaikan agar hanya berisi
layanan yang diperlukan untuk aplikasi Anda menggunakan lebih sedikit sumber
daya sistem |
Kompatibilitas tamu |
Menjalankan hampir semua
sistem operasi di dalam mesin virtual |
Berjalan pada versi
sistem operasi yang sama dengan host |
Penyebaran |
Terapkan VM individu
dengan menggunakan perangkat lunak Hypervisor |
Deploy container individu
dengan menggunakan Docker atau terapkan beberapa container
dengan menggunakan orchestrator seperti Kubernetes |
Penyimpanan persisten |
Gunakan Virtual Hard Disk
(VHD) untuk penyimpanan lokal untuk satu VM atau berbagi file Server Message
Block (SMB) untuk penyimpanan yang digunakan bersama oleh beberapa server |
Gunakan disk lokal untuk
penyimpanan lokal untuk satu node atau SMB untuk penyimpanan yang digunakan
bersama oleh beberapa node atau server |
Penyeimbang beban |
Teknik load balancing
mesin virtual dilakukan dengan menjalankan VM di server lain dalam cluster
failover |
Orchestrator dapat secara
otomatis memulai atau menghentikan container pada node cluster untuk
mengelola perubahan dalam pemuatan dan ketersediaan. |
Jaringan |
Menggunakan adaptor
jaringan virtual |
Menggunakan tampilan
terisolasi dari adaptor jaringan virtual. Dengan demikian, memberikan
virtualisasi sedikit lebih sedikit |
5. Kesimpulan
Awalnya, kami memperkenalkan virtualisasi dan membahas cara kerjanya. Kami kemudian pindah ke konsep containerization dan memberikan gambaran umum tentang cara kerjanya.
Kami menyimpulkan artikel dengan membandingkan beberapa aspek virtualisasi dan containerisasi.
Komentar
Posting Komentar