Mengonfigurasi Cassandra untuk produksi

Topik ini menjelaskan langkah-langkah yang diperlukan dan direkomendasikan untuk mengonfigurasi komponen database Cassandra untuk penginstalan produksi Apigee Hybrid.

Konfigurasi yang diperlukan

Konfigurasi berikut diperlukan.

Memastikan ketersediaan tinggi

Cluster Cassandra memerlukan tiga zona ketersediaan untuk mempertahankan ketersediaan di lingkungan produksi. Jika satu zona tidak aktif, zona yang tersisa akan terus merespons permintaan saat zona yang tidak aktif kembali online. Jika dua zona atau lebih tidak berfungsi, Cassandra tidak akan dapat merespons permintaan hingga setidaknya dua zona online. Apigee merekomendasikan agar zona diaktifkan kembali dalam waktu tiga jam untuk meminimalkan risiko kehilangan pembaruan data.

Mengonfigurasi setelan penyimpanan Cassandra

Untuk penginstalan produksi Apigee Hybrid, Google merekomendasikan agar Anda menambahkan setelan penyimpanan dan heap berikut ke file penggantian dan menerapkannya ke cluster:

cassandra:
  ...
  replicaCount: 3
  storage:
    storageclass: your-preferred-ssd-storage #If not using default storage for your cluster
    capacity: 500Gi
  resources:
    requests:
      cpu: 7
      memory: 15Gi
  maxHeapSize: 8192M
  heapNewSize: 1200M

Terapkan perubahan pada cassandra dengan perintah berikut:

helm upgrade datastore apigee-datastore/ \
--namespace apigee \
--atomic \
-f OVERRIDES_FILE.yaml

replicaCount

Nilai replicaCount harus kelipatan 3. Untuk menentukan nilai replicaCount yang diinginkan, pertimbangkan hal-hal berikut:

  • Perkirakan permintaan traffic untuk proxy Anda.
  • Lakukan pengujian beban dan buat prediksi yang wajar tentang pemakaian CPU Anda.
  • Anda dapat menentukan nilai replicaCount yang berbeda di berbagai wilayah.
  • Anda dapat memperluas replicaCount di masa mendatang dalam file penggantian.

storageclass

Untuk produksi, penyimpanan Cassandra harus berupa SSD StorageClass. Tetapkan nilai storageclass jika Anda tidak menggunakan StorageClass Kubernetes default untuk cluster. Anda dapat memeriksa StorageClass default dengan perintah berikut.

kubectl get storageclass

Output Anda akan terlihat seperti ini:

NAME                     PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
premium-rwo              pd.csi.storage.gke.io   Delete          WaitForFirstConsumer   true                   6d23h
standard                 kubernetes.io/gce-pd    Delete          Immediate              true                   6d23h
standard-rwo (default)   pd.csi.storage.gke.io   Delete          WaitForFirstConsumer   true                   6d23h

Ikuti petunjuk di Konfigurasi StorageClass jika Anda ingin mengubah StorageClass Kubernetes default.

Untuk memeriksa setelan storageclass saat ini, jalankan perintah berikut di cluster Anda:

kubectl get pvc -n NAMESPACE cassandra-data-apigee-cassandra-default-0 -o=jsonpath="{['.spec.storageClassName', '.metadata.annotations.volume\.beta\.kubernetes\.io/storage-class']}"
  

storageSize

Untuk penginstalan produksi, Google merekomendasikan ukuran penyimpanan minimal 500 GiB (gibibyte). Anda dapat mengubah ukuran penyimpanan sebagai respons terhadap kebutuhan penyimpanan cluster. Lihat petunjuk di Memperluas volume persisten Cassandra untuk mengubah ukuran penyimpanan.

Untuk memeriksa setelan ukuran penyimpanan saat ini, jalankan perintah berikut di cluster Anda:

kubectl get pvc -n NAMESPACE cassandra-data-apigee-cassandra-default-0 -o=jsonpath='{.spec.resources.requests.storage}'
  

cpu dan memory

