Dua pengembang melihat layar komputer

Apa itu penyimpanan persisten untuk kontainer?

Definisi penyimpanan persisten untuk kontainer

Penyimpanan persisten untuk kontainer menyimpan data di luar siklus proses tiap-tiap kontainer untuk memastikan bahwa informasi penting tetap tersedia.

Penting untuk pengembangan aplikasi cloud-native, kontainer adalah unit perangkat lunak portabel ringan yang mengemas aplikasi dan dependensinya, sehingga mudah diterapkan di seluruh infrastruktur TI modern.

Kontainer pada dasarnya bersifat sementara. Kontainer memang dimaksudkan untuk bersifat sementara, serta diluncurkan dan dinonaktifkan sesuai kebutuhan. Meskipun fleksibilitas ini membuatnya sangat skalabel dan fleksibel, data kontainer yang dihasilkan akan hilang ketika kontainer berhenti berjalan. Penyimpanan persisten mengatasi masalah ini dengan menjaga data tetap tersedia secara independen dari kontainer mana pun.

Tanpa penyimpanan persisten, sistem penting akan gagal. Sebagai contoh, database transaksi bank yang berjalan di dalam kontainer akan kehilangan data saldo rekening pelanggan selama pembaruan rutin, dan platform e-commerce akan kehilangan data keranjang belanja setiap kali aplikasi tersebut dimulai ulang.

Dengan makin banyaknya organisasi yang beralihnya ke arsitektur cloud-native dan arsitektur layanan mikro, kontainer menjadi bagian vital dari penerapan dan manajemen aplikasi. Hal ini menjadikan penyimpanan persisten untuk kontainer sebagai bagian penting untuk menjalankan aplikasi stateful dalam skala besar. Menurut laporan terbaru dari Strategic Market Research, pasar kontainer aplikasi global diperkirakan bernilai sekitar 2,1 miliar USD pada tahun 2024. Nilai ini diproyeksikan mencapai 6,9 miliar USD pada tahun 2030, dengan tingkat pertumbuhan tahunan gabungan (CAGR) sebesar 21,1%.¹

Di lingkungan perusahaan, penyimpanan persisten hadir dalam bentuk file storage, block storage, dan object storage, yang masing-masing sesuai untuk beban kerja yang berbeda. Organisasi biasanya menyediakan solusi penyimpanan ini melalui kombinasi sistem perangkat keras dan platform penyimpanan berbasis perangkat lunak (software-defined storage, SDS) yang dirancang untuk mendukung lingkungan hybrid cloud dan cloud terdistribusi.

Gambaran umum kontainerisasi dan Kubernetes

Kontainerisasi mencakup pengemasan kode perangkat lunak dengan hanya pustaka sistem operasi (OS) dan dependensi yang diperlukan untuk menjalankannya. Dependensi ini umumnya berbasis Linux. Proses tersebut menciptakan satu unit ringan, seperti kontainer, yang dapat berjalan secara konsisten di infrastruktur mana pun.

Seiring beralihnya organisasi dari mesin virtual (VM) ke kontainer, kebutuhan untuk mengelola beban kerja dalam kontainer dalam skala besar makin meningkat. Docker, yang diperkenalkan pada tahun 2013, menjadikan kontainer dapat diakses secara luas dengan menawarkan cara yang terstandardisasi bagi pengembang untuk membangun dan membagikannya. Namun, orkestrasi ratusan bahkan ribuan kontainer di beragam lingkungan hybrid multicloud membutuhkan cara untuk menangani kompleksitas. Oleh karena itu, Kubernetes dikembangkan untuk mengotomatiskan penerapan, penskalaan, dan manajemen aplikasi dalam kontainer.

Dibuat oleh Google pada tahun 2014, Kubernetes adalah platform sumber terbuka yang dikelola oleh Cloud Native Computing Foundation (CNCF). Penyedia cloud besar seperti AWS, Microsoft Azure, Google Cloud, dan IBM Cloud mendukung platform ini.

