Apa yang dimaksud dengan orkestrasi kontainer?

diterbitkan 22 Oktober 2024
Beberapa roket berwarna teal diatur secara diagonal pada latar belakang hijau muda, masing-masing menghasilkan bayangan lembut
By Stephanie Susnjara and Ian Smalley

Definisi orkestrasi kontainer

Orkestrasi kontainer secara otomatis menyediakan, menerapkan, menskalakan, dan mengelola siklus hidup aplikasi yang dikontainerisasi. Pengembang menggunakan orkestrasi kontainer untuk menyederhanakan alur kerja tangkas atau DevOps, menyediakan fleksibilitas dan kecepatan yang dibutuhkan untuk mendukung infrastruktur multicloud hybrid modern.

Hari ini, Kubernetes adalah platform orkestrasi kontainer paling populer, dan sebagian besar penyedia layanan cloud terdepan—termasuk Amazon Web Services (AWS), Google Cloud Platform, IBM Cloud, dan Microsoft Azure—menawarkan Kubernetes service terkelola. Alat orkestrasi kontainer lainnya termasuk Docker Swarm dan Apache Mesos.

Mengapa kontainer membutuhkan orkestrasi?

Kontainer adalah komponen aplikasi ringan yang dapat dieksekusi yang menggabungkan kode sumber aplikasi dengan semua pustaka sistem operasi (OS) dan ketergantungan yang diperlukan untuk menjalankan kode di lingkungan apa pun. 

Kemampuan untuk membuat kontainer sudah ada selama beberapa dekade, tetapi baru tersedia secara luas pada tahun 2008 ketika Linux menyertakan fungsi kontainer di dalam kernelnya. Kemampuan ini menjadi lebih penting setelah kedatangan platform kontainerisasi sumber terbuka Docker pada tahun 2013. (Docker sangat populer sehingga frasa "kontainer Docker" dan kata "kontainer" sering digunakan secara bergantian.) Saat ini, kontainer kompatibel dengan banyak sistem operasi lain selain Linux, termasuk Windows.

Karena berukuran lebih kecil, lebih hemat sumber daya, dan lebih portabel daripada mesin virtual (VM), kontainer—dan khususnya layanan mikro berkontainer atau fungsi nirserver—telah menjadi unit komputasi de facto dari aplikasi cloud native modern.

 

Dalam jumlah kecil, kontainer cukup mudah diterapkan dan dikelola secara manual. Namun, aplikasi dalam container dan kebutuhan untuk mengelolanya dalam skala besar telah menjadi hal yang umum di sebagian besar organisasi berskala besar.

Misalnya, integrasi dan pengiriman berkelanjutan (CI/CD) atau alur DevOps tidak dapat dilakukan tanpa orkestrasi kontainer, yang mengotomatiskan tugas operasional terkait penerapan dan penjalanan aplikasi serta layanan berkontainer.

Dalam sebuah studi IBM, 70% pengembang yang disurvei menggunakan solusi orkestrasi kontainer, dan 70% dari mereka yang menggunakan laporan solusi menggunakan layanan orkestrasi kontainer yang dikelola sepenuhnya (dikelola cloud) di organisasi mereka.

Bagaimana cara kerja orkestrasi kontainer?

Arsitektur orkestrasi kontainer terdiri dari menjalankan klaster kontainer di beberapa mesin dan lingkungan. Setiap klaster biasanya terdiri atas sekelompok node (disebut juga instans server). Node pekerja menjalankan kontainer menggunakan waktu proses kontainer (seperti Docker). Sekelompok node bidang kontrol bertindak sebagai orkestrator klaster. Pengguna dapat mengelola dan memantau beban kerja berkontainer dengan alat yang memiliki fitur antarmuka pemrograman aplikasi (API) dan antarmuka pengguna grafis (GUI).

Meskipun ada perbedaan dalam metodologi dan kemampuan di seluruh platform dan alat, orkestrasi kontainer pada dasarnya adalah proses tiga langkah (atau siklus, ketika bagian dari pipeline tangkas atau DevOps berulang):

  1. Penyediaan
  2. Deployment
  3. Manajemen siklus hidup