Untuk penginstalan produksi, Google merekomendasikan minimal 7 CPU dan 15 GiB (gibibyte) per pod. Saat menentukan cassandra.resources.requests.cpu dan cassandra.resources.requests.memory, pertimbangkan volume traffic serta permintaan CPU dan Memori proxy Anda.

Untuk memeriksa setelan CPU saat ini, jalankan perintah berikut di cluster Anda:

kubectl get pods -n NAMESPACE apigee-cassandra-default-0 -o=jsonpath='{.spec.containers[].resources.requests.cpu}'
  

Untuk memeriksa setelan memori saat ini, jalankan perintah berikut di cluster Anda:

kubectl get pods -n NAMESPACE apigee-cassandra-default-0 -o=jsonpath='{.spec.containers[].resources.requests.memory}'
  

maxHeapSize dan heapNewSize

Properti ini menentukan heap memori maksimum yang dialokasikan untuk proses Cassandra dan jumlah peningkatan memori, masing-masing dalam megabyte (ukuran heap ditentukan dalam megabyte, bukan mebibyte). Untuk lingkungan produksi, Google merekomendasikan nilai berikut:

  • maxHeapSize: 8192M
  • heapNewSize: 1200M

Lihat dokumentasi penyedia platform Kubernetes Anda untuk mengetahui nilai ukuran heap yang optimal.

Untuk memeriksa setelan maxHeapSize saat ini, jalankan perintah berikut di cluster Anda:

kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.template.spec.containers[].env[?(@.name=="MAX_HEAP_SIZE")]}'
  

Untuk memeriksa setelan heapNewSize saat ini, jalankan perintah berikut di cluster Anda:

kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.template.spec.containers[].env[?(@.name=="HEAP_NEWSIZE")]}'
  

Untuk mengetahui informasi selengkapnya tentang setelan properti ini, lihat Referensi properti konfigurasi.

Menggunakan penyimpanan SSD untuk deployment produksi

Untuk database Cassandra, runtime hybrid hanya mendukung penggunaan volume persisten yang dibuat secara dinamis untuk menyimpan data. Drive disk solid state (SSD) lokal tidak didukung.

Jika saat ini Anda belum mengonfigurasi SSD untuk Cassandra, Anda harus mengonfigurasi definisi StorageClass yang didukung oleh solid-state drive (SSD) dan menjadikannya sebagai class default. Lihat Konfigurasi StorageClass untuk mengetahui langkah-langkah mendetail.

Ikuti petunjuk di Konfigurasi StorageClass jika Anda ingin mengubah StorageClass Kubernetes default.

Bagian ini menjelaskan konfigurasi yang direkomendasikan untuk Cassandra.

Mengonfigurasi jadwal pencadangan harian

Jika terjadi masalah Cassandra multi-regional setelah salah konfigurasi, Google tidak akan dapat memulihkan data runtime, yang akan mengakibatkan kehilangan data permanen.

Untuk mencegah kehilangan data, konfigurasi jadwal pencadangan harian. Pantau ukuran dan frekuensi pencadangan Anda, dan pastikan Anda diberi tahu jika pipeline pencadangan gagal.

Mematuhi persyaratan cluster minimal Cassandra

Ikuti konfigurasi cluster minimal untuk Cassandra.

Perlakukan semua lingkungan yang berhubungan dengan pelanggan sebagai produksi

Meskipun penginstalan hybrid Anda dianggap "non-prod", Anda mungkin masih memerlukan setelan yang siap produksi. Misalnya, gangguan pada penginstalan Pengujian Penerimaan Pengguna (UAT) harus memicu insiden berprioritas tinggi.

Gunakan setelan siap produksi meskipun untuk penginstalan hibrida yang menghadap pelanggan "non-prod". Sebaiknya Anda mematuhi prinsip yang sama untuk semua lingkungan yang terlihat oleh pelanggan seperti untuk server produksi, seperti yang diuraikan dalam artikel ini. Khususnya, ikuti prinsip pemulihan dari bencana menggunakan replicaCount dan region. Lihat Mengonfigurasi setelan penyimpanan Cassandra untuk mengetahui detailnya.