Kubernetes menjalankan kontainer dalam pod, yang diterapkan di seluruh node dalam klaster Kubernetes. Kubernetes mengelola konfigurasi dan komunikasi antarkomponen melalui antarmuka pemrograman aplikasi (API) untuk mendukung orkestrasi otomatis di berbagai sistem. Saat ini, Kubernetes adalah platform standar yang digunakan secara luas untuk orkestrasi kontainer.

Dalam kaitannya dengan penyimpanan data, aspek penting dari cara kerja Kubernetes adalah pemahaman terhadap perbedaan antara aplikasi stateless dan stateful. Aplikasi stateless (misalnya, server web yang menangani permintaan API) menangani setiap permintaan secara independen. Dengan demikian, aplikasi stateless tidak menyimpan data di antara sesi. Sebaliknya, aplikasi stateful (misalnya, database) menyimpan data dan bergantung pada informasi dari interaksi sebelumnya agar dapat berfungsi dengan baik.

Selain itu, kontainer dan pod di Kubernetes bersifat sementara, dapat dihentikan, dimulai ulang, atau dijadwalkan ulang kapan saja. Untuk aplikasi stateless, perilaku ini tidak menjadi masalah. Namun, pada aplikasi stateful, ketika kontainer berhenti, semua data yang disimpan di dalamnya akan hilang. Di sinilah penyimpanan persisten berperan penting pada lingkungan dalam kontainer, dengan memisahkan data dari siklus proses kontainer.

Selain beralihnya aplikasi tradisional ke kontainer, kini makin banyak beban kerja padat data seperti database, kecerdasan buatan (AI), dan machine learning (ML) yang beralih ke cloud. Beban kerja tersebut memerlukan penyimpanan persisten untuk memastikan data tetap ada saat kontainer berhenti, sehingga mempertahankan kondisi dalam sistem terdistribusi serta menyediakan kinerja dengan throughput tinggi dan latensi rendah yang dibutuhkan dalam pelatihan model.

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.

Bagaimana cara kerja penyimpanan persisten untuk kontainer?

Penyimpanan persisten untuk kontainer dibangun pada serangkaian komponen yang bekerja sama untuk memisahkan data dari kontainer. Di Kubernetes, administrator mengonfigurasi infrastruktur penyimpanan, sementara pengembang dan aplikasi mengaksesnya melalui permintaan sederhana.

Komponen-komponen ini meliputi:

  • Volume dan bind mount
  • PersistentVolume (PV)
  • PersistentVolumeClaim (PVC)
  • StorageClass
  • Container Storage Interface (CSI)

Volume dan bind mount

Ada dua cara utama untuk memasang penyimpanan ke kontainer: bind mount dan volume bernama (misalnya, volume Docker ).

  • Bind mount menghubungkan file atau direktori tertentu dari mesin host langsung ke kontainer.
  • Volume lebih fleksibel, karena Kubernetes mengelolanya di berbagai sistem penyimpanan.

Volume adalah lokasi penyimpanan yang dapat diakses oleh kontainer dalam sebuah pod. Tidak seperti penyimpanan sementara di dalam kontainer, yang hilang ketika kontainer berhenti, volume akan tetap ada selama masa aktif pod. Ini berarti bahwa jika sebuah kontainer gagal dan dimulai ulang dalam pod yang sama, data dalam volume tetap tersedia.

Volume dapat terhubung ke berbagai jenis perangkat penyimpanan, termasuk disk lokal, network-attached storage (NAS) melalui protokol seperti Network File System (NFS), atau layanan penyimpanan berbasis cloud.

PersistentVolume (PV)

PersistentVolume menyediakan penyimpanan di dalam klaster Kubernetes dan dibuat secara manual atau otomatis.

Perbedaan utama antara volume biasa dan PersistentVolume adalah masa aktifnya. PersistentVolume tidak tergantung pada pod apa pun. Ini berarti bahwa penyimpanan tetap ada meskipun pod yang mengaksesnya dihapus atau dipindahkan ke mesin lain.

