Strategi penerapan Kubernetes: Memilih pendekatan yang tepat untuk aplikasi Anda

Orang bekerja di komputer

Penyusun

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Strategi penerapan Kubernetes

Strategi penerapan yang dipilih organisasi dapat menyukseskan atau menghancurkan peluncuran aplikasi. Di lingkungan Kubernetes, keputusan berdampak langsung pada ketersediaan aplikasi, kecepatan pengembangan, dan biaya operasional.

Perbedaan antara peluncuran yang lancar dan bencana pada penerapan sering kali berujung pada pemilihan pendekatan yang tepat untuk kebutuhan aplikasi tertentu dan toleransi risiko.

Dengan adopsi Kubernetes yang terus berkembang, pilihan penerapan strategis menjadi semakin penting bagi tim DevOps dan juga hasil bisnis.

Survei Cloud Native Computing Foundation (CNCF) menemukan bahwa 93% organisasi menggunakan, merintis, atau mengevaluasi Kubernetes.1 Setiap strategi penerapan Kubernetes memiliki kekurangan yang berbeda antara kecepatan, keamanan, dan penggunaan sumber daya.

Apa itu penerapan Kubernetes?

Penerapan Kubernetes adalah sumber daya tingkat tinggi yang mengelola siklus hidup aplikasi tanpa status dalam klaster Kubernetes. Penerapan ini memberikan uraian terperinci untuk menentukan status yang dimaksudkan dari aplikasi, termasuk jumlah replika, gambar kontainer, dan penanganan pembaruan.

Alih-alih mengelola kontainer atau pod individual, penerapan memberi tim lapisan manajemen yang menangani orkestrasi kompleks yang diperlukan untuk menjaga aplikasi berjalan dengan andal.

Berita teknologi terbaru, didukung oleh insight dari pakar

Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM® kami untuk informasi lebih lanjut.

Ikhtisar Kubernetes

Kubernetes, platform orkestrasi kontainer sumber terbuka yang diterima umum, pada intinya telah mengubah cara organisasi berpikir tentang penerapan aplikasi. Ketika perusahaan beralih dari aplikasi sederhana dan monolitik ke arsitektur terdistribusi yang kompleks selama migrasi cloud, pendekatan penerapan tradisional menjadi tidak praktis dan mahal.

Awalnya dikembangkan oleh Google dan disumbangkan ke CNCF pada tahun 2015, Kubernetes mendukung infrastruktur TI penting untuk sebagian besar Perusahaan Fortune 500. Kubernetes mengotomatiskan penerapan, penskalaan, dan manajemen di seluruh klaster mesin, memungkinkan tim memperbarui aplikasi berulang kali setiap hari alih-alih memperlakukan penerapan sebagai peristiwa berisiko tinggi dan jarang terjadi.

Sebelum Kubernetes, aplikasi biasanya berjalan pada server khusus atau mesin virtual (VM), yang membuat penskalaan menjadi mahal dan memakan waktu. Sementara Docker memopulerkan kontainer, Kubernetes menyediakan lapisan orkestrasi kontainer untuk mengelola kontainer ini dalam skala besar, mengaturnya menjadi pod, unit terkecil yang dapat diterapkan.

Semua pod ini berjalan melintasi node pekerja dalam klaster, sementara bidang kontrol mengoordinasikan semua operasi.

Arsitektur cloud native ini memungkinkan strategi penerapan canggih yang dibutuhkan oleh aplikasi modern berkontainer berbasis cloud. Dari peluncuran bertahap hingga peralihan lalu lintas instan dengan penyeimbangan beban, setiap pendekatan menangani profil risiko dan persyaratan operasional yang berbeda. Kubernetes Services menyediakan identitas jaringan yang stabil dan penemuan berbasis DNS untuk sekelompok pod yang memungkinkan pola komunikasi andal bahkan ketika tiap instans diperbarui atau diganti.

IBM Cloud

Red Hat OpenShift AI di IBM Cloud: Menerapkan beban kerja AI

Gunakan kemampuan AI dengan Red Hat OpenShift on IBM Cloud. Video ini menjelajahi cara membangun, menerapkan, dan mengelola beban kerja AI secara efisien dengan platform operasi machine learning yang dapat diskalakan.

Bagaimana cara kerja penerapan Kubernetes?

Penerapan Kubernetes secara otomatis mengelola siklus hidup aplikasi dengan mempertahankan jumlah pod yang diinginkan, menangani pembaruan, dan mengganti kontainer melalui kemampuan pemulihan mandiri.

