Kubernetes
Tutorial Kubernetes Series 1 — Sebelum belajar kubernetes
Kubernetes ini sebenarnya cocok untuk anda yang ingin menjadi DevOps Engineer. Nah, biasanya latar belakang profesi yang berkaitan dengan ini ada 2, yaitu:
- Software Engineer
- Infrastructure Engineer
Alasan hadirnya kubernetes, adalah dilatarbelakangi karena adanya perubahan besar-besaran dari arsitektur aplikasi bernama Monolith ke arsitektur Microservices.
Apa itu Monolith?
Saat kita membuat sebuah aplikasi, dan semua fitur dibuat dalam satu aplikasi tersebut, maka aplikasi tersebut dapat dikatakan sebagai aplikasi monolith.
Apa itu Microservices?
Microservices adalah kebalikan dari monolith, dimana aplikasi dipecah-pecah menjadi kecil-kecil, dimana tiap aplikasi hanya mengurus 1 tugas dengan baik, dan semua aplikasi saling berkomunikasi.
seperti ini kira-kira perbedaan antara monolith dan microservices.
Selanjutnya kehadiran kubernetes ini juga didasari oleh perubahan deployment dari virtual machine ke container.
Dahulu ketika kita mau deploy aplikasi kita ke production, tim infra harus setup sebuah VM dan deploy ke VM tersebut. problemnya, scaling VM butuh waktu yang lama. Karena butuh waktu yang lama seperti pembuatan VM dan proses booting OS nya ketika scaling-up. Studi kasus yang sering terjadi adalah ketika kita sedang berada production dan ingin melakukan scaling aplikasi secara cepat maka skenario ini tidak memungkinkan.
Maka Solusinya adalah Container. Pada VM kita menginstal Hypervisor dan Guest OS jalan diatasnya. Sementara di Container kita menggunakan Container Manager. Container Manager bakalan menjalankan/running aplikasi kita kedalam bentuk container. 1 aplikasi akan dirunning kedalam 1 container.
Nah, Sistem Operasi nya dimana?
Container akan menggunakan Host OS bawaan si container nya artinay Container manager bakal terinstal langsung di Host OS. walaupun mengunakan Host OS bawaan, tetapi container manager tidak dapat memanipulasi data apapun yang ada di Host OS, dikarenakan semua resource container terisolasi/isolated dalam bentuk container oleh si container manager.
Scaling Microservices Menggunakan Container
Pada microservices kita dapat scaling beberapa aplikasi secara bersamaan dengan cepat menggunakan container. Perbedaan dengan VM, Kita harus membuat VM nya terlebih dahulu, menginstal aplikasi terkait/depedency yang dibutuhkan sambil menunggu VM berjalan/running dengan sempurna. Karena, ada sistem operasi didalam VM tersebut.
Docker
Disarankan bagi yang berminat didunia DevOps, sebaiknya belajar Docker terlebih dahulu.
Kenapa Docker?
- Karena Docker mendukung banyak Container Manager.
- Penggunaan docker sangat populer dan perkembangan nya yang pesat.