Minggu, 04 Desember 2016

What Are Containers And Why Are They So Important?

 
Pada ulasan pertama ini saya mengambil sebuah video yang berjudul "What Are Containers And Why Are They So Important?". Sebuah video yang di unggah oleh Rackspace Austin pada tanggal 21 April 2016, dalam video yang berdurasi 46 menit ini akan dibahas pengenalan apa itu Containers dan apa pentingnya Containers yang dipaparkan oleh Derrick Wippler pada acara meetup CloudAustin April lalu.

Dalam membangun program, pengembang biasanya menjalankan virtualisasi pada server sehingga proses pembuatan program dapat berjalan pada berbagai platform maupun konfigurasi hardware. Masalah yang dihadapi dengan virtualisasi adalah perlunya menyiapkan satu sistem operasi secara utuh, termasuk berbagai aplikasi yang dibawa sistem tersebut. Bisa dibayangkan dengan banyaknya virtualisasi yang berjalan di sebuah server akan memberatkan sistem tersebut.

Container kemudian datang dan membawa beberapa perubahan. Dengan container, sebuah program ‘diikat’ beserta library-nya, file konfigurasi, dan seluruh hal yang dibutuhkannya. Perbedaan yang sangat terlihat dibandingkan dengan virtualisasi adalah container memiliki ukuran file yang jauh lebih kecil karena tidak perlu menyiapkan sistem operasi secara penuh. Dalam hal ini, pengembang biasa menyebutnya sebagai ‘lightweight’ platform. Aplikasi yang berjalan menggunakan container pun jauh lebih cepat dan lebih efisien.

Dari video tersebut juga dapat kita ketahui bahwa sesungguhnya container tidak lebih dari sebuah proses biasanya yang berjalan pada sebuah Sistem Operasi. Hampir sama fungsinya seperti chroot yang mengisolasi proses yang dilakukan oleh setiap user, bedanya container juga mengisolasi network, tidak seperti chroot yang hanya mengisolasi file system. Bagaimana container dapat menjalan beberapa proses secara terisolasi satu sama lain yaitu dengan namespace, jadi tidak hanya dibedakan dengan pid. Misalnya ketika ada dua buah container yang akan menjalankan proses nginx di sebuah sistem operasi, maka kedua proses ini akan ditambahi dengan namspace yang berbeda sehingga bisa berjalan dua proses nginx didalam sebuah sistem operasi.

Pada dasarnya Linux bisa menjalankan container tanpa butuh aplikasi tambahan, tapi cukup sulit dilakukan karena banyak hal yang perlu dikonfigurasi dan dikelola  seperti bagaimana mengetahui container yang sedang sibuk mana yang tidak, bagaimana menghandle crash pada container, bagaimana membuatnya agar scalable, bagaimana mengatur load balancing dan sebagainya. Ada beberapa aplikasi yang dibuat khusus untuk mengelola container ini beberapa diantaranya adalah Docker, Kubernetes, dan Mesos, sehingga pengelolaan container menjadi lebih mudah.

Container jauh lebih efisien dalam penggunaan resource dibandingkan dengan virtualisasi. Hal ini karena tadi pada dasarnya sebuah container hanyalah proses biasa yang berjalan pada sistem operasi, berbeda dengan virtualisasi yang mengemulasi semua komponen sebuah sistem operasi di dalam sistem operasi, yang tentunya akan jauh lebih berat karena banyak komponen lain yang harus dijalankan. Dari video tersebut juga disebutkan bahwa container bisa mencapai 37% lebih efisien daripada dengan menggunakan virtual machine.

Penggunaan container sebagai infrastruktur aplikasi sudah banyak dipakai, salah satunya adalah Google yang memanfaatkan container dengan Kubernetes nya untuk hampir semua aplikasi miliknya seperti Gmail, Web Search, Maps, Youtube, Google Plus, MapReduce dan lain sebagainya bahkan Google Cloud Computing juga menggunakan container, atau dengan kata lain Google bahkan menjalan virtual machine diatas container.

Video tersebut sangat menarik dan informatif khususnya terkait penggunaan container, video tersebut bisa memberikan pengetahuan tambahan bagaimana dunia industri sekarang dapat menggunakan container sebagai salah satu alternatif infrastruktur IT yang bisa digunakanan dibandingkan dengan melakukan virtualisasi. Video tersebut juga memberikan beberapa fakta menarik lainnya bahwa sebagian besar perusahaan IT besar sudah menggunakan container seperti Google yang menggunakan Kubernetes untuk semua aplikasi yang dimilikinya, bahkan ada fakta bahwa ada sekitar 2 miliar container yang dibuat oleh Google setiap minggunya. Walaupun materi yang disampaikan pada video cukup teknis, sehingga cukup sulit dipahami oleh orang awam tapi bisa tersampaikan dengan jelas dan bisa dimengerti.

Github account : https://github.com/zetbaitsu
URL ulasan      : http://zetlogger.blogspot.com/2016/12/what-are-containers-and-why-are-they-so.html
URL video       : https://www.youtube.com/watch?v=JD2JeQjDPMw
Durasi video     : 46 menit 45 detik
Revisi pertama : Minggu, 04 Desember 2016
Revisi terakhir  : Minggu, 04 Desember 2016

Tidak ada komentar:

Posting Komentar