Application Containerization Towards Cloud Native

Apakah manfaat yang di dapat dari meng-containerisasi aplikasi?

Application Containerization adalah suatu metoda virtualisasi di level Operating System dengan tujuan untuk men-deploy microservice aplikasi tanpa harus membutuhkan virtual machine dan guest operating system untuk setiap aplikasi yang di jalankan. Dengan mempergunakan Operating System Kernel yang sama, multiple microservices aplikasi atau layanan yang terisolasi dapat berjalan dalam satu host komputer yang sama. Container dapat berfungsi pada sistem bare-metal, instance cloud, bahkan di atas virtual machine.

Application containers menyertakan the runtime components seperti — files, environment variables and libraries – mencakup semua kebutuhan untuk menjalankan software secara benar.

Container menggunakan lebih sedikit computer resource daripada dibanding penerapan pada Virtual Machine. Berbeda pada VM environment yang membutuhkan Operating System yang lengkap, Container berbagi share operating system yang di butuhkan untuk menjalakan setiap aplikasi. Kumpulan informasi lengkap yang siap untuk dieksekusi dalam container di namakan  Image. Container Engine menjalankan Image-Image ini di atas komputer host.

Teknologi containerization aplikasi yang paling umum adalah Docker, khususnya Docker Engine adalah open source yang merupakan container yang mempergunakan runC runtime universal. Docker Swarm adalah clustering dan scheduling tools. Menggunakan Docker Swarm, DevOps team dapat membuat dan mengelola cluster node Docker di dalam system yg terintegrasi. Ada kekhawatiran tentang lock-in vendor dari penguna aplikasi containerization dan ekosistem partner tetapi sejumlah besar teknologi open source mendukung container teknologi.

Application Containerization sangat cocok untuk menjalankan microservices dan distributed aplikasi, karena setiap container beroperasi secara independen dari yang lain dan menggunakan komputer resource yang minimal dari komputer host. Setiap microservices berkomunikasi dengan yang lain melalui API. Container Virtualization layer dapat meningkatkan kinerja microsevices untuk memenuhi permintaan yang meningkat akan aplikasi yang harus di jalankan dan mendistribusikan beban lebih baik. Dengan virtualisasi, programmer (Dev team) dapat memanfaatkan komputer hardware resource sebagai virtual mesin yang siap pakai. Pengaturan ini meningkatkan fleksibilitas. Misalnya, jika Dev team menginginkan variasi dari Image yg standar, dia dapat membuat container  yang lain untuk menampung library baru dalam lingkungan virtual.

Untuk memperbarui aplikasi, Dev team dapat membuat perubahan pada program di Image container. Pengembang kemudian menerapkan Image yang beru itu untuk berjalan di OS host.

Manfaat dan kerugian Application Containerization

Containerization terbukti dapat mengefisienkan memori, CPU, dan storage dibandingkan dengan traditional virtualization ataupun application hosting secara fisik. Tanpa overhead yang dibutuhkan oleh VM (untuk menjalankan OS), dalam infrastruktur yang sama, sangat dimungkinkan untuk menjalankan lebih banyak application container dibanding dengan menjalankan VM.

Reprodusibilitas adalah keuntungan lain menerapkan application containerization. Inilah salah satu alasan mengapa adopsi container sering kali sesuai dengan metodologi DevOps.

Salah satu potential kelemahan dari Containerization adalah kurangnya isolasi dari Host Operating System. Karena container tidak diabstraksi dari OS host namun pada VM, beberapa ahli memperingatkan bahwa ancaman keamanan karena aplikasi memiliki akses yang lebih mudah ke seluruh sistem. Namun, containerization juga menawarkan beberapa peningkatan dalam keamanan. Hal ini disebabkan oleh application packages yang lebih terisolasi dan OS yang lebih specifik dan berukuran OS dependency yang lebih kecil. Kebijakan menentukan tingkat hak istimewa Container menjadi sangat penting untuk memastikan system yang aman.

  • Hands On Kubernetes Workshop
    Mengatur dan mengelola container memang bukanlah sebuah hal yang mudah, dibutuhkan skill yang memumpuni, serta management container yang lebih terotomisasi dan policy-driven untuk dapat melakukannya. Maka dari itu K8S hadir …
  • Perbandingan Zerto Site Recovery Manager & Replikasi vSphere
    Disaster Recovery di Era Virtualisasi Virtualisasi telah membuat Disaster Recovery menjadi sangat tidak rumit bagi perusahaan, besar dan kecil. Faktanya, bukanlah hal yang berlebihan untuk mengatakan bahwa virtualisasi telah membuat …
  • Microservices Adalah dan Perbedaan Monolithic Architecture
    Memanfaatkan Teknologi Microservice & Container untuk memodernisasi aplikasi menuju Cloud Native Arsitektur di Era Digital. Microservices adalah suatu framework Architecture yang dipakai sebagai model dalam pembuatan aplikasi cloud yang modern. Di …
  • Cara Kerja Kubernetes Adalah, Keuntungan, Arsitekur, Komponen
    Apa yang anda perlu ketahui tentang Kubernetes, keuntungan yang bisa di dapat dan bagaimana dengan arsitektur, komponen dan cara kerjanya. Apa itu Kubernetes (K8S) dan bagaimana cara kerjanya? Kubernetes adalah sebuah open …
  • Monolithic to Cloud Native – Microservices Migration Strategy
    Langkah yang harus di ambil untuk bisa memigrasikan Monolitik aplikasi ke Cloud Native arsitektur. Sebelum memulai dalam memodernisasi aplikasi Monolithic anda yang lama, sebaiknya anda memulai dulu dari mendalami lebih …