Dynamic Blinkie Text Generator at TextSpace.net

Feedburner

I heart FeedBurner

Minggu, 09 September 2018

Container dan Docker vs Virtualization


Mengulik Rahasia Dibalik Pesatnya Pertumbuhan Raksasa StartUp

Kenapa harus pakai Docker
1K Shares
Tahukah Anda apa kunci utama dari startup-startup besar seperti Gojek, Traveloka, Tokopedia, maupun Facebook bisa tumbuh begitu pesat dan memonopoli pasar seperti saat ini?
Kecepatan.
Mereka begitu cepat dalam membangun aplikasi mereka. Begitu cepat dalam memperbaharui ulang fitur-fitur aplikasi mereka berdasarkan feedback pelanggan. Begitu cepat dalam memperbaiki bug-bug dan error yang ada. Bahkan begitu cepat dalam meniru dan memodifikasi fitur kompetitor.
Lihat bagaimana Instagram mengkopi fitur Story dari Snapchat dan langsung memenangkan pasar di Indonesia dalam sekejap. Lihat bagaimana CGV tiba-tiba unggul dari raja bioskop di Indonesia : Cinema XXI, hanya karena CGV berhasil memanfaatkan dengan baik aplikasi pemesanan tiket online milik mereka. Dan lihat bagaimana Bank BTPN (bank yang sebelumnya hampir tidak pernah terdengar namanya bagi saya), tiba-tiba booming berkat aplikasi Jeniusnya.

Ya, kecepatan adalah kunci segalanya di era serba aplikasi seperti saat ini.
Namun hal ini menyebabkan perubahan di hampir seluruh aspek sistem kerja, metodologi, tools, dan teknologi-teknologi yang dipakai. Sebut saja bermunculan istilah Agile Development, Design Thinking, DevOps, dll.
Salah satu perubahan besar-besaran yang terjadi adalah dari sisi kita, para orang IT yang bergelut dalam pengelolaan Server.
Semua perusahaan besar pasti mulai menerapkan perubahan-perubahan ini. Dan jika Anda tidak ingin kalah saing, Anda pun harus bisa mengikuti seluruh perubahan ini.

Masalah utama yang muncul

Dalam menyiapkan dan memasang server untuk sebuah aplikasi di perusahaan bagi kita orang IT sebenarnya cukup mudah.
Kita biasa beli komputer servernya dulu, lalu kita install OS Linux Server di dalamnya, lalu kita install dan konfigurasi XAMPP (Webserver), lalu kita masukkan source code dan database aplikasi yang sudah dibuat oleh programmer. Aplikasi pun berhasil running.
Atau jika kita pakai Virtualisasi seperti VMWare atau Proxmox, kita biasa untuk menyiapkan Virtual Machine (VM)nya, lalu install OS, lalu install dan konfigurasi XAMPP, dst.

Itu baru 1 aplikasi di 1 server. Sekarang bagaimana kalau ada tambahan 2 aplikasi baru? Dan ternyata aplikasi baru ini butuh bukan hanya XAMPP saja, melainkan gabungan dari MongoDB, NodeJS, dan NGINX?

