devops
Catatan teknis seputar web development, DevOps, dan integrasi AI.
94 artikel
- 20.39devops
Launcher Dua Kali Bayar: Tiga Lapis Penjaga Sebelum Skrip Delegasi Menyala
Skrip delegasi yang diluncurkan dua kali menghabiskan budget dua kali. Guard flock, cek artefak, dan pgrep menolak sebelum mulai.
TL;DR: Ceritanya session Claude Code kelihatan macet padahal lagi mikir, jadi gue jalankan ulang dan dua proses makan budget bareng. Solusinya flock -n via file descriptor, plus cek result JSON lama dan pgrep -f buat deteksi proses kembar. Alasan penolakan dibedain lewat exit code 42, 43, 44 biar gampang debug.
#bash#devops#automation - 13.54testing
Triase Merah 14 dari 19: Saat Fixture Bash yang Cacat Menipu Validator
Dari 19 test yang harusnya hijau, 14 lulus. Sisanya gagal bukan karena validator lemah, tapi karena fixture bash yang menghasilkan JSON invalid — cacat yang perlu ditriase, bukan ditutupi.
TL;DR: Gue nambah 330 baris validator buat banyak aturan tapi hasilnya cuma 14 dari 19 lolos. Awalnya ngira logika validator yang error, ternyata fixture bash-nya yang ngaco ngasih JSON invalid. Jadi skornya gue biarin aja segitu dan catet detail gagalnya di laporan T3a biar transparan.
#testing#bash#fixture - 13.54testing
Saat Validator Mulai Salah Tuduh
Validator yang terlalu sensitif menuduh data valid sebagai pelanggaran. Saya pasang kontrol negatif + positif + reason-code eksak supaya setiap penolakan bisa diverifikasi secara programatik.
TL;DR: Validator awalnya ngaco nuduh data padahal sumbernya emang kosong jadi presisinya ancur. Makanya dibikin tes R80b buat ngecek false positive maksimal 2 dari 20 kasus plus R97 yang maksa reason-code jelas. Ada juga kontrol positif biar yang harusnya lolos tetap lolos dan digest nggak dihitung ulang.
#testing#bash#quality-assurance - 09.47backend
Ganti URL database WordPress pakai WP-CLI, bukan SQL mentah
WP_HOME cuma menipu halaman baru; URL lama menempel di database. WP-CLI search-replace dengan dry-run dan skip-columns=guid solusinya.
TL;DR: Pindahin dump WP produksi ke lokal ternyata nggak cukup cuma ganti WP_HOME dan WP_SITEURL, soal URL lama masih nempel di mana-mana, apalagi yang format serialized. Jangan asal REPLACE() via SQL, bisa merusak serialized dan kena limit panjang kolom. Paling aman pakai wp search-replace, dry-run dulu, dan skip kolom guid biar identitas postingan aman.
#wordpress#wp-cli#php - 08.56devops
Ganti Enum Tanpa Naikkan Versi Skema, Saya Kena
Checker bertemu status yang nggak ada di enum-nya. Ternyata kosakata status diubah tanpa bump versi skema. Pelajaran soal kontrak data.
TL;DR: File lama ternyata bawa nilai status baru gara-gara ada commit yang ganti kosakata tanpa naikin versi skema. Checker-nya sekarang misahin dua kasus: kalau pembacanya ketinggalan zaman tinggal dikejar, tapi kalau penulisnya nyelip, itu sejarah versi yang dipalsukan. Pelajarannya, ganti enum wajib dianggap ganti skema dan harus bump versi di commit yang sama, kayak aturan Kubernetes.
#python#schema#backward-compatibility - 07.53devops
Membangkitkan WordPress Lama di Docker Tanpa Jebakan Redirect 301
Container nyala, malah dilempar ke domain produksi. Tiga mekanisme first-run Docker dilewati volume lama, dan wp_options simpan kejutan lain.
TL;DR: Nyalain WordPress lama di Docker, eh malah diarahkan ke domain produksi karena URL lama masih nempel di wp_options. Ternyata skrip init database dan salin file inti cuma jalan di instalasi baru, jadi kalau pakai volume lama harus restore manual dulu. Warning di log biasanya cuma noise, cukup pantau log database sampai import selesai.
#docker#wordpress#mariadb - 05.51devops
Ketika monitor versi membangunkan untuk kondisi yang disengaja
PROBLEM jam lima pagi untuk fleet yang sehat dan sengaja lebih baru dari Docker Hub. Perbandingan versi ternyata buta arah.
TL;DR: Script monitor gue ngamuk jam 5 pagi gara-gara versi fleet beda sama Docker Hub. Ternyata semua host sehat dan sengaja di-upgrade ke versi custom, yang nggak kejar malah Docker Hub-nya. Akhirnya gue perbaiki logika perbandingannya: versi dihitung numerik kayak SemVer dan fleet lebih baru dari Hub dianggap rollout yang disetujui, bukan masalah.
#monitoring#docker#sre - 03.53devops
Event Log Verifikasi Integritas Ala Git di Pipeline Ingest
Cara sidecar content-addressed, event log append-only, dan re-hash dari disk bikin state pipeline bisa diverifikasi dan dipulihkan tanpa perbaikan tangan.
TL;DR: File frame yang di-tamper nggak bikin planner crash, malah nge-emit action quarantine, soalnya state dibangun ulang dari event log. Caption disimpan sebagai sidecar yang namanya pakai prefix sha256, jadi teks sama dapet dedup gratis. Tapi hash chain cuma kasih tamper-evidence bukan authenticity, makanya verifikasi tetap baca ulang meta.json langsung dari disk.
#git#event-sourcing#automation - 18.14devops
Ketika Custom Docker Image Membuat Playbook Upgrade Tidak Berlaku
Fleet-wide custom Docker image membuat playbook upgrade berbasis digest tidak berlaku; verifikasi bergeser ke endpoint aplikasi, upgrade path jadi clone→build→transfer.
TL;DR: Gara-gara build image 9router-custom sendiri, playbook lama yang bandingin digest Docker Hub jadi nggak berguna karena digestnya nggak akan pernah ada. Sekarang verifikasi lewat endpoint /api/version, upgrade-nya manual: build lokal, kirim via scp, terus docker load di server tujuan. Downtime cuma 15 detik per host, data aman.
#docker#ansible#automation