Teknologi Container


A. Pendahuluan
Kali ini saya akan berbagi sedikit pengetahuan tentang teknologi container. Container sendiri adalah wadah yang berisikan sumber daya perangkat lunak yang dibuat ringkas.
B. Latar Belakang
Perkembangan teknologi mempermudah dalam penyediaan sebuah sistem operasi yang sudah terdapat paket-paket dengan ukuran yang sangat ringkas. Teknologi tersebut adalah teknologi container.
C. Maksud dan Tujuan
Memahami lebih lanjut tentang container.
D. Pembahasan
Secara harfiah, container merupakan alat untuk mempermudah mengemas dan mendistribusikan suatu hal dari satu tempat ke tempat lain . Sedangkan dalam konteks lingkungan linux, container dapat diartikan sebagai alat yang dapat dipergunakan untuk memberikan sistem yang terisolasi pada level OS yang dijalankan pada satu induk linux kernel (host).

Hal yang menjadi pembeda antara jenis teknologi kontainer. Kurang lebihnya terdapat 2 jenis kontainer yang umum dapat kita pergunakan, yaitu :
1. Kontainer berbasis sistem operasi (OS Container), yakni kontainer yang memberikan isolasi pada level sistem operasi dan memanfaatkan kernel yang sama dari suatu induk, contohnya adalah LXC, OpenVZ, Linux VServer, BSD Jails and Solaris zones, Proxmox.
2. Kontainer berbasis aplikasi (Application Container), yakni kontainer yang memberikan isolasi pada level aplikasi dengan memanfaatkan beberapa komponen yang ada pada sistem operasi induk, ditambah beberapa komponen pada kontainer-kontainer lain yang menjadi basis dari berjalannya sebuah aplikasi, contohnya adalah Docker dan Rocket (rkt).


Perbedaan antara virtualisasi, container berbasis sistem operasi, dan container berbasis aplikasi.

VIRTUALISASI
Pada lingkungan virtualisasi, vendor (penyedia alat virtualisasi) melakukan abstraksi untuk lapisan hardware dan kernel, sehingga mesin yang berjalan pada virtualisasi seolah-olah merupakan mesin terpisah yang hanya memanfaatkan hardware yang tersedia pada lingkungan induk dengan kernelnya sendiri. Walaupun terdapat teknologi virtualisasi tertentu dimana mesin induk tidak perlu memiliki OS, seperti pada native/ bare-metal hypervisor. Virtualisasi termasuk dalam perbandingan karena masih banyak praktisi teknologi informasi yang bertanya-tanya apa bedanya kontainer dengan virtualisasi, karena memang ada satu kesamaan kegunaan secara mendasar, yaitu memberikan lingkungan yang terisolir untuk suatu sistem namun dengan pendekatan yang berbeda.

Keunggulan dari virtualisasi yang paling utama adalah dapat diimplementasikan pada jenis sistem operasi apapun karena sifatnya yang umum (general), yaitu tidak terikat dengan satu jenis kernel tertentu. Misalnya memvirtualisasi sistem operasi Windows pada induk Linux Ubuntu. Namun jelas ada overhead yang yang besar pada teknologi virtualisasi karena teknologi tersebut mengabstraksi lapisan hardware dan kernel induk sehingga sistem-sistem virtual yang berada didalamnya sedikit banyak akan mengalami penurunan performa karena secara otomatis sistem virtual harus menyediakan kernel sendiri yang “tertancap” pada abstraksi dari hasil virtualisasi tersebut, tidak secara native “tertancap” pada hardware dan kernel sang induk.

Namun demikian, bukan berarti sistem virtualisasi ini sudah ditinggalkan, masih banyak yang memanfaatkan teknologi ini, bahkan masih dipergunakan oleh pengembang yang menggunakan teknologi kontainer sekalipun, yaitu apabila kita melakukan development sistem berbasis kontainer pada induk non Linux, misal Windows atau MacOS. Karena tidak mungkin Linux container berjalan secara native pada induk non Linux, yang sudah jelas memiliki kernel yang berbeda.