1. Penyediaan

Sebagian besar alat orkestrasi kontainer mendukung model konfigurasi deklaratif. Pengembang menulis file konfigurasi (dalam YAML atau JSON, tergantung pada alat) yang mendefinisikan status yang diinginkan. Alat orkestrasi yang menjalankan file tersebut menggunakan kecerdasannya sendiri untuk mencapai status tersebut. File konfigurasi biasanya melakukan:

  • Tentukan gambar kontainer mana yang membentuk aplikasi dan lokasinya (dalam container registry).
  • Sediakan kontainer dengan penyimpanan dan sumber daya lainnya.
  • Definisikan dan amankan koneksi jaringan di antara kontainer.
  • Tentukan versi (untuk peluncuran bertahap atau kenari).

2. Penerapan

Alat orkestrasi menjadwalkan penerapan kontainer (dan replika kontainer, untuk ketahanan) ke host. Ini memilih host terbaik berdasarkan kapasitas unit pemrosesan pusat (CPU)yang tersedia, memori atau persyaratan atau batasan lain yang ditentukan dalam file konfigurasi.

3. Manajemen siklus hidup

Setelah kontainer diterapkan, alat orkestrasi mengelola siklus hidup aplikasi terkontainerisasi berdasarkan file definisi kontainer (biasanya berupa Dockerfile).

Tugas manajemen siklus hidup meliputi:

  • Kelola skalabilitas (naik dan turun), penyeimbangan beban, dan alokasi sumber daya di antara kontainer.
  • Bantu memastikan ketersediaan dan kinerja dengan merelokasi kontainer ke host lain jika terjadi pemadaman atau kekurangan sumber daya sistem.
  • Mengumpulkan dan menyimpan data log dan telemetri lain yang digunakan untuk memantau kesehatan dan kinerja aplikasi.

Lihat video ini untuk melihat lebih dekat bagaimana orkestrasi kontainer bekerja:

Manfaat orkestrasi kontainer

Manfaat utama orkestrasi kontainer meliputi:

  • Otomatisasi
  • Ketahanan
  • Peningkatan penggunaan dan kinerja sumber daya
  • Efisiensi biaya
  • Kecepatan dan kelincahan
  • Peningkatan keamanan
  • Peningkatan produktivitas

Otomatisasi

Manfaat utama dari orkestrasi kontainer adalah otomatisasi, yang sangat mengurangi upaya manual dan kompleksitas pengelolaan aset aplikasi berkontainer skala besar.

Ketahanan

Solusi orkestrasi kontainer meningkatkan ketahanan dengan memulai ulang atau menskalakan kontainer jika salah satu gagal. Kemampuan ini membantu memastikan ketersediaan dan peningkatan waktu aktif aplikasi.

Peningkatan penggunaan dan kinerja sumber daya

Pemilihan host dan alokasi sumber daya secara otomatis dapat memaksimalkan penggunaan sumber daya komputasi yang efisien. Misalnya, solusi orkestrasi kontainer dapat menyesuaikan memori dan penyimpanan CPU berdasarkan kontainer individual, yang mencegah penyediaan berlebih dan meningkatkan kinerja keseluruhan.

Efisiensi biaya

Orkestrasi kontainer menghilangkan kebutuhan akan intervensi manual, menurunkan biaya operasional. Selain itu, kontainer membutuhkan sumber daya yang lebih sedikit daripada VM, yang dapat mengurangi kebutuhan infrastruktur TI dan biaya overhead.

Kecepatan dan kelincahan

Alat orkestrasi kontainer membantu mempercepat pengembangan dan penerapan aplikasi, memberikan dukungan penting untuk proses cloud-native modern.

Peningkatan keamanan

