subrutin
a sequence of programmer life

Advertisement

Mengapa Kubernetes Dibutuhkan? (Bagian -2)

0 67

Pada aplikasi sebelumnya, penulis telah membahas mengenai pergeseran paradigma dari Industri yang berawal dari producer led economy yang berfokus kepada produk, menjadi consumer led economy yang berfokus kepada apa yang diinginkan konsumen. Karena pada akhirnya di dunia teknologi informasi, agar perusahaan dapat tetap relevan mereka harus dengan cepat dapat menangkap kebutuhan dan keluhan konsumen lalu dengan cepat pula memberikan solusi atas kebutuhan dan keluhan konsumen tersebut, untuk menjawab tantangan tersaebut dibutuhkan sebuah tim yang agile, berfokus pada tujuan, mampu mengatur diri sendiri (self-organized team) dan bertanggung jawab atas layanan yang memberikan pengalaman yang memuaskan kebutuhan konsumen.

Advertisement

Namun, sementara kita fokus pada pengembangan metode agile di satu sisi, di sisi lain, kita juga harus mempertimbangkan infrastruktur yang mampu mengakomodasi prinsip-prinsip agile ini. Karena metodologi agile melibatkan pengujian produk langsung di pasar dan penyesuaian cepat berdasarkan umpan balik konsumen, infrastruktur yang responsif perlu dipertimbangkan untuk mengantisipasi kebutuhan ini. Ada dua solusi yang dapat digunakan untuk menjawab kebutuhan ini: container dan cloud.

  • Kebutuhan akan Container

Advertisement

Pada era 1990-an, ketika seorang pengembang menyelesaikan pembangunan Sistem Informasi, departemen operasional akan memulai proses pengadaan sebuah komputer server baru untuk menyimpan dan menjalankan perangkat lunak tersebut. Proses pengadaan ini memerlukan perencanaan yang matang, karena tim infrastruktur biasanya harus melakukan tender atau pembelian langsung server sesuai dengan kebutuhan sistem informasi yang dibangun. Tim infrastruktur cenderung membeli server dengan spesifikasi yang jauh lebih tinggi daripada yang sebenarnya diperlukan, karena telah menjadi kebiasaan mereka untuk merencanakan kapasitas berlebih. Hal ini dilakukan dengan alasan agar tidak terjadi masalah jika terjadi lonjakan beban di masa depan, yang dapat menyebabkan kesalahan atau gangguan dalam operasi sistem. Risiko ini sangat penting dihindari, terutama jika sistem informasi tersebut menjadi tulang punggung perusahaan atau digunakan langsung oleh konsumen (seperti Internet Banking atau mobile banking). Kekecewaan konsumen karena sistem tidak dapat digunakan oleh masyarakat dapat berdampak sangat buruk pada reputasi perusahaan.

Di sisi lain, membiarkan sejumlah sumber daya komputasi tetap tidak digunakan sebenarnya juga merupakan pemborosan. Ini menciptakan dilema bagi perusahaan dalam hal pembelian infrastruktur yang sesuai dengan kebutuhan sistem informasi. Namun, masalah lain muncul ketika perusahaan tersebut  mengadopsi metodologi agile, sehingga tim infrastruktur haruslah  memperkirakan berapa banyak server fisik yang harus diadakan untuk mengantisipasi kebutuhan perusahaan. Pada saat itu, setiap sistem informasi biasanya membutuhkan server komputer yang terpisah, karena teknologi yang memungkinkan pengisolasian dua aplikasi dalam satu server belum ada.

Advertisement

Maka kemudian munculan sebuah teknologi yang bernama Hypervisor, menjadi penyelamat bagi permasalahan tersebut. Hypervisor memungkinkan tim infrastuktur cukup membeli satu komputer server dengan ukuran besar kemudian selanjutnya membaginya ke dalam Virtual Machine (VM)  dengan spesifikasi sesuai kebutuhan sistem informasi tersebut, proses scaling juga dimungkinkan lebih fleksibel menggunakan VM karena dapat dilakukan secara pogrammatically dibandingkan scaling secara manual pada komputer server baremetal yang mengharuskan upgrade ukuran RAM misalnya.

Jika kita melihat pada gambar 2 yang menggambarkan konsep sebuah sistem operasi pada komputer server fisik (Sistem Operasi Host), kita dapat melihat bahwa ada sebuah fitur yang dikenal sebagai Hypervisor. Hypervisor ini memberikan kemampuan kepada sistem operasi host untuk mengemulasi berbagai image menjadi arsitektur komputer fisik yang berbeda, sehingga memungkinkan sebuah sistem operasi (guest) dijalankan di dalam sistem operasi (host).

Tentu saja, meskipun memiliki banyak kelebihan, VM juga memiliki beberapa masalah yang signifikan. Salah satu masalah utama adalah bahwa VM memiliki kinerja yang lebih rendah dibandingkan dengan sistem operasi host-nya. Hal ini terjadi karena VM harus mengemulasi arsitektur komputer untuk menjalankan sistem operasi host, yang mengakibatkan biaya tambahan dari proses emulasi.

Selain itu, VM juga memiliki konsumsi sumber daya yang tinggi karena menjalankan seluruh sistem operasi di dalam sistem operasi host. Ini tidak hanya berdampak pada kinerja, tetapi juga waktu yang diperlukan untuk memulai VM yang cenderung lebih lambat daripada server bare metal. Masalah tambahan muncul dalam hal perawatan, seperti pembaruan patch dan lisensi, yang harus dilakukan secara terpisah untuk setiap sistem operasi guest.

Selanjutnya, karena VM terbungkus dalam sistem operasi guest, setiap aplikasi yang diimplementasikan harus dibungkus ke dalam image yang berisi sistem operasi guest dan segala dependensinya. Hal ini mengakibatkan ukuran package image yang dideliver  sangatlah  besar.

Advertisement

Maka untuk menyeleseikan masalah – masalah  tersebut, munculah kontainer. Meskipun sebenarnya kontainer sendiri bukanlah sebuah teknologi baru. Kontainer sudah lama oleh perusahaan teknologi besar seperti Google. Apa yang membedakan kontainer dengan VM adalah kontainer tidak memerlukan sistem operasi guest, sehingga masing – masing kontainer berbagi sistem operasi host yang sama. Hal tersebut tentu menghemat sejumlah besar resource seperti CPU, RAM hingga storage. Dan satu lagi, manfaat yang signifikan adalah dengan menggunakan kontainer, menyederhanakan proses maintainance dari infrastruktur sehingga proses update dan patching cukup dilakukan pada sistem operasi host.

Advertisement

advertisement

Get real time updates directly on you device, subscribe now.

Tinggalkan pesanan

Alamat email anda tidak akan disiarkan.