Cloud Computing - Containerzation

 

Containerzation

Apa Itu Containerzation

Containerzation adalah sebuah virtualisasi tingkat OS yang dapat membungkus sebuah aplikasi beserta dependency dan environment-nya. Setiap container ini memiliki process yang tersendiri sehingga tidak mengganggu host OS ataupun container yang lain. Dengan containerization, kita dapat menjalankan aplikasi lebih banyak dan kinerja yang lebih efisien dibanding VM dengan menggunakan hardware yang sama.

Konsep containerization


Prinsip containerization ini sangat mirip dengan kontainer yang ada di kapal kargo di mana kapal kargo tersebut diibaratkan sebagai sistem komputer. Bagi mereka yang datang dari lingkungan virtual, container sering dibandingkan dengan mesin virtual (VM). Anda mungkin sudah terbiasa dengan VM: sistem operasi tamu seperti Linux atau Windows berjalan di atas sistem operasi host dengan akses virtual ke perangkat keras yang mendasarinya. Seperti mesin virtual, container memungkinkan Anda mengemas aplikasi Anda dengan library dan dependensi lainnya, menyediakan lingkungan yang terisolasi untuk menjalankan layanan software Anda. Namun, seperti yang akan Anda lihat di bawah, kemiripannya berakhir di sini karena container menawarkan unit yang jauh lebih ringan untuk digunakan oleh developer dan tim IT Ops, membawa banyak sekali manfaat.



Gambaran Perbedaan Virtual Machine dengan Container

Kelebihan

1. Menjalankan container tidak menggunakan banyak sumber daya. Jadi seseorang dapat menambahkan lebih banyak beban kerja komputasi pada server yang sama.

2.     Dibandingkan dengan mesin virtual, ukuran rata-rata suatu container berada dalam kisaran puluhan atau ratusan MB, sedangkan mesin virtual mengkonsumsi beberapa gigabytes. Server dapat menampung lebih banyak kontainer.

3.  Kontainer cepat! Membuat container hanya membutuhkan beberapa detik. Waktu respons cepat ketika menyangkut aktivitas pengguna. Kontainer membantu mengurangi waktu yang dibutuhkan untuk pengembangan, pengujian, dan penyebaran.

4.   Menemukan kesalahan dan menyelesaikannya mudah dengan container. Mengapa? Karena tidak ada perbedaan antara menjalankan aplikasi secara lokal atau pada server uji.

Kekurangan

1.       Keamanan adalah masalah dengan virtualisasi berbasis container dibandingkan dengan mesin virtual tradisional. Dalam container, Kernel dan komponen lain dari sistem operasi host dibagikan. Mereka memiliki akses root! Jadi container kurang terisolasi satu sama lain. Secara keseluruhan, itu tergantung pada jenis aplikasi dan modifikasi.

2.       Ada kurang fleksibilitas dalam sistem operasi. Jika Anda ingin menjalankan kontainer dengan sistem operasi yang berbeda, Anda harus memulai server baru.

Teknologi yang digunakan

Docker adalah sebuah platform containerization yang sangat populer dan semakin populer. Docker memberikan kemudahan untuk menggunakan ataupun membangun 'isolated' environment untuk aplikasi. Penggunaan containerization dapat membantu kita dalam memahami konsep microservices, dimana satu container hanya untuk satu fungsi saja.  Docker sedang tren dan sukses besar. Ini adalah salah satu teknologi container yang paling banyak digunakan. Bahkan, ketika orang merujuk ke kontainer, mereka kebanyakan memahami yang dimaksud itu Docker. Selain Docker, ada beberapa teknologi 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 ini dibangun? Pada cgroups dan namespacing yang disediakan oleh kernel Linux dan Windows.

Untuk lebih memahami Docker, sebaiknya Anda mengetahui cara kerja Docker. Ada beberapa komponen yang perlu Anda ketahui:

1.       Docker image, merupakan file berisi informasi dan petunjuk untuk membangun container. Image juga berfungsi untuk menggunakan dan mengirimkan informasi;

2.       Container, adalah lingkungan untuk mengemas dan menjalankan aplikasi. Ini mencakup kode, runtime, system tools, dan pengaturan. Container hanya bisa mengakses resource yang telah ditentukan dalam docker image;

3.       Docker client, yaitu tempat di mana pengguna dapat mengirimkan perintah seperti docker build, docker pull, dan docker run kepada Docker daeomon;

4.       Docker Engine Rest API, digunakan untuk berinteraksi dengan Docker daemon. Ini bisa diakses klien melalui HTTP;

5.       Docker host, menyediakan lingkungan yang lengkap untuk menjalankan aplikasi. Dia bertanggung jawab terhadap penerimaan perintah yang diberikan Docker client;

6.       Docker daemon, yaitu proses pengelolaan Docker images, kontainer, network, dan storage volumes. Docker daemon menerima request dari Docker API dan akan memprosesnya;

7.       Docker registry, wadah untuk menyimpan Docker image. Docker image akan memberi reaksi sesuai perintah yang diberikan. Misalnya saat diberi perintah docker push, docker image akan didorong atau dibagikan ke registri Docker Hub;

8.       Docker Hub adalah layanan yang disediakan untuk menemukan dan berbagi gambar container dengan tim.

Next Post Previous Post
No Comment
Add Comment
comment url