Saat memperbarui aplikasi, tim menentukan seperti apa versi baru akan terlihat dalam file YAML. Kubernetes kemudian menangani orkestrasi kompleks yang diperlukan untuk mencapai status yang dimaksudkan di seluruh klaster, membuat pod baru sekaligus mengelola transisi dari versi sebelumnya.

Tim berinteraksi dengan penerapan melalui kubectl, antarmuka baris perintah untuk klaster Kubernetes. Mereka menerapkan file konfigurasi YAML (misalnya, deployment.yaml) yang menentukan versi API penerapan, metadata, dan status yang ditentukan di bagian spesifikasi.

 File konfigurasi dengan uraian terperinci ini memungkinkan kontrol versi dan penerapan yang dapat diulang di lingkungan berbeda. Pengontrol penerapan terus memantau dan mengelola siklus hidup penerapan berdasarkan spesifikasi ini.

Lima komponen penting dalam penerapan Kubernetes

Proses otomatis Kubernetes bergantung pada lima komponen penting yang bekerja bersama, dengan jaringan Kubernetes memungkinkan komunikasi di antara pod:

  1. Spesifikasi templat pod: Spesifikasi templat pod mendefinisikan cetak biru untuk membuat pod, termasuk gambar kontainer, kebutuhan sumber daya, variabel lingkungan, pengaturan volume, port kontainer, dan konfigurasi jaringan. Templat ini memastikan konsistensi di semua instans aplikasi.

  2. Jumlah replika: Jumlah replika menentukan berapa banyak instans yang harus berjalan secara bersamaan. Pengguna dapat menyesuaikan pengaturan ini secara manual atau otomatis melalui Horizontal Pod Autoscalers berdasarkan metrik pemantauan Kubernetes seperti penggunaan CPU, konsumsi memori, atau metrik bisnis khusus. Tim dapat memantau status peluncuran melalui perintah peluncuran kubectl atau kubectl get untuk memeriksa status penerapan dan memastikan bahwa jumlah pod yang benar berjalan selama pembaruan.

  3. Label pemilih: Label pemilih membuat koneksi antara penerapan dan pod terkelola melalui pencocokan berbasis label. Alat pemilih ini memastikan bahwa penerapan mengelola pod yang menjadi tanggung jawabnya, mencegah konflik konfigurasi di lingkungan yang kompleks.

  4. Perbarui konfigurasi strategi: Konfigurasi strategi pembaruan mengontrol bagaimana versi baru aplikasi diluncurkan. Ini mencakup pengaturan untuk jumlah maksimum pod yang tidak tersedia selama pembaruan, kapasitas lonjakan untuk skenario biru-hijau, dan pemicu rollback untuk pemulihan kegagalan otomatis.

  5. Pengaturan manajemen sumber daya: Pengaturan manajemen sumber daya menentukan permintaan dan batasan CPU dan memori untuk kontainer, memastikan alokasi sumber daya yang optimal di seluruh klaster sekaligus mencegah perebutan sumber daya yang sangat penting di lingkungan dengan banyak pengguna.

Contoh penggunaan untuk penerapan Kubernetes

Organisasi menggunakan penerapan Kubernetes di berbagai konteks yang berbeda, masing-masing mendapat manfaat dari manajemen siklus hidup otomatis dan strategi pembaruan yang fleksibel:

  • Aplikasi web dan API
  • Layanan mikro
  • Beban kerja pemrosesan batch
  • Alur kerja berbagai lingkungan
  • Pipeline CI/CD

Aplikasi web dan API

Aplikasi web dan API menjaga ketersediaan selama pembaruan seraya menskalakan sesuai permintaan lalu lintas. Platform e-commerce dan sistem manajemen konten terutama mendapat manfaat dari kemampuan untuk memperbarui fitur tanpa gangguan pengguna.

Layanan backend yang menangani pemrosesan data atau logika bisnis dapat menerapkan secara independen dari aplikasi front end, dengan pengontrol Kubernetes Ingress yang mengelola perutean lalu lintas dan penyeimbangan beban di seluruh instans layanan.

Layanan mikro

Arsitektur layanan mikro mengoordinasikan pembaruan di ratusan layanan independen tanpa memengaruhi seluruh sistem. Kemampuan ini memungkinkan tim untuk menerapkan tiap komponen pada jadwal yang berbeda sekaligus tetap menjaga stabilitas sistem secara keseluruhan.

Bagan Helm menyederhanakan pengelolaan penerapan layanan mikro yang kompleks dengan konfigurasi yang dibakukan dan manajemen ketergantungan.