Tentu saja, kita tetap bisa melakukannya. Kita tinggal ulangi step-step sebelumnya seperti siapkan VM, install OS, konfigurasi, dll. Atau jika komputer servernya kurang, kita harus beli dulu, siapkan datacenternya, atur jaringan dan topologi ipnya, dll.
Masih bisa. Tapi mulai terasa ribet dan kompleksnya. Dan yang pasti membutuhkan waktu yang super lama. Rata-rata kita bisa siapkan 1 server itu 2-3 hari. Sudah terbayang bukan butuh berapa lama untuk menyiapkan 5-6 server dengan berbagai macam konfigurasi?
Belum lagi ketika kita lagi sibuk-sibuknya pemasangan server baru, server yang lama ada yang down. Atau misalnya datacenter nya kebakaran. Atau ip publiknya putus dari ISP.
Harus migrasi dong? Migrasi ini sama pusing dan ribetnya. Harus pindahkan servernya, harus backup datanya, harus backup konfigurasinya, belum lagi nanti harus setup ulang VMnya, konfigurasi ulang, dll.
Bisa Anda bayangkan jika seluruh metode diatas diterapkan di era saat ini. Proses untuk membawa aplikasi yang sudah dibuat programmer (termasuk perbaikan bug, penambahan fitur) ke pelanggan begitu lambat seperti ini, pasti membuat perusahaan rugi besar.
Produktifitas tim sangat-sangat rendah, biaya operasional perusahaan terus membengkak, perusahaan kalah saing dengan kompetitor.
Misalnya website Bukalapak down, ternyata waktu penanganannya butuh waktu 2-3 hari karena harus setup ulang VM dan setup ulang OS. Bisa-bisa Bukalapak bangkrut dalam sekejap.
Di dunia Startup itu, ketika adanya laporan bug/error dari pelanggan dalam hitungan menit pokoknya harus sudah bisa diperbaiki. Misalnya server down, pokoknya dalam hitungan menit server harus sudah nyala kembali.
Misalnya ada programmer yang ingin testing fitur baru, pokoknya dalam hitungan menit server testing mereka sudah tersedia. Misalnya kita ingin migrasi puluhan server ke datacenter baru, pokoknya dalam hitungan menit harus sudah bisa jalan kembali semua servernya di tempat yang baru.
Semua serba cepat.
Dan untuk mencapai kecepatan develop aplikasi setinggi itu pada banyak produk dan fitur serta melibatkan puluhan programmer, pasti terjadi pemasangan dan modifikasi puluhan-hingga-ratusan server setiap hari.
Bayangkan, puluhan hingga ratusan server setiap hari.
Teknologi Virtualisasi (apalagi teknologi komputer server fisik), sudah tidak mungkin mengakomodir kebutuhan ini.

Bagaimana Container dan Docker menjadi Solusi

Dari sini akhirnya lahir sebuah teknologi terbaru, yaitu teknologi Container. Sederhananya teknologi Container ini mirip-mirip dengan teknologi Virtualisasi. Yaitu didalam 1 buah komputer server, seakan-akan kita bisa memiliki banyak server lainnya. Namun yang membedakan, jika Virtualisasi kita harus tetap menjalankan VM dan OS untuk tiap layanannya sedangkan Container tidak.

Pada gambar diatas terlihat bahwa Virtualisasi (sebelah kiri) membutuhkan Guest OS untuk setiap aplikasi. Sedangkan untuk Container (sebelah kanan), tidak perlu.
Misalnya jika kita ingin punya 3 layanan, dalam Virtualisasi maka kita harus membangunnya seperti ini :

Layanan 1
VM : RAM 2GB, CPU dual core, harddisk 512GB
OS : Linux Ubuntu 16.04
Layanan : Nginx
Layanan 2
VM : RAM 2GB, CPU dual core, harddisk 512GB
OS : Linux Ubuntu 16.04
Layanan : XAMPP
Layanan 3
VM : RAM 2GB, CPU dual core, harddisk 512GB
OS : Linux Ubuntu 16.04
Layanan : NodeJS
Bisa dilihat, untuk masing-masing layanan kita memerlukan VM lengkap dengan spesifikasi nya masing-masing serta OS nya masing-masing.
Sedangkan jika Container, ilustrasinya adalah seperti ini :

Layanan 1
Layanan : XAMPP
Layanan 2
Layanan : NodeJS
Layanan 3
Layanan : NGINX
Masing-masing layanan bisa berjalan layaknya kita menginstall aplikasi biasa saja. Tidak perlu ada OS lagi.
Inilah yang menyebabkan kenapa teknologi Container bisa jauh lebih cepat dan efisien dibanding teknologi virtualisasi. Kita tidak perlu setup VM dan OS untuk setiap layanan yang mau kita bangun. Kita juga tidak perlu setting IP dan persiapan-persiapan konfigurasi lainnya.
Penggunaan resource hardware pun jauh lebih hemat, bahkan Container diklaim bisa menghemat hingga 99% dari resource VM yang tidak terpakai.
Lebih canggihnya lagi, berbagai layanan dalam Container bisa dijadikan dalam sebuah bundling berupa script siap pakai, yang dapat kita jalankan di server manapun. Sangat-sangat portable.
Misalnya saja ketika kita ingin pindah dari provider server di Digital Ocean ke Amazon Web Service, kita cukup matikan seluruh Container yang ada di provider yang lama dengan 1x eksekusi script. Lalu jalankan lagi script tersebut di provider yang baru. Dalam hitungan menit, seluruh layanan Anda sudah berjalan kembali di provider yang baru.
Para programmer pun dapat menjadikan aplikasi-aplikasi mereka ke dalam bentuk 1 bundle, sehingga dapat di pasang di server manapun dengan sangat cepat dan efisien.

Lalu apa hubungannya Container dengan Docker?

