CaaS: Container as a Service

From OnnoWiki
Jump to navigation Jump to search

Sumber: https://www.aquasec.com/cloud-native-academy/container-platforms/container-as-a-service/#CaaS-vs-PaaS,-IaaS,-and-FaaS


Apakah Container as a Service (CaaS)?

Containers as a Service (CaaS) adalah layanan cloud yang mengelola kontainer dalam skala besar, termasuk memulai, menghentikan, menskalakan, dan mengatur beban kerja dalam kontainer. Contoh dari CaaS service adalah Amazon Elastic Container Service (ECS), Amazon Fargate, dan Azure Container Instances (ACI).

CaaS platform kontainer adalah jalan tengah antara container engine seperti Docker, yang memungkinkan kita mengelola masing-masing container tanpa kemampuan orkestrasi, dan orkestrasi berfitur lengkap seperti Kubernetes, yang menyediakan kemampuan manajemen cluster yang kuat, tetapi kompleks untuk disiapkan dan dipelihara.

Dalam scope layanan cloud computing, CaaS menyediakan lebih banyak kemampuan daripada Infrastructure as a Service (IaaS), tetapi memiliki fitur yang lebih sedikit daripada kebanyakan penawaran Platform as a Service (PaaS). CaaS paling sering digunakan dalam model IaaS, kecuali unit sumber daya utamanya adalah container, bukan mesin virtual (VM) atau server bare metal.

Caas vs. PaaS

Platform as a Service (PaaS) melibatkan pihak ketiga yang menyediakan platform gabungan, termasuk perangkat keras dan perangkat lunak. Model PaaS memungkinkan end user untuk mengembangkan, mengelola, dan menjalankan aplikasi mereka sendiri, sementara penyedia platform mengelola infrastrukturnya. Selain penyimpanan dan sumber daya komputasi lainnya, penyedia biasanya menawarkan seperangkat alat untuk pengembangan, pengujian, dan penerapan aplikasi.

CaaS berbeda dari PaaS karena merupakan layanan tingkat rendah yang hanya menawarkan komponen infrastruktur spesifik — sebuah container. Layanan CaaS dapat menyediakan layanan pengembangan dan tool seperti CI/CD release management, yang membawa CaaS lebih dekat ke model PaaS.

Caas vs. IaaS

Infrastructure as a Service (IaaS) menyediakan sumber daya komputasi mentah seperti server, penyimpanan, dan jaringan di cloud publik. Ini memungkinkan organisasi untuk meningkatkan sumber daya tanpa pengeluaran di muka, dan dengan risiko dan biaya overhead yang rendah.

CaaS berbeda dari IaaS karena menyediakan lapisan abstraksi di atas sumber daya perangkat keras mentah (raw). Layanan IaaS seperti Amazon EC2 menyediakan instans komputasi, yang pada dasarnya adalah komputer dengan sistem operasi yang berjalan di cloud publik. Layanan CaaS menjalankan dan mengelola container di atas mesin virtual ini, atau dalam kasus layanan seperti Azure Container Instances, memungkinkan pengguna untuk menjalankan container secara langsung pada sumber daya bare metal.

Caas vs. FaaS

Function as a Service (FaaS), juga dikenal sebagai serverless computing, cocok untuk pengguna yang perlu menjalankan fungsi atau komponen aplikasi tertentu, tanpa mengelola server. Dengan FaaS, penyedia layanan secara otomatis mengelola perangkat keras fisik, mesin virtual, dan infrastruktur lainnya, sedangkan pengguna hanya memberikan kode dan membayar per durasi atau jumlah eksekusi.

CaaS berbeda dari FaaS karena menyediakan akses langsung ke infrastruktur—pengguna dapat mengonfigurasi dan mengelola container. Namun, beberapa layanan CaaS, seperti Amazon Fargate, menggunakan serverless deployment model untuk menyediakan layanan container sambil memisahkan server dari pengguna, menjadikannya lebih mirip dengan model FaaS.

Bagaimana CaaS Bekerja

CaaS menyediakan kemampuan yang mengotomatiskan penerapan dan hosting container di berbagai lingkungan cloud. CaaS tidak bergantung pada satu tumpukan kode atau bahasa, itulah sebabnya kita dapat mengimplementasikan CaaS di lingkungan multicloud dan hybrid cloud.

Otomatisasi yang disediakan oleh CaaS dapat meningkatkan efisiensi saluran pipeline kita secara signifikan. Karena banyak tugas diotomatisasi, staf pengembangan dan TI memperoleh lebih banyak waktu dan produktivitas meningkat. Selain itu, otomatisasi dapat mempercepat proses dan memastikan ekosistem tetap up-to-date secara konsisten.

Top Container as a Service Providers

Amazon Elastic Container Service (AWS ECS)

Amazon Elastic Container Service (ECS) adalah layanan cloud yang mengelola dan menskalakan container, tanpa mengharuskan pengembang mengonfigurasi atau menyiapkan lingkungan. ECS menjalankan aplikasi pada grup server yang disebut cluster, memungkinkan pengembang untuk mengontrolnya melalui panggilan API.

ECS mengevaluasi dan memantau penggunaan CPU dan memori untuk menentukan deployment container yang optimal pada sumber daya perangkat keras. Ini terintegrasi erat dengan AWS Elastic Load Balancing (AWS ELB), Elastic Block Store (AWS EBS) untuk penyimpanan persisten, dan Identity and Access Management (AWS IAM) untuk kontrol akses.

Azure Container Instance

Azure Container Instance (ACI) adalah layanan yang memungkinkan pengembang deploy container secara langsung di perangkat keras Microsoft Azure tanpa perlu menyediakan atau mengelola infrastruktur. Tidak perlu mengonfigurasi dan mengelola mesin virtual dan mengimplementasikan platform orkestrasi container, seperti Kubernetes.

Kita dapat dengan mudah meluncurkan container baru melalui portal Azure atau Azure CLI, dan Microsoft secara otomatis mengonfigurasi dan menskalakan sumber daya komputasi dasar kita. Layanan ini mendukung container Linux dan Windows. ACI mendukung penggunaan gambar dari public container registries seperti Docker Hub dan Azure Container Registry, dan dapat diintegrasikan dengan private registry.

Google Cloud Run

Google Cloud Run adalah serverless platform yang terkelola sepenuhnya yang memungkinkan kita menjalankan image container Docker sebagai layanan HTTP penskalaan otomatis stateless. Tidak seperti serverless platform murni, Cloud Run dapat melakukan lebih dari sekadar menjalankan fungsi kecil di interface terbatas. kita dapat menggunakan container untuk menjalankan aplikasi kompleks dengan multiple endpoint.

Google Cloud Run secara otomatis menskalakan jumlah instance container sebagai respons terhadap permintaan yang masuk dari setiap aplikasi. Ini juga menyediakan pengaturan concurrency yang menentukan jumlah maksimum permintaan yang dapat ditangani oleh instance container tertentu.

Referensi