Apa sebenarnya Container itu?
Anda pasti pernah mendengar tentang container, bukan? container adalah adopsi virtualisasi tingkat sistem operasi. Dapat dikatakan bahwa ini adalah pendekatan virtualisasi ringan. Ini hanya menyediakan minimum yang diperlukan aplikasi untuk dijalankan. Container adalah mesin virtual super minimalis yang tidak berjalan di hypervisor. Jadi barang apa yang termasuk dalam wadah? Berikut adalah daftarnya:
(1) Aplikasi
(2) Binari
(3) File konfigurasi
(4) Dependensi
(5) Perpustakaan
Tetapi bagaimana container berjalan di lingkungan yang berbeda? Penampung memungkinkan penampung untuk berjalan di lingkungan yang berbeda dengan memisahkan sistem operasi dan infrastruktur fisik. Aplikasi yang di kemas berbagi kernel dari sistem operasi host dengan penampung lain. Bagian bersama dari OS adalah "read-only". Terkadang, hanya ada satu layanan atau layanan mikro yang dapat dieksekusi dalam sebuah penampung.
Bagaimana ukuran wadah diukur? Ukurannya diukur dalam puluhan megabyte dan membutuhkan 1-2 detik untuk menyediakannya. Container dapat dibuat dengan meningkatkan beban. Demikian pula, dapat dihancurkan dengan beban yang menurun. Selama waktu pembaruan, file konfigurasi harus diperbarui. Setelah ini, container baru dibuat dan yang lama dihancurkan.
Tentang Kernel dan OS
Laptop, komputer, telepon, dll kami dibuat dengan bantuan berbagai jenis perangkat keras. Misalnya CPU, kartu jaringan, memori, penyimpanan (SSD, disk), dll. Semua orang tahu ini kan? Perangkat kerasnya sudah ada, tetapi bagaimana cara berinteraksi dengannya? Interaksi terjadi dengan bantuan perangkat lunak. Ini dikenal sebagai Kernel! Jembatan antara perangkat keras dan sistem adalah Kernel. Ini menjadwalkan proses untuk dijalankan, mengelola perangkat, menangani pengecualian, dll.
Selain itu, sistem operasi lainnya membantu untuk mem-boot dan mengelola ruang pengguna. Proses pengguna dijalankan di ruang ini dan terus-menerus berinteraksi dengan Kernel.
Sumber Gambar: https://cdn-images-1.medium.com/max/800/1*U-xci0tC7EHf0kQYdPYHPQ.png
Tentang Linux Containers
Linux Containers menagumkan. Mereka digunakan secara ekstensif karena efektif. Grup Linux membuat Linux Containers. Ia juga dikenal sebagai LXC. Implementasi besar pertama dari container adalah LXC. Itu mengambil keuntungan dari isolasi cgroups dan namespace untuk membuat lingkungan virtual. Itu memiliki proses dan ruang jaringan yang terpisah.
Ini mengarah pada ruang pengguna yang independen dan terisolasi. Singkatnya, konsep container saat ini diturunkan dari LXC. Versi sebelumnya dari Docker dibuat langsung di atas LXC.
Munculnya Docker
Sumber Gambar: https://deploybot.com/assets/blog/_normal/docker-head-big@2x-1.png
Docker sedang tren dan sukses besar. Ini adalah salah satu teknologi container yang paling banyak digunakan. Faktanya, ketika orang merujuk ke container, yang paling mereka maksud adalah Docker. Selain Docker, ada beberapa teknisi container open source seperti rkt oleh CoreOS. Juga, perusahaan besar telah membangun mesin container mereka sendiri. Misalnya, lmctfy oleh Google.
Jadi Docker sekarang menjadi standar industri dalam hal kontainerisasi. Bagaimana itu dibangun? Pada cgroups dan namespacing disediakan oleh kernel Linux dan Windows.
Lapisan Docker:
Sebuah container buruh pelabuhan terdiri dari beberapa lapisan. Ini termasuk gambar dan binari yang dikemas ke dalam satu paket. Gambar dasar memiliki sistem operasi container. OS ini dan OS host mungkin berbeda atau sama. Bagaimana OS wadahnya? Itu dalam bentuk gambar. Jika Anda membandingkan OS ini dengan OS host, ada perbedaan! OS host adalah sistem operasi penuh, sedangkan OS ini tidak penuh. Gambar hanyalah sistem file dan binari untuk OS. Sedangkan OS lengkap mencakup sistem file, binari, dan Kernel.
Ada beberapa gambar di atas gambar dasar. Mereka bersama-sama membuat sebagian dari wadah. Penataannya agak dinamis. Misalnya, di atas gambar dasar, terdapat gambar yang berisi dependensi apt-get. Di atasnya, ada gambar yang berisi aplikasi biner. Namun yang paling menarik adalah, jika terdapat dua container dengan layer gambar 1,2,3 dan 1,2,4 maka Anda hanya perlu menyimpan satu salinan untuk setiap gambar! Secara lokal maupun di repositori. Ini adalah bagaimana sistem file serikat Docker beroperasi.
Docker dimuat dengan banyak fitur keren seperti:
(1) Copy on write.
(2) Volumes.
(3) Docker daemon.
(4) Version controlled repositories and more.
Apa kebutuhan Container?
Isolasi proses hanyalah salah satu properti wadah. Namun selain itu, masih banyak khasiat bermanfaat lainnya.
(1) Wadah berfungsi sebagai unit yang terisolasi sendiri. Artinya bisa berjalan dimana saja. Di setiap contoh, penampungnya persis sama. OS host tidak masalah. Bisa jadi CentOS, Ubuntu, MacOS atau
(2) Seseorang dapat menganggap wadah sebagai unit standar atau komputer. Secara umum, dikatakan bahwa setiap container menjalankan satu web server, satu pecahan database, dll. Jadi untuk menskalakan aplikasi, seseorang cukup menskalakan jumlah container.
Di sini, setiap penampung dialokasikan konfigurasi sumber daya tetap seperti CPU, RAM, dll. Jadi penskalaan aplikasi berarti menskalakan jumlah penampung dan bukan sumber daya primitif individu. Ini membantu para insinyur dengan abstraksi yang jauh lebih mudah ketika aplikasi perlu ditingkatkan atau diturunkan skalanya!
(3) Container adalah alat terbaik untuk mengimplementasikan arsitektur layanan mikro. Setiap layanan mikro adalah sekumpulan wadah yang bekerja sama. Misalnya, dimungkinkan untuk mengimplementasikan layanan mikro Redis dengan satu container master dan beberapa container slave. Arsitektur layanan mikro memiliki banyak keunggulan dibandingkan dengan pendekatan monolitik atau tradisional.
Kelebihan dan kekurangan container
Kelebihan:
(1) Menjalankan container tidak membutuhkan banyak sumber daya. Jadi seseorang dapat menambahkan lebih banyak beban kerja komputasi di server yang sama.
(2) Dibandingkan dengan mesin virtual, ukuran rata-rata container berada dalam kisaran puluhan MB. Mesin virtual menggunakan beberapa gigabyte. Sebuah server dapat menghosting lebih banyak container.
(3) Wadah cepat! Penyediaannya hanya membutuhkan beberapa detik. Waktu respons cepat dalam hal aktivitas pengguna. Penampung membantu mengurangi waktu yang dibutuhkan untuk pengembangan, pengujian, dan penerapan.
(4) Menemukan kesalahan dan mengatasinya dengan mudah dengan container. Mengapa? Karena tidak ada perbedaan antara menjalankan aplikasi secara lokal atau di server uji.
Kekurangan:
(1) Keamanan adalah perhatian dengan virtualisasi berbasis container dibandingkan dengan mesin virtual tradisional. Dalam wadah, Kernel dan komponen lain dari sistem operasi host dibagikan. Mereka memiliki akses root! Jadi wadah tidak terlalu terisolasi satu sama lain. Secara keseluruhan, itu tergantung pada jenis aplikasi dan modifikasinya. Ini hanyalah pendekatan umum.
(2) Ada sedikit fleksibilitas dalam sistem operasi. Jika Anda ingin menjalankan container dengan sistem operasi yang berbeda, Anda perlu memulai server baru.
DAFTAR PUSTAKA
https://www.level-up.one/the-beginner-friendly-guide-to-containers/ diakses pada 16 Maret 2021
Comments
Post a Comment