Docker merupakan tools untuk me-manage seluruh operasi terkait Container tersebut. Pemasangan Container, modifikasi, penghapusan, pembuatan layanan Container, semuanya menggunakan tools-tools yang disediakan oleh Docker.

Docker sendiri berkembang begitu pesat. Saat ini lebih dari 3.5 juta layanan sudah di “Container-isasi” dan di download lebih dari 37 Miliar kali. Sudah diimplementasikan oleh lebih dari 40% perusahaan di dunia seperti Visa, Paypal, Instagram, dll.
Manfaat yang dirasakan oleh perusahaan yang mengimplementasi Docker terbukti sangatlah besar seperti yang digambarkan pada ilustrasi berikut :

Apa Manfaat Mempelajari Docker bagi Anda pribadi ?

Jumlah perusahaan yang menggunakan Docker terus bertumbuh drastis, lowongan-lowongan seperti DevOps Engineer terus menjamur, namun orang yang bisa masih sangat sedikit. Sehingga kesempatan masih terbuka lebar untuk Anda.

Lihat screenshot dari salah satu situs lowongan kerja diatas. Untuk DevOps Engineer dibutuhkan pengetahuan tentang Docker.
Docker juga bukan hanya untuk orang yang sudah ahli Sysadmin. Untuk Anda yang saat ini bekerja sebagai IT Support maupun fresh graduate pun sangat cocok mempelajari Docker.
Berikut adalah manfaat-manfaat yang bisa Anda peroleh jika Anda mempelajari Docker :
  1. Bisa mulai bekerja menjadi DevOps Engineer/Cloud Engineer yang bergaji rata-rata 7jt.
  2. Bisa bekerja di Startup-startup keren seperti Go-Jek dan Traveloka
  3. Kerja yang lebih santai, karena minim error dan maintenance.
  4. Kerja yang fleksibel, bisa kerja remote dan menikmati hidup.
  5. Pekerjaan yang tidak membosankan. Lebih menantang dan menarik.
  6. Bisa memiliki pergaulan yang lebih luas bahkan dengan orang-orang luar negeri.

Berminat belajar docker? Lalu harus mulai belajar darimana?

Tidak ada kata terlambat. Anda masih bisa mulai belajar Docker dari sekarang. Dan saran saya, dibanding Anda harus mengulik sendiri, belajar sendiri, error sana-sini, lebih baik ambil jalan pintas dengan mengikuti training-training intensif yang berbayar.
Walaupun harus keluar sedikit uang, tetapi Anda akan menjadi lebih cepat paham. Anda pun bisa lebih cepat bisa memulai karir impian Anda.
Salah satu training intensif yang saya sarankan adalah Online Mini Class “Kuasai Docker” dari Kuasai.id ini :

Materinya di fokuskan untuk belajar intensif Docker dari nol hingga bisa implementasi disesuaikan dengan dunia Startup.
Ini merupakan program terbaru yang belum pernah ada di Indonesia. Program belajar intensif materi Docker yang dilakukan secara online, sehingga siapapun, dimanapun bisa mengikutinya.
Memang apa saja sih bedanya Online Mini Class Kuasai Docker ini dengan kursus-kursus sejenis lainnya?
  1. Anda akan belajar intensif Live selama total 18x pertemuan.
  2. Materi daging, bukan hanya kulitnya saja.
  3. Silabus materi yang memang sudah disesuaikan dengan di dunia kerja.
  4. Real diberikan berbagai praktek berbasis studi kasus.
  5. Bisa tanya jawab dengan instruktur.
  6. Bisa belajar dari rumah.
  7. Pembelajaran setelah office hour sehingga tidak mengganggu pekerjaan.
  8. Final Project untuk di cantumkan sebagai Portofolio di CV
  9. Sertifikat, Training Kit, Kupon Server $30 di Digital Ocean.
Semua itu tidak akan bisa Anda dapatkan jika Anda belajar dari tempat kursus lain maupun googling-googling sendiri sana-sini. Disini Anda sudah tidak perlu pusing lagi. Cukup fokus belajar dan praktek.
Saran saya segera daftar, karena kelas ini tidak akan dibuka setiap saat. Saya harap dengan Anda mengikuti kelas ini, Anda bisa sesegera mungkin menguasai Docker dan bisa memulai karir yang jauh lebih menyenangkan.

Sumber : https://blog.cilsy.id/2018/09/kenapa-harus-docker.html

Tidak ada komentar:

Posting Komentar