Mengisolasi Aplikasi

Kali ini aku akan menjelaskan tentang perlunya kita mengisolasi aplikasi. Tapi, bukan menggunakan isolasi yang kita beli di toko fotocopy lho ya. 😅 Aplikasi terisolasi merupakan kebutuhan dasar saat kita memutuskan mengembangkan aplikasi dengan arsitektur microservices. Untuk saat ini, umumnya isolasi dilakukan dengan memanfaatkan teknologi container. Container itu apa ya? 🤔. Yuk kita bahas.

Mari kita mulai dengan kasus. 🧐Misalkan kita bekerja di suatu perusahaan dan kita diminta untuk membuat web server yang menjalankan aplikasi berbasis php. Developer (pengembang) aplikasi tersebut mengembangkan aplikasinya menggunakan php versi 7. Suatu hari, perusahaan kita menambah 1 aplikasi lagi, tapi kali ini developer-nya berbeda dan dia menggunakan php versi 8. Apakah kita bisa menggunakan web server yang sama? Jawabnya tentu saja tidak. 😱 Lantas, kita harus gimana dong? 🙄

Mungkin teman-teman akan berfikir untuk meminta developer aplikasi pertama menaikkan versi php atau meminta developer kedua menurunkan versi php. Pikiran itu tidak salah dan bisa menjadi alternatif, tapi aku kasih tahu ya, itu tidak mudah. Menaikkan versi atau menurunkan versi itu butuh waktu lama loh, apalagi kalau fiturnya sudah sangat banyak. 😅 Jadi, yang perlu kita lakukan adalah mengisolasi masing-masing aplikasi tersebut dengan kebutuhan mereka sendiri. Berikut ini beberapa cara melakukan isolasi.

Mengisolasi Aplikasi dengan Server Fisik

Kita bisa melakukan isolasi menggunakan server fisik yang lain. Jadi kita membuat web server baru dengan server fisik yang baru. Sehingga kita punya 2 web server, yaitu web server php 7 dan web server php8. Solusi ini lebih mudah dan cepat dibandingkan kita harus memohon-mohon kepada developer untuk mengubah versi. Tapi solusi ini membutuhkan biaya untuk membeli server baru yang tentunya tidak murah. Bagaimana jika perusahaan kita berencana untuk menambah beberapa aplikasi baru dalam waktu dekat? Kita tidak tahu versi berapa saja yang digunakan developer. Mungkin juga developer-nya tidak menggunakan php. Apakah kita harus membeli server baru setiap ada aplikasi baru? Membengkak dong biaya pengembangan aplikasi. 🤑

Penggunaan Virtual Machine

Agar perusahaan kita tidak bangkrut, mari kita coba menggunakan teknologi bernama Virtual Machine (VM). VM adalah suatu komputer virtual yang berjalan di atas komputer fisik dengan memanfaatkan teknologi virtualisasi. Setiap VM dilengkapi OS sendiri, CPU virtual, RAM virtual, storage virtual dan jaringan virtual, sehingga berperilaku layaknya komputer fisik mandiri.

Sebuah server fisik dapat menjalankan beberapa VM sekaligus, tergantung seberapa besar sumber daya (CPU, RAM dan Storage) yang dimiliki server tersebut. Dengan VM, kita dapat mengisolasi aplikasi yang akan dipakai oleh perusahaan. Kita tidak perlu bingung lagi jika ada banyak versi php ataupun beda-beda bahasa pemrograman.

Untuk menjalankan VM kita harus menggunakan hypervisor. Ada 2 tipe hypervisor untuk menjalankan VM, yaitu Bare-Metal Hypervisor (Type 1) dan Hosted Hypervisor (Type 2). Jika sebelumnya kita sudah punya server yang ada OS-nya dan ingin menambahkan VM kita bisa menggunakan hosted hypervisor. Contoh aplikasi yang bisa digunakan adalah VirtualBox. Namun, jika sejak awal server kita masih kosong dan kita tahu akan banyak aplikasi berbeda yang harus diisolasi, sebaiknya kita gunakan bare-metal hypervisor pada server yang kita miliki. Contohnya kita bisa menggunakan VMware ESXi, Microsoft Hyper-V, Xen, KVM.

perbedaan vm untuk mengisolasi aplikasi

Container Lebih Baik

Sayangnya, Virtual Machine (VM) dengan tingkat isolasi yang tinggi justru menimbulkan inefisiensi, terutama dalam hal penggunaan sumber daya. Bayangkan jika kita membutuhkan lima VM untuk menjalankan lima aplikasi berbeda, kita harus menginstal lima sistem operasi (OS) secara terpisah, yang masing-masing OS memiliki ukuran yang lumayan dan memakan ruang penyimpanan yang besar.

Selain itu, dependensi yang sama seperti library atau framework mungkin perlu diinstal berulang kali di setiap VM, menyebabkan duplikasi data dan pemborosan sumber daya. Nah, saat ini telah ada teknlogi bernama container untuk mengisolasi aplikasi. Container menawarkan isolasi tingkat proses, berbagi kernel OS yang sama dengan host, sehingga footprint-nya jauh lebih kecil dibandingkan VM dan memungkinkan penggunaan sumber daya yang lebih optimal serta menghindari pengulangan instalasi dependensi yang sama.

Salah satu contoh implementasi teknologi container yang saat ini sangat populer dan banyak digunakan dalam pengembangan perangkat lunak adalah Docker. Docker adalah sebuah platform open-source yang memungkinkan pengembang untuk mengotomatisasi proses deployment dan manajemen aplikasi di dalam lingkungan container. Dengan Docker, aplikasi beserta semua dependensinya (library, framework, konfigurasi) dikemas menjadi sebuah unit portabel yang disebut image. Image ini kemudian dapat dijalankan sebagai satu atau lebih container yang terisolasi satu sama lain dan dari sistem operasi host, memastikan konsistensi lingkungan di berbagai tahap pengembangan, pengujian, hingga produksi. Fleksibilitas dan kemudahan penggunaan Docker telah menjadikannya standar de facto dalam dunia containerisasi.

Nah, demikianlah sedikit penjelasan cara-cara melakukan isolasi terhadap aplikasi.😉 Selanjutnya aku akan membahas bagaimana kita sebagai developer menggunakan docker. Semoga tulisan ini bermanfaat untuk kita semua. 🤲

Ardhan Wahyu Rahmanu
Ardhan Wahyu Rahmanu

Aku adalah seorang pemikir sistematis yang idealis, mandiri, dan reflektif — terus-menerus membangun hidup yang bermakna melalui belajar, bekerja, menulis, dan menjaga arah hidup yang sadar.

Articles: 98

Tinggalkan Balasan

error: Content is protected !!