Beban kerja pemrosesan batch

Beban kerja pemrosesan batch memastikan alokasi sumber daya yang konsisten dan kemampuan memulai ulang otomatis untuk tugas pemrosesan data. Abstraksi penerapan menyederhanakan pengelolaan saluran pemrosesan kompleks yang perlu menangani kegagalan dengan baik.

Alur kerja di berbagai lingkungan

Alur kerja di berbagai lingkungan menjaga konsistensi antara pengembangan, pengujian, dan produksi sekaligus menerapkan konfigurasi khusus lingkungan. Tim dapat menggunakan definisi penerapan yang sama di seluruh lingkungan dengan jumlah replika, batas sumber daya, atau tanda fitur yang berbeda, mengatur aplikasi dalam ruang nama untuk memberikan pemisahan logis dan penyekatan sumber daya.

Saluran CI/CD

Saluran CI/CD menggunakan penerapan untuk mengotomatiskan seluruh proses pengiriman perangkat lunak mulai dari penyimpanan perubahan kode hingga rilis produksi melalui penerapan berkelanjutan.

Penerapan terintegrasi dengan lancar dengan alat dan platform integrasi berkelanjutan seperti GitHub yang memungkinkan pengujian otomatis, pembuatan, dan penerapan berdasarkan perubahan kode, permintaan penggabungan perubahan kode, atau rilis terjadwal.

Jenis strategi penerapan Kubernetes

Strategi penerapan pada dasarnya menyangkut pengelolaan risiko saat memperbarui perangkat lunak. Dahulu metode tradisional melibatkan penjadwalan jendela pemeliharaan dan membuat sistem menjadi offline. Tindakan ini aman tetapi lambat. Kubernetes memungkinkan pembaruan aplikasi tanpa waktu henti, penerapan yang lebih sering, dan pengurangan beban koordinasi.

Strategi penerapan Kubernetes yang berbeda menangani risiko pembaruan secara berbeda. Pilihannya tergantung pada apa yang dilakukan aplikasi, apa yang dapat dikelola tim, dan apa yang dibutuhkan bisnis.

Jenis strategi penerapan Kubernetes mencakup contoh-contoh berikut:

  • Membuat ulang penerapan
  • Penerapan pembaruan bergulir
  • Penerapan biru-hijau
  • Penerapan canary
  • Penerapan bayangan
  • Penerapan pengujian A/B

Menciptakan kembali penerapan

Pembuatan ulang penerapan akan mematikan semua instans yang ada sebelum memulai penerapan baru. Kemampuan ini menciptakan waktu henti singkat tetapi menghindari masalah kompatibilitas versi dan konflik sumber daya.

Pendekatan ini bekerja dengan baik untuk sistem pemrosesan batch, aplikasi lama, dan lingkungan pengembangan di mana kesederhanaan operasional lebih penting daripada waktu aktif. Tim memilih untuk membuat ulang penerapan ketika mereka dapat menerima waktu henti singkat yang diimbangi dengan perilaku yang dapat diprediksi.

Penyebaran pembaruan bergulir

Pembaruan bergulir menggantikan instans secara bertahap sekaligus menjaga aplikasi tetap tersedia. Pendekatan ini adalah strategi default Kubernetes karena menyeimbangkan kecepatan, penggunaan sumber daya, dan risiko.

CMS biasanya menggunakan pembaruan bergulir untuk memungkinkan pengiriman fitur secara berkelanjutan tanpa gangguan dari sisi pengguna. Namun, aplikasi harus dirancang untuk menangani lingkungan versi campuran; jika versi yang berbeda tidak dapat berjalan bersama secara serempak, pembaruan bergulir akan bermasalah.

Kubernetes menggantikan pod lama dengan instans baru secara bertahap, sehingga versi sebelumnya dapat dihapus tanpa hambatan. Tim dapat memulai proses ini melalui perintah kubectl.

Penerapan biru-hijau

Penerapan biru-hijau mempertahankan dua lingkungan produksi lengkap dan langsung mengalihkan semua lalu lintas di antara keduanya. Strategi ini memungkinkan rollback instan, tetapi juga menggandakan biaya infrastruktur selama penerapan.

Sistem pemrosesan pembayaran, basis data pelanggan, layanan otentikasi, dan aplikasi kepatuhan terhadap peraturan menggunakan penerapan biru-hijau ketika biaya infrastruktur dapat dikelola dibandingkan dengan risiko gangguan layanan. Tim dapat menjalankan validasi lengkap terhadap lingkungan baru sebelum beralih lalu lintas.