PersistentVolume memiliki siklus proses tersendiri yang terpisah dari pod yang menggunakannya. Administrator dapat mengonfigurasinya dengan kapasitas penyimpanan dan izin akses baca/tulis tertentu (misalnya, ReadWriteOnce untuk akses pod tunggal atau ReadWriteMany untuk akses bersama).

PersistentVolumeClaim (PVC)

PersistentVolumeClaim adalah permintaan penyimpanan yang dibuat oleh aplikasi atau pengguna. Alih-alih terhubung langsung ke PersistentVolume, pod menggunakan PersistentVolumeClaim sebagai lapisan perantara. Klaim ini menentukan kapasitas penyimpanan dan mode akses yang diperlukan. Kubernetes kemudian mencocokkannya dengan PersistentVolume yang tersedia. Berdasarkan pemisahan ini, pengembang dapat meminta penyimpanan tanpa harus memahami infrastruktur penyimpanan yang mendasarinya.

Ketika klaim terhubung ke PersistentVolume, pod dapat membaca dan menulis data sama seperti pada sistem file lainnya. Jika pod dipindahkan atau dimulai ulang, pod masih dapat mengakses klaim yang sama dan data persisten yang sama.

StorageClass

Di lingkungan perusahaan, membuat volume penyimpanan secara manual untuk setiap aplikasi adalah upaya yang rumit dan sulit dikelola. Kubernetes memecahkan tantangan ini melalui StorageClass, yang menentukan berbagai jenis penyimpanan (misalnya, solid-state drive berkinerja tinggi) dan menggunakan penyedia (provisioner) untuk membuat volume data secara otomatis berdasarkan permintaan.

Ketika aplikasi meminta penyimpanan dan mereferensikan StorageClass, Kubernetes menyediakan volume yang sesuai tanpa memerlukan penyiapan manual. Fitur ini menyederhanakan manajemen penyimpanan secara keseluruhan.

Container Storage Interface (CSI)

Container Storage Interface (CSI) adalah API netral vendor standar yang memungkinkan Kubernetes berinteraksi dengan berbagai sistem penyimpanan.

CSI memungkinkan platform penyedia penyimpanan (misalnya, IBM Storage Fusion, NetApp) untuk mengembangkan dan memperbarui plug-in mereka sendiri secara mandiri. Plug-in ini mengelola seluruh siklus proses penyimpanan: membuat, memasang, menyediakan, dan menghapus volume sesuai kebutuhan.

Manfaat penyimpanan persisten untuk kontainer

Penyimpanan persisten untuk kontainer memungkinkan organisasi menjalankan aplikasi stateful di lingkungan dalam kontainer, serta memberikan manfaat berikut:

  • Daya tahan dan ketahanan data: Data yang ditulis ke setiap volume persisten tidak akan hilang meskipun terjadi kegagalan, restart, dan penjadwalan ulang kontainer. Hal ini mencegah kehilangan data dan memastikan aplikasi stateful bertahan, meskipun infrastruktur kontainer yang mendasarinya berubah.
  • Operasi yang disederhanakan: Penyediaan dinamis dan manajemen penyimpanan otomatis mengurangi beban kerja manual. Tim platform menetapkan kebijakan penyimpanan satu kali, sehingga aplikasi dapat menggunakan penyimpanan sebagai sumber daya layanan mandiri dalam namespace-nya.
  • Kinerja dan skalabilitas tinggi: Penyimpanan persisten untuk kontainer memberikan throughput, latensi rendah, dan skalabilitas yang diperlukan untuk beban kerja padat data, seperti pelatihan AI/ML dan analisis real-time.
  • Fleksibilitas dan portabilitas: Volume persisten Kubernetes dan driver CSI mengabstraksi penyimpanan, sehingga organisasi dapat menjalankan aplikasi di lingkungan infrastruktur on premises, cloud pribadi, dan cloud publik serta mendukung strategi hybrid cloud.
  • Keamanan dan kepatuhan: Volume persisten yang didukung oleh sistem penyimpanan perusahaan menyediakan fitur perlindungan data, termasuk kemampuan enkripsi, replikasi, dan pencadangan yang diperlukan untuk memenuhi persyaratan kepatuhan dan peraturan.
  • Efisiensi biaya: Penyediaan dinamis meningkatkan atau menurunkan skala penyimpanan berdasarkan permintaan, sementara penjenjangan data otomatis memindahkan data yang jarang digunakan ke tingkat penyimpanan hemat biaya agar organisasi dapat mengoptimalkan biaya.
  • Akses bersama: Penyimpanan persisten untuk kontainer memungkinkan beberapa pod untuk membaca dan menulis data yang sama secara bersamaan, dengan mendukung alur kerja kolaboratif tanpa menduplikasi sumber daya penyimpanan.

Alat penyimpanan persisten untuk kontainer

Organisasi dapat mengakses penyimpanan persisten untuk kontainer melalui berbagai alat dan solusi:

  • Platform orkestrasi kontainer
  • Solusi penyimpanan untuk perusahaan
  • Penyedia cloud publik 

Platform orkestrasi kontainer

Platform orkestrasi kontainer (misalnya, Red Hat OpenShift) menyediakan manajemen penyimpanan persisten terintegrasi dengan dukungan bawaan untuk driver CSI dan penyediaan penyimpanan dinamis.

Platform ini menyederhanakan penerapan dan operasi bagi organisasi yang menjalankan beban kerja dalam kontainer dalam skala besar.

Solusi penyimpanan untuk perusahaan

Platform penyimpanan untuk perusahaan (misalnya, IBM Storage Fusion) menghadirkan solusi penyimpanan bawaan kontainer dengan layanan data canggih yang meliputi snapshot, kloning, replikasi, dan pemulihan bencana.

Platform ini terintegrasi langsung dengan Kubernetes melalui driver CSI guna menyediakan keamanan, kemampuan kepatuhan, dan kontrol akses bersama untuk aplikasi stateful.

Penyedia cloud publik

Penyedia cloud publik, termasuk AWS, Microsoft Azure, Google Cloud, dan IBM Cloud, menawarkan layanan Kubernetes terkelola dengan opsi penyimpanan persisten bawaan, seperti Amazon Elastic Block Store (EBS) dan IBM Cloud Block Storage.

Contoh penggunaan penyimpanan persisten dalam kontainer

Penyimpanan persisten untuk kontainer mendukung contoh penggunaan bisnis berikut:

  • Database dan manajemen data
  • Beban kerja AI
  • DevOps dan CI/CD
  • Pencadangan dan pemulihan bencana (BDR) 
Database dan manajemen data

Database relational dan NoSQL memerlukan penyimpanan persisten untuk kontainer guna mempertahankan integritas data. Volume persisten memastikan kondisi database tetap konsisten, bahkan saat sistem yang mendasarinya berubah.

Beban kerja AI

Beban kerja AI saat ini mengandalkan penyimpanan persisten untuk pelatihan kumpulan data, checkpoint model, dan hasil inferensi. Pelatihan model berskala besar membutuhkan akses throughput tinggi ke kumpulan data, sementara aplikasi penyajian model membutuhkan akses cepat dan andal ke model terlatih.

DevOps dan CI/CD

Pipeline CI/CD menggunakan penyimpanan persisten untuk kontainer demi memelihara artefak build dan data uji. Volume persisten memungkinkan tim DevOps dan tim lain menyimpan riwayat build dan memelihara lingkungan pengujian yang konsisten.

Pencadangan dan pemulihan bencana (BDR)

Strategi pencadangan dan pemulihan bencana mengandalkan penyimpanan persisten untuk kontainer guna mencatat kondisi aplikasi. Organisasi dapat mengambil snapshot volume, mereplikasi data ke situs sekunder, dan memulihkan beban kerja dengan cepat saat terjadi gangguan.

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. Temukan IBM Instana
  2. Jelajahi solusi DevOps
Catatan kaki

¹ Application Container Market Report, Strategic Market Research, Agustus 2025.