Kontainer meningkatkan keamanan dengan mengisolasi aplikasi dari sistem host dan satu sama lain, mengurangi permukaan serangan. Banyak platform berisi pemindaian otomatis untuk mendeteksi kerentanan dan mengamankan registri gambar, meningkatkan perlindungan secara keseluruhan.

Peningkatan produktivitas

Dengan mengotomatiskan operasi, orkestrasi kontainer mendukung pendekatan Tangkas atau DevOps. Hal ini memungkinkan tim untuk mengembangkan dan menerapkan dalam siklus berulang yang cepat dan merilis fitur dan kemampuan baru dengan lebih cepat.

IBM DevOps

Apa itu DevOps?

Andrea Crawford menjelaskan apa itu DevOps, nilai DevOps, dan cara praktik serta alat DevOps membantu Anda memproses aplikasi Anda melalui seluruh delivery pipeline, dari ide hingga produksi. Dipimpin oleh para pemimpin terkemuka IBM, kurikulumnya dirancang untuk membantu para pemimpin bisnis dalam mendapatkan pengetahuan yang diperlukan untuk memprioritaskan investasi AI yang dapat mendorong pertumbuhan.

Keuntungan menggunakan Kubernetes

Dikembangkan oleh Google dan dirilis pada tahun 2014, Kubernetes menjadi salah satu proyek dengan pertumbuhan tercepat dalam sejarah perangkat lunak sumber terbuka. Kubernetes saat ini dikelola oleh Cloud Native Computing Foundation (CNCF). Sejak Kubernetes bergabung dengan CNCF pada tahun 2016, jumlah kontributor telah bertambah dari 731 menjadi 8.012.1

Dengan alat ekosistem kontainer lainnya, Kubernetes memungkinkan perusahaan untuk menyediakan platform sebagai layanan (PaaS) yang sangat produktif. Model komputasi cloud ini menangani banyak tugas dan masalah terkait infrastruktur dan operasi serta masalah seputar pengembangan aplikasi cloud native , sehingga tim pengembangan dapat berfokus sepenuhnya pada pengodean dan inovasi.

 

Keunggulan Kubernetes dibandingkan solusi orkestrasi lainnya sebagian besar merupakan hasil dari fungsinya yang lebih komprehensif dan canggih di beberapa area:

  • Penerapan kontainer
  • Peluncuran
  • Penemuan layanan
  • Penyediaan penyimpanan
  • Penyeimbangan beban dan skalabilitas
  • Penyembuhan mandiri untuk ketersediaan tinggi.
  • Dukungan dan portabilitas di berbagai penyedia cloud
  • Ekosistem sumber terbuka

Penerapan kontainer

Kubernetes menyebarkan sejumlah kontainer tertentu ke host tertentu dan menjaganya agar tetap berjalan dalam kondisi yang diinginkan.

Peluncuran

Peluncuran adalah perubahan pada penerapan. Kubernetes memungkinkan pengembang memulai, menjeda, melanjutkan, atau memutar kembali peluncuran.

Penemuan layanan

Kubernetes dapat secara otomatis mengekspos kontainer ke internet atau kontainer lain dengan menggunakan nama Sistem Nama Domain (DNS) atau alamat IP untuk menemukan layanan.

Penyediaan penyimpanan

Pengembang dapat mengatur Kubernetes untuk memasang penyimpanan lokal atau cloud yang persisten untuk kontainer Anda sesuai kebutuhan.

Penyeimbangan beban dan skalabilitas

Ketika lalu lintas ke kontainer melonjak, Kubernetes dapat menggunakan penyeimbangan beban dan penskalaan otomatis untuk mendistribusikan lalu lintas di seluruh jaringan dan membantu memastikan stabilitas dan kinerja. Kemampuan ini juga menghemat waktu pengembang dalam menyiapkan penyeimbang beban.

Penyembuhan mandiri untuk ketersediaan tinggi

Ketika sebuah kontainer gagal, Kubernetes dapat memulai ulang atau menggantinya secara otomatis. Itu juga dapat menghapus kontainer yang tidak memenuhi persyaratan pemeriksaan kesehatan organisasi.