Container Berbasis Sistem Operasi
Kontainer berbasis sistem operasi merupakan teknologi kontainer yang memperlakukan kontainer-kontainer didalamnya sebagai satu kesatuan sistem secara utuh seolah-olah dalam satu sistem operasi tersendiri secara terisolasi. Dengan pemanfaatan teknologi kontainer berbasis sistem operasi dan pendekatan arsitektur yang umum dipergunakan pada teknologi tersebut, masing-masing kontainer memiliki sistem operasi, MySQL, dan node.js terpisah secara utuh dan terisolasi satu sama lain.

Keunggulan dari teknologi ini salah satunya adalah keunggulan dari teknologi kontainer itu sendiri secara umum, yakni dengan menawarkan fitur yang mirip virtualisasi namun dengan peningkatan performa yang cukup signifikan karena tidak ada overhead dari sistem virtualisasi dan memanfaatkan kernel dan hardware dari induk secara native. Sedangkan kelemahan teknologi ini juga sama dengan kelemahan teknologi Linux container pada umumnya yaitu tidak dapat dijalankan pada sistem operasi selain linux karena perbedaan kernel, sehingga tetap diperlukan virtualisasi saat menjalankan kontainer pada sistem operasi selain linux.

Teknologi ini banyak dipakai sebagai infrastruktur pada shared hosting dan virtual private server karena sifatnya yang high performance serta memiliki lingkungan yang terisolasi antara kontainer satu dengan yang lain.

Container Berbasis Aplikasi
Kontainer berbasis aplikasi adalah teknologi yang belakangan ini ramai diperbincangkan, karena adanya vendor yakni Docker yang menawarkan teknologi ini dengan fitur-fitur tambahan yang sangat mudah dan nyaman digunakan. Secara umum kontainer berbasis aplikasi ini selain memanfaatkan hardware sang induk, kernel induk, dia juga dapat memanfaatkan service-service lain dari kontainer-kontainer lain yang berjalan pada sistem yang saling berhubungan.

Kelebihan dari teknologi ini antara lain:

  • Isolasi lingkungan terdapat pada tingkat aplikasi/ service, sehingga deployment akan lebih fleksibel per-service.
  • Secara teknis, kontainer berbasis aplikasi dapat berjalan pada native linux host, kontainer berbasis sistem operasi, maupun virtualisasi, sehingga keunggulan dari masing-masing induk tersebut dapat diperoleh dengan cara memilih jenis induk yang ingin digunakan.
  • Pemeliharaan sistem dapat lebih fokus per-service, misal Service C pada gambar sebelumnya terdapat pembaharuan minor dari versi 1.5.4 ke 1.5.5, namun hal tersebut cukup penting karena ada peningkatan keamanan service yang cukup krusial, kita tidak perlu melakukan merestart sistem secara menyeluruh, cukup upgrade Service C saja.

Namun tidak ada teknologi yang sempurna, semua pasti memiliki kelebihan maupun kekurangan, begitu pula dengan teknologi kontainer berbasis aplikasi ini. Celah keamanan merupakan permasalahan yang selalu menghantui teknologi-teknologi baru, termasuk kontainer berbasis aplikasi ini. Selain itu desain dan pengembangan aplikasi berbasis kontainer ini termasuk pendekatan baru yang mungkin menyulitkan pengembang yang hendak mengimplementasikannya, karena pada proses pengembangan aplikasi hal ini dapat mempengaruhi desain arsitektur suatu sistem.

E. Hasil yang didapat
Wawasan tentang Container aplikasi maupun sistem operasi.
F. Kesimpulan
Container merupakan alat untuk mempermudah mengemas dan mendistribusikan suatu hal dari satu tempat ke tempat lain . Container juga dapat diartikan sebagai alat yang dapat dipergunakan untuk memberikan sistem yang terisolasi pada level OS yang dijalankan pada satu induk linux kernel (host).
G. Referensi
https://blog.andi.dirgantara.co/teknologi-kontainer-pengantar-pengenalan-docker-706eafe03269

Comments

Popular posts from this blog

Aplikasi E-Learning Moodle

Sharing Bareng Mas Aji || Linux Basic

Mengenal FreeBSD