Jika agen APM dimasukkan ke image aplikasi, pemeliharaan agen menjadi terikat pada proses pembuatan image. Pembaruan agen pun dapat menuntut build, pengiriman ke registry, dan deployment ulang meskipun kode aplikasi tidak berubah.

Pendekatan pemasangan otomatis JENNIFER menggunakan init container untuk menyiapkan agen secara terpisah. Tim dapat mengelola paket dan pengaturan pemantauan tanpa membuat ulang image aplikasi. Workload tetap harus melewati proses startup dan rollout.

Siapkan agen sebelum aplikasi dimulai

Kubernetes menjalankan init container biasa secara berurutan hingga selesai sebelum container aplikasi dimulai. Setiap tahap harus berhasil. Melalui volume bersama, init container dapat menyediakan berkas bagi container aplikasi.

Dalam rancangan JENNIFER, tahap inisialisasi mengunduh paket agen dan konfigurasi yang dipilih ke volume bersama. Container aplikasi kemudian memakai berkas tersebut dengan opsi runtime yang sesuai. Untuk Java, opsi ini mencakup pemuatan agen oleh JVM. Image aplikasi dapat tetap sama sementara paket dan pengaturan agen dikelola terpisah.

Hubungkan workload dengan konfigurasi

Alur yang didokumentasikan terdiri dari tiga langkah:

  1. Daftarkan paket dan versi agen yang sesuai.
  2. Buat ID konfigurasi yang mengaitkan paket dengan opsi pemantauannya.
  3. Tambahkan ID tersebut ke anotasi template Pod pada workload, lalu lakukan rollout.

Kunci anotasinya adalah k8s.jennifersoft.com/apm-agent-config-id. Gunakan ID yang dihasilkan oleh instalasi JENNIFER Anda. Pastikan runtime dan paket didukung sebelum menerapkannya.

Anotasi Kubernetes menyimpan metadata sebagai pasangan kunci dan nilai berbentuk string. Referensi pemantauan dalam konfigurasi workload memberi peninjau tempat untuk memeriksa pengaturan yang seharusnya digunakan.

Rencanakan rollout dan pemulihan

Pada Deployment, perubahan template Pod memicu rollout. Controller mengganti Pod sesuai strategi deployment. Mengubah metadata tingkat atas Deployment saja tidak mengubah template Pod.

Perlakukan pembaruan agen sebagai perubahan operasional. Tentukan penanggung jawab, mulai dari workload uji yang sesuai, dan simpan paket serta konfigurasi sebelumnya yang telah terbukti berfungsi. Sepakati prosedur pemulihan sebelum memperluas perubahan, terutama jika beberapa aplikasi memakai referensi konfigurasi yang sama. Catat versi paket agen bersama perubahan deployment untuk peninjauan insiden di kemudian hari.

Periksa startup dan pelaporan transaksi

Pastikan Pod baru berhasil melalui inisialisasi. Init container biasa yang tidak selesai akan menghalangi aplikasi untuk mulai. Jika proses macet atau gagal, periksa status dan log init container; Kubernetes menampilkan statusnya secara terpisah dari container aplikasi.

Kemudian kirim trafik yang mewakili penggunaan aplikasi dan periksa hasil pemantauan. Tampilan aplikasi JENNIFER menghubungkan Pod yang melayani aplikasi dengan informasi kinerja transaksinya. Pastikan workload yang diharapkan melapor dan transaksi yang diperlukan terlihat.

Pod yang berstatus siap baru memenuhi sebagian pemeriksaan. Sebelum menerima rollout, pastikan agen juga mengumpulkan data APM yang berguna. Mencatat pilihan paket, konfigurasi, rollout, dan validasi bersama-sama memberi tim proses yang dapat dipakai lagi saat agen berikutnya diperbarui.