Container Types
5 min read
Container Types and Use Cases #
PaaS menggabungkan dua jenis container dalam satu platform. Teknologi kontainerisasi ini ditujukan untuk menyelesaikan masalah yang berbeda, namun orkestrasi platform mewarisi keuntungan dari kedua implementasi tersebut.
1. System Containers – salah satu jenis container tertua yang mirip dengan virtual machine. Ini adalah solusi stateful yang berpusat pada sistem operasi dan mampu menjalankan banyak proses. System container biasanya digunakan untuk aplikasi tradisional atau monolitik, karena memungkinkan untuk menjalankan arsitektur, alat, dan konfigurasi yang sebelumnya diterapkan pada VM. Beberapa implementasi system container antara lain: LXC/LXD, OpenVZ/Virtuozzo, BSD jails, Linux vServer, dan lainnya. Platform ini menggunakan solusi Virtuozzo.
2. Application Containers – jenis container yang relatif baru, biasanya menjalankan satu proses di dalamnya. Ini adalah solusi stateless yang berfokus pada microservice dan mudah diskalakan secara horizontal. Application container sangat cocok untuk infrastruktur yang immutable dan ephemeral. Beberapa implementasi application container yang tersedia di pasaran antara lain: Docker, containerd, CRI-O, dan lainnya. Platform ini menggunakan Docker sebagai teknologi application container yang paling banyak digunakan.

Berbicara tentang container saat ini, kebanyakan orang langsung terpikir pada teknologi Docker karena promosinya yang masif dan adopsinya yang luas dalam beberapa tahun terakhir. Sebagian besar penyedia cloud menawarkan application container Docker di dalam Virtual Machine (VM). Setiap VM memiliki Guest OS sendiri dengan penggunaan memori, CPU, dan penyimpanan yang terpisah, yang meningkatkan kebutuhan sumber daya untuk menjalankan aplikasi dan membuat biaya hosting menjadi lebih mahal.
Namun, dalam platform ini, teknologi Docker dijalankan di dalam system container yang berbagi kernel yang sama. Artinya, mereka menggunakan sumber daya sistem operasi (OS) dari host secara bersama-sama, sehingga mengurangi konsumsi sumber daya secara signifikan. Meskipun lebih ringan dibandingkan VM, nested container ini tetap sangat terisolasi dan aman.

Di dalam platform ini, berbagai jenis container dapat digunakan untuk kebutuhan yang berbeda-beda, antara lain:
- Certified Managed Containers
- Virtual Private Servers (Elastic VPS)
- Custom Docker Containers
- Docker Engine CE (Docker Native)
- Kubernetes Cluster
Di bawah ini akan dijelaskan masing-masing opsi secara lebih rinci, beserta beberapa saran mengenai pilihan mana yang paling sesuai untuk proyek Kamu.
Certified Managed Containers #
Pilihan paling umum dan direkomendasikan bagi pengguna platform adalah certified containers. Platform ini menyediakan berbagai software stack yang sudah dikonfigurasi dan dikelola, sehingga memudahkan pembuatan topologi fleksibel dengan server aplikasi (Java, PHP, Node.js, Ruby, Python, atau Go), load balancer, database, dan lainnya.

Semua certified containers ini telah diuji dan dioptimalkan secara menyeluruh untuk skenario paling umum di platform. Tim PaaS secara rutin memperbarui stack perangkat lunak ini ke versi stabil terbaru atau menerapkan patch keamanan pada image container yang sudah dirilis.

Biasanya, container-container ini juga mendapat manfaat dari integrasi tambahan, seperti :
- Konfigurasi otomatis berdasarkan batasan skalabilitas resource (cloudlet),
- Instalasi otomatis sertifikat SSL,
- Otomatisasi deployment aplikasi,
- Auto-clustering bawaan,
- Pembaruan keamanan yang dikelola, dan fitur lainnya.
Virtual Private Servers (Elastic VPS) #
Contoh paling sederhana dari implementasi system container adalah virtual private server (VPS). Platform ini menyediakan container Elastic VPS dengan OS bawaan seperti CentOS, Ubuntu, dan Debian. Ini adalah container berbasis OS murni tanpa kustomisasi atau software tambahan. Sangat cocok untuk mengkontainerisasi aplikasi legacy karena hampir tidak memerlukan perubahan saat migrasi dari VM.