Penerapan canary

Penerapan canary mengarahkan sebagian kecil lalu lintas ke versi baru sekaligus memantau kinerja dan tingkat kesalahan. Tim secara bertahap meningkatkan lalu lintas sampai semua orang menggunakan versi terbaru.

Strategi ini memungkinkan tim untuk mengidentifikasi masalah dengan basis pengguna yang terbatas ketimbang memengaruhi semua pengguna. Dengan mengarahkan subset lalu lintas ke versi baru, penerapan canary membantu mengurangi risiko peluncuran. Aplikasi mobile yang menguji antarmuka baru, platform SaaS memvalidasi peningkatan kinerja, dan situs e-commerce menguji modifikasi checkout, semuanya bergantung pada strategi penerapan ini.

Penerapan bayangan

Penerapan bayangan menggandakan lalu lintas produksi ke versi saat ini (melayani pengguna) dan versi baru (memproses permintaan secara diam-diam untuk pengujian). Pengguna tidak terpapar ke versi bayangan, tetapi tim mendapatkan validasi kinerja lengkap terhadap beban kerja nyata.

Penerapan bayangan memungkinkan sistem untuk menguji fitur baru dalam kondisi dunia nyata tanpa memengaruhi pengguna. Mesin pencari menggunakannya untuk menguji algoritma peringkat, sistem rekomendasi mengandalkan mereka untuk memvalidasi model machine learning (ML), dan sistem deteksi penipuan menggunakannya untuk mengevaluasi aturan yang diperbarui.

Penerapan pengujian A/B

Penerapan pengujian A/B mengarahkan segmen pengguna yang berbeda ke konfigurasi aplikasi berbeda untuk mengukur metrik bisnis dan perilaku pengguna. Tidak seperti penerapan canary yang berfokus pada metrik teknis, pengujian A/B mengevaluasi efektivitas fitur dan pengalaman pengguna.

Tim produk juga menggunakan penerapan pengujian A/B untuk memvalidasi antarmuka pengguna baru, menguji model harga, atau mengevaluasi algoritma rekomendasi.

Penerapan Kubernetes versus pod—StatefulSets dan ReplicaSets

Memahami bagaimana penerapan cocok dengan sumber daya Kubernetes lainnya membantu memperjelas kapan harus menggunakan setiap pendekatan.

Penerapan Kubernetes versus pod

Pod adalah instans aplikasi individual, tetapi mengelolanya secara langsung akan menjadi rumit dalam waktu singkat. Penerapan Kubernetes menangani lapisan manajemen, memungkinkan tim untuk berfokus pada logika aplikasi daripada orkestrasi kontainer.

Penerapan Kubernetes versus ReplicaSets

ReplicaSets adalah objek Kubernetes yang memastikan bahwa instans berjalan dalam jumlah yang benar. Penerapan Kubernetes menambahkan manajemen perubahan, termasuk kemampuan pembuatan versi, pembaruan, dan rollback yang mempermudah pembaruan aplikasi.

Penerapan Kubernetes versus StatefulSets

StatefulSets adalah objek Kubernetes yang mempertahankan identitas tetap persisten dan operasi pod yang teratur. Penerapan Kubernetes lebih cocok untuk aplikasi tanpa status di mana pod dapat diperlakukan sebagai unit yang identik dan dapat diganti, sementara StatefulSets menangani aplikasi dengan status yang memerlukan identitas stabil dan penskalaan berurutan.

Praktik terbaik dan pertimbangan

Strategi penerapan Kubernetes yang sukses membutuhkan praktik operasional yang solid yang mendukung penerapan yang andal dan berulang di berbagai lingkungan dan jenis aplikasi:

  • Pemantauan dan observabilitas
  • Pemeriksaan kesehatan dan pemeriksaan kesiapan
  • Integrasi pengujian otomatis
  • Perencanaan dan pelaksanaan rollback

Pemantauan dan observabilitas

Pemantauan Kubernetes memberi tim visibilitas tentang kinerja aplikasi, metrik bisnis, tingkat kesalahan, dan pengalaman pengguna sehingga mereka dapat membuat pilihan tepat selama penerapan dan mendeteksi masalah lebih awal.

Platform observabilitas lanjutan mengambil pendekatan ini lebih jauh dengan mengintegrasikan pelacakan penerapan dengan pemantauan kinerja, sehingga tim dapat menghubungkan peristiwa penerapan dengan perilaku sistem dan dampak pengguna.

Pemeriksaan kesehatan dan pemeriksaan kesiapan