Dukungan dan portabilitas di berbagai penyedia cloud

Kubernetes mendapat dukungan luas di semua penyedia cloud terkemuka. Kemampuan ini sangat penting bagi organisasi yang menerapkan aplikasi ke hybrid cloud (kombinasi cloud publik, cloud pribadi, dan infrastruktur on premises) atau multicloud (penggunaan layanan cloud dari lebih dari satu vendor cloud).

Ekosistem sumber terbuka

Kubernetes juga memiliki kestabilan kebergunaan yang terus berkembang dan alat jaringan untuk meningkatkan kemampuannya melalui API Kubernetes. Ini termasuk Knative, yang memungkinkan kontainer berjalan sebagai beban kerja nirserver, dan Istio, sebuah mesh layanan sumber terbuka.

Apa yang dimaksud dengan kontainer sebagai layanan (CaaS)?

Kontainer sebagai layanan (CaaS) adalah layanan terkelola yang memungkinkan pengembang mengelola dan menerapkan aplikasi berkontainer, memberikan bisnis akses ke solusi cloud yang portabel dan dapat diskalakan dengan mudah. Pada tahun 2022, pasar CaaS global bernilai hampir 2 miliar USD.2 Para peneliti memperkirakan pasar akan bernilai lebih dari 7 miliar USD pada tahun 2027, dengan CAGR 30,2% selama periode tersebut.

Penyedia CaaS menawarkan banyak manfaat bagi bisnis, termasuk waktu proses kontainer, lapisan orkestrasi, manajemen penyimpanan persisten, dan Integrasi dengan layanan lain. Banyak penyedia publik terkemuka menawarkan layanan terkelola orkestrasi kontainer, banyak di antaranya menggunakan Kubernetes sebagai teknologi yang mendasarinya.

Penyedia CaaS teratas meliputi:

  • Amazon Elastic Container Service (Amazon ECS) dari AWS
  • Mesin Google Kubernetes Google Cloud (GKE)
  • IBM Cloud Kubernetes Service
  • Microsoft Azure Container Instances (ACI)
  • Red Hat Openshift

Orkestrasi kontainer dan AI

Platform orkestrasi berkontainer seperti Kubernetes dapat mengotomatiskan bagian dari kecerdasan buatan (AI) dan machine learning (ML), seperti alur kerja pemeliharaan prediktif (termasuk pemeriksaan kesehatan real-time dan perencanaan sumber daya).

Machine learning mengandalkan model bahasa besar (LLM) untuk melakukan pemrosesan bahasa alami (NLP) tingkat tinggi, seperti klasifikasi teks, analisis sentimen, dan penerjemahan mesin. Orkestrasi kontainer membantu mempercepat penerapan model bahasa besar (LLM) untuk mengotomatiskan proses NLP. Selain itu, organisasi menggunakan orkestrasi kontainer untuk menjalankan dan menskalakan model AI generatif, yang memberikan ketersediaan tinggi dan toleransi kesalahan.

Penyusun

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Solusi terkait
IBM Instana Observability

Memanfaatkan kekuatan AI dan otomatisasi untuk memecahkan masalah secara proaktif di seluruh tumpukan aplikasi.

Jelajahi IBM Instana Observability
Solusi DevOps

Gunakan perangkat lunak dan alat bantu DevOps untuk membangun, menerapkan, dan mengelola aplikasi cloud native di berbagai perangkat dan lingkungan.

Jelajahi solusi DevOps
Layanan konsultasi cloud

Percepat ketangkasan dan pertumbuhan bisnis — terus modernisasi aplikasi Anda di platform apa pun menggunakan layanan konsultasi cloud kami.

Jelajahi layanan konsultasi cloud
Ambil langkah selanjutnya

Dari deteksi masalah proaktif dengan IBM Instana® hingga insight real-time di seluruh tumpukan, Anda dapat menjaga aplikasi cloud-native tetap berjalan dengan andal.

  1. Pelajari IBM Instana
  2. Jelajahi solusi DevOps