Karena pada dasarnya masih “kosong” setelah instalasi, semua konfigurasi yang dibutuhkan harus dilakukan oleh end user. Untuk memudahkannya, di Elastic VPS menyediakan akses root. Fungsinya mirip seperti virtual machine, namun lebih ringan dan punya keunggulan auto scaling secara vertikal maupun horizontal.
Custom Docker Containers #
Custom Docker Container adalah image Docker (berbasis OS dan arsitektur yang didukung) yang dijalankan di dalam system container milik platform. Ini membuatnya kompatibel dengan sebagian besar fitur unggulan platform, seperti auto scaling vertikal dan horizontal. Singkatnya, filesystem dari image Docker milikmu akan diekstrak dan dijalankan dalam runtime system container.

Dibandingkan dengan certified managed containers, opsi ini memberi fleksibilitas lebih dalam memilih stack software. Kamu bisa memakai berbagai image Docker pihak ketiga dari Docker Hub atau registry publik/pribadi lain. Namun, platform tidak menjamin semua software akan berjalan lancar karena dikelola oleh pembuat image masing-masing.

Docker Engine CE (Docker Native) #
Platform ini mendukung Docker Engine Community Edition yang berjalan di dalam system container, tapi tetap sepenuhnya kompatibel dengan ekosistem Docker native.

Integrasi ini memungkinkan penggunaan berbagai alat utama dari teknologi Docker container, yaitu:
- Docker Engine – untuk memproses Dockerfile atau menjalankan image container yang sudah dibuat.
- Docker Registry – sebagai tempat penyimpanan dan akses ke berbagai image publik maupun privat untuk digunakan di Docker Engine.
- Docker Compose – membantu menyusun aplikasi yang terdiri dari beberapa komponen, dengan semua konfigurasi dideklarasikan dalam satu file compose.
- Docker Swarm – menggabungkan beberapa node Docker menjadi sebuah cluster.
Platform ini menyediakan versi paket siap pakai dari Docker Engine CE dan Docker Swarm Cluster dengan fitur auto-clustering terintegrasi.

Kubernetes Cluster #
Application container dapat dijalankan dan dikelola menggunakan alat orkestrasi Kubernetes. Ini adalah platform open-source yang dirancang untuk menyebarkan dan mengelola aplikasi terkontainerisasi yang tahan gangguan. Kubernetes mampu menangani tugas orkestrasi kompleks seperti deployment otomatis, service discovery, rolling upgrade, self-healing (pemulihan otomatis), dan manajemen keamanan. Cocok digunakan untuk aplikasi skala besar dengan kebutuhan pengelolaan yang kompleks.

Implementasi Kubernetes di PaaS mengotomatiskan proses instalasi, konfigurasi, dan pembaruan kluster. Selain itu, platform ini juga menyediakan berbagai layanan yang sudah terintegrasi sebelumnya, seperti : Weave CNI (untuk jaringan antar-pod), CoreDNS (untuk DNS internal kluster), Traefik (sebagai ingress controller), dan sebagainya. Tujuannya adalah untuk memudahkan pengguna dalam menjalankan dan mengelola aplikasi container tanpa harus menangani kerumitan teknis dari setup Kubernetes secara manual.

Dengan kata lain, platform ini menjalankan Kubernetes menggunakan orkestrasi internalnya sendiri, sehingga memberikan interoperabilitas maksimum untuk proyek yang memang sejak awal dirancang menggunakan Kubernetes.
Keuntungan utamanya adalah model pembayaran berbasis penggunaan (pay-per-use) yang canggih, yang membantu mengatasi masalah penentuan ukuran sumber daya (right-sizing). Hasilnya, hosting banyak container menjadi jauh lebih efisien secara biaya.
Powered by BetterDocs