Pemeriksaan kesehatan yang dikonfigurasi dengan benar memastikan bahwa instans aplikasi baru berfungsi penuh sebelum menerima lalu lintas. Mekanisme ini mencegah penerapan yang gagal memengaruhi pengguna dan memungkinkan rollback otomatis ketika masalah terdeteksi.

Selain harus memvalidasi bahwa aplikasi sedang berjalan, pemeriksaan kesiapan Kubernetes juga harus memvalidasi bahwa aplikasi siap untuk menangani lalu lintas produksi, termasuk koneksi basis data, dependensi layanan eksternal, dan proses inisialisasi apa pun yang diperlukan.

Integrasi pengujian otomatis

Pengujian otomatis memerlukan implementasi pada beberapa tahap, termasuk pengujian unit, pengujian integrasi, validasi menyeluruh, dan pengujian kinerja. Pendekatan komprehensif ini membantu mengungkap masalah sejak dini dan mengurangi risiko masalah produksi.

Saluran penerapan modern mengintegrasikan pengujian dengan strategi penerapan, secara otomatis lebih mempromosikan model melalui lingkungan berdasarkan hasil pengujian dan metrik kinerja daripada proses persetujuan manual.

Perencanaan dan pelaksanaan rollback

Strategi rollback yang efektif memerlukan persiapan dan pengujian yang cermat sebelum masalah penerapan muncul. Tim harus memahami cara mengembalikan penerapan dengan cepat, mengantisipasi potensi tantangan konsistensi data, dan membuat protokol komunikasi yang jelas untuk memastikan pemulihan yang cepat saat terjadi masalah.

Mengintegrasikan strategi penerapan Kubernetes

Alih-alih menganggap berbagai strategi penerapan sebagai pilihan yang eksklusif satu sama lain, banyak organisasi menemukan nilai signifikan dalam menggunakan berbagai pendekatan bersama-sama. Pendekatan hibrida ini memanfaatkan kekuatan setiap strategi sekaligus mengatasi keterbatasannya.

Tim platform sering membakukan pembaruan bergulir sebagai default. Penerapan biru-hijau tersedia untuk aplikasi penting, sementara penerapan canary digunakan untuk fitur dengan visibilitas tinggi.

Organisasi besar menerapkan strategi yang berbeda di seluruh tingkatan aplikasi: biru-hijau untuk layanan yang melayani pengguna, pembaruan bergulir untuk API internal dan layanan mikro, serta membuat ulang penerapan untuk komponen pemrosesan batch.

Organisasi sering menggabungkan strategi dalam saluran penerapan tunggal: penerapan bayangan untuk validasi kinerja, diikuti dengan peluncuran canary untuk eksposur pengguna secara bertahap, dengan kemampuan biru-hijau tersedia untuk rollback instan saat masalah muncul.

Kesimpulan

Pilihan penerapan strategis menentukan apakah tim memberikan hasil dengan percaya diri atau terus-menerus mengelola krisis. Organisasi yang unggul dalam berbagai pendekatan mengubah kemampuan pengiriman mereka secara mendasar, mencapai siklus yang lebih cepat dan peningkatan keandalan. Dengan menyesuaikan pendekatan agar sesuai dengan setiap skenario unik dalam pengembangan aplikasi modern, strategi ini menumbuhkan kepercayaan operasional yang lebih kuat.

Solusi terkait
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud adalah OpenShift Container Platform (OCP) yang dikelola sepenuhnya.

Jelajahi Red Hat OpenShift
Solusi Kontainer

Solusi kontainer menjalankan dan meningkatkan beban kerja dalam kontainer dengan keamanan, inovasi sumber terbuka, dan penerapan yang sangat cepat.

Jelajahi kontainer
Layanan Konsultasi Cloud 

Dapatkan kemampuan baru dan dorong ketangkasan bisnis dengan layanan konsultasi cloud IBM. Temukan cara berkolaborasi dalam menciptakan solusi, mempercepat transformasi digital, dan mengoptimalkan kinerja melalui strategi hybrid cloud dan kemitraan pakar.

Layanan cloud
Ambil langkah selanjutnya

Mulai gunakan platform Red Hat OpenShift yang dikelola sepenuhnya atau jelajahi fleksibilitas ekosistem IBM Cloud Kubernetes. Percepat proses pengembangan dan penerapan Anda dengan solusi yang dapat diskalakan dan aman sesuai kebutuhan Anda.

Jelajahi Red Hat OpenShift Jelajahi Kubernet
Catatan kaki