Database di Kubernetes — Dukung strategi cloud native Anda dengan operator Kubernetes open source

Lebih dari separuh organisasi menggunakan Kubernetes dalam operasi sehari-hari mereka

Saat ini, pengembang terbiasa menjalankan aplikasi di cloud. Mereka terbiasa menggunakan wadah perangkat lunak dan membangun aplikasi menggunakan komponen layanan mikro yang dihubungkan oleh API. Gartner memperkirakan bahwa lebih dari 90 persen organisasi global akan menjalankan aplikasi terbungkus dalam produksi pada tahun 2027, naik dari kurang dari 40 persen pada tahun 2021. Demikian pula, perusahaan telah memperkirakan bahwa 70 persen organisasi akan melengkapi pengiriman berkelanjutan untuk aplikasi mereka dengan infrastruktur berkelanjutan otomatisasi untuk meningkatkan kelincahan bisnis pada tahun 2025.

Dari perspektif infrastruktur, ini berarti Kubernetes. Namun, Kubernetes pada awalnya dibuat untuk mengelola komponen aplikasi stateless daripada infrastruktur lainnya yang digunakan untuk membuat sistem TI. Untuk elemen lain yang terlibat, seperti database, wadah harus dibuat agar sesuai.

Dari sini, Anda mungkin berpikir menjalankan database dalam wadah akan kurang optimal. Namun, bukan itu masalahnya. Kubernetes dapat membantu mengelola sistem ini secara lebih efisien dengan otomatisasi. Alih-alih menjadi ‘warga negara kelas dua’ dalam keseluruhan infrastruktur Anda, menjalankan database di Kubernetes menghadirkan peluang baru untuk meningkatkan kinerja Anda secara keseluruhan.

Otomasi dan manajemen basis data

Untuk memulainya, mari kita lihat tantangan yang dihadapi orang seputar manajemen basis data. Selain menerapkan database, setiap instans perlu dijaga dari waktu ke waktu. Hal ini dimulai dengan ketersediaan berikutnya untuk database — jika mendukung aplikasi penting, maka penerapan klaster untuk ketersediaan tinggi mungkin diperlukan.

Bersamaan dengan ini, Anda harus mempertimbangkan proses pencadangan data Anda, sehingga Anda dapat memiliki salinannya jika Anda perlu membawa instans database kembali online. Anda mungkin juga memerlukan replikasi data untuk mengirim data ke luar lokasi ke lokasi lain untuk redundansi dan ketahanan.

Untuk aplikasi yang lebih kompleks yang memproses data dalam jumlah besar, satu instans atau server mungkin tidak cukup untuk menangani beban kerja. Alih-alih, Anda mungkin harus menyebarkan pekerjaan ke beberapa instance menggunakan sharding. Terakhir, Anda memerlukan informasi dari server basis data itu sendiri tentang seberapa baik kinerjanya, sehingga Anda memerlukan data logging, metrik, dan pemantauan untuk dapat diamati.

Setiap tugas ini penting untuk menjaga kesehatan aplikasi Anda, mulai dari memberikan perlindungan terhadap waktu henti hingga menunjukkan seberapa baik Anda menjalankannya. Semuanya membutuhkan pengetahuan khusus untuk diterapkan jika Anda akan melakukannya sendiri.

Di mana Kubernetes dapat membantu adalah mempermudah untuk mengotomatiskan semua tugas ini sehingga mereka tidak memerlukan banyak pekerjaan manual untuk mempertahankan instalasi database dari waktu ke waktu. Daripada memerlukan DBA khusus untuk mengawasi instans sepanjang hari, mengotomatiskan langkah-langkah ini dapat menghilangkan sebagian dari overhead tersebut. Pendekatan ini bergantung pada operator Kubernetes yang menautkan database yang Anda miliki dengan Kubernetes untuk meneruskan informasi dan permintaan bolak-balik antar sistem.

Operator Kubernetes menyediakan antarmuka manajemen antara Kubernetes dan database yang Anda miliki. Karena itu mereka sangat penting untuk mendapatkan yang benar. Namun, Anda tidak harus memulai dari awal — ada beberapa operator yang tersedia untuk setiap database sumber terbuka yang mungkin Anda miliki, seperti MySQL atau PostgreSQL, serta untuk database lain seperti MongoDB. Operator ini harus sesuai dengan alat Infrastruktur sebagai Kode dan pipeline CI/CD Anda yang sudah ada, dan mengotomatiskan tugas penyebaran hari pertama dan operasi manajemen hari kedua.

Unsur-unsur penting yang perlu diingat ketika Anda memilih operator Anda adalah sebagai berikut:

Bisakah itu mendukung platform apa pun? Daripada terikat dengan layanan cloud tertentu atau layanan penyedia Kubernetes, dapatkah Anda menggunakan operator ini untuk menjalankan wadah database di tempat yang Anda inginkan? Ini membantu Anda menghindari pembatasan penggunaan untuk infrastruktur cloud atau lokal apa pun. Apakah operator didukung, dan berapa banyak orang yang terlibat? Beberapa operator mungkin tersedia setelah dikembangkan untuk memenuhi kebutuhan satu perusahaan dan kemudian dirilis, sementara yang lain dikembangkan dan didukung untuk dimanfaatkan oleh komunitas yang lebih luas. Apakah operator itu sendiri open source? Menggunakan operator Kubernetes open source berarti komunitas dapat terlibat dan memberikan dukungan jika Anda memerlukan bantuan

Menjalankan database di Kubernetes, Anda dapat mendukung strategi Cloud Native dan mengelola beban kerja database Anda di kluster Kubernetes yang didukung yang berjalan di lingkungan privat, publik, hybrid, atau multi-cloud.

Basis data di Kubernetes biasanya dianggap rumit, tetapi dengan pendekatan yang tepat untuk operator Kubernetes, Anda dapat menyederhanakan manajemen basis data, memungkinkan migrasi yang lebih mudah ke Kubernetes, dan merespons lonjakan permintaan dengan cara yang fleksibel. Lebih penting lagi, Anda dapat mengurangi biaya menggunakan layanan cloud publik yang memiliki overhead tambahan dan margin keuntungan untuk penyedia, sekaligus tetap memegang kendali penuh atas penyebaran database dan strategi infrastruktur Anda untuk masa depan. Pilihan operator Kubernetes Anda akan memengaruhi seberapa sukses pendekatan Anda terhadap penerapan aplikasi berkelanjutan dan otomatisasi infrastruktur berkelanjutan.

Kredit gambar: postmodernstudio/depositphotos.com

Sergey Pronin adalah Manajer Produk Grup di Percona, sebuah perusahaan perangkat lunak, dukungan, dan layanan basis data sumber terbuka. Dia telah menghabiskan lima belas tahun terakhir bekerja di sekitar database, rekayasa keandalan situs, dan praktik terbaik pengembangan perangkat lunak di vendor dan organisasi pengguna akhir. Sebelum di Percona, beliau memimpin rekayasa perangkat lunak di ESX Capital dan Alpari Group.

Author: Kenneth Henderson