Follow-up Tasks¶
π Overview¶
Dokumen ini mencatat seluruh daftar tugas kelanjutan (follow-up tasks), kewajiban desain arsitektur, dan backlog teknis untuk proyek Tomcat Monitoring setelah penyelesaian fase Diagnostic MVP Pilot.
Daftar tugas ini disusun untuk menindaklanjuti konsekuensi dan keterbatasan yang diidentifikasi dalam Architecture Decision Records (TM-ADR-0014 hingga TM-ADR-0017), hasil evaluasi kesenjangan (Gap Register), serta peta jalan integrasi platform monitoring menuju kesiapan lingkungan produksi.
π― Objectives¶
- Meniadakan Titik Buta Notifikasi (Zero Silent Failure): Mengimplementasikan pemantauan kesehatan mandiri (health scrape) terhadap Diagnostic Service guna mengantisipasi keterbatasan arsitektur pengirim notifikasi tunggal (TM-ADR-0016).
- Memperkuat Ketahanan Mesin Status (State Resilience): Menyediakan mekanisme pemulihan antrean macet (stale lock recovery) pada database SQLite lokal saat terjadi restart container yang tidak terduga (TM-ADR-0015).
- Membangun Rekam Jejak Tindakan Operator (Operator Audit Trail): Menyediakan pencatatan umpan balik operasional atas rekomendasi tindakan manual sesuai prinsip Zero Automatic Remediation (TM-ADR-0014).
- Memperluas Cakupan Diagnosis (Scope Expansion): Mengembangkan aturan deteksi untuk skenario degradasi pra-crash secara bertahap sesuai pendekatan Vertical Slice MVP (TM-ADR-0017).
- Menuntaskan Integrasi Platform Observabilitas: Menyediakan dashboard visualisasi Grafana, standardisasi log aggregation, otomatisasi deployment Ansible, dan persiapan integrasi enterprise event bridge (TN-020).
π Task List¶
Kategori 1: Pemantauan Mandiri Diagnostic Service (Mitigasi TM-ADR-0016)¶
Kategori ini merupakan prioritas utama (Critical) untuk mengantisipasi keterbatasan pada TM-ADR-0016 (Designate Diagnostic Service as the Canonical Incident Notification Authority). Karena Diagnostic Service menjadi satu-satunya pihak yang berwenang mengirimkan notifikasi TomcatDown, kegagalan pada container Diagnostic Service tidak boleh menyebabkan tim operasional kehilangan pemberitahuan (silent failure).
Prometheus
|
+---------------+---------------+
| (Scrape) | (Scrape)
v v
[Tomcat JMX Exporter] [Diagnostic Service]
| |
(up == 0) (up == 0)
| |
v v
Alertmanager Alertmanager
| |
(Alert: TomcatDown) (Alert: DiagnosticServiceDown)
| |
v | (Bypass Webhook)
[Webhook HTTPS Internal] |
| |
v v
Diagnostic Service [Direct SMTP Delivery]
| |
v v
Mailpit Mailpit
(Laporan Diagnosis) (Alert Darurat Operator)
TASK-TM-001: Konfigurasi Scrape Target /health Diagnostic Service di Prometheus¶
- Status:
Completedβ - Deskripsi:
Menambahkan target scrape baru pada konfigurasi Prometheus (
prometheus.yml) untuk memantau endpoint kesehatan HTTP Diagnostic Service (GET /health) secara reguler. - Kebutuhan Teknis:
- Job name:
tomcat-diagnostic-service. - Skema: HTTPS dengan verifikasi TLS internal menggunakan CA bersama (
diagnostic-service-ca.crt). - Endpoint target:
https://diagnostic-service:8443/health. - Scrape interval:
15s, scrape timeout:5s. - Kriteria Penerimaan (Acceptance Criteria):
- Prometheus menghasilkan metrik
up{job="tomcat-diagnostic-service"} == 1ketika container Diagnostic Service beroperasi normal. - Metrik berubah menjadi
up == 0dalam toleransi waktu 1 siklus scrape saat service dimatikan. - Bukti Verifikasi (Verification Evidence):
- Konfigurasi
prometheus.ymldan initializer volumeinitialize-prometheus-volumes.shdisesuaikan untuk menyalin truststore CA. - Validasi Promtool:
promtool check config config/prometheus/prometheus.yml$\rightarrow$SUCCESS. - Query Prometheus API saat container aktif:
- Query Prometheus API saat container dimatikan (
podman stop diagnostic-service):
TASK-TM-002: Pembuatan Alert Rule DiagnosticServiceDown di Prometheus¶
- Status:
Completedβ - Deskripsi: Mendefinisikan aturan alert Prometheus untuk mendeteksi matinya Diagnostic Service atau kegagalan komunikasi scrape internal.
- Kebutuhan Teknis:
- Alert name:
DiagnosticServiceDown. - Formula evaluasi:
up{job="tomcat-diagnostic-service"} == 0. - Durasi (
for):1m(untuk menghindari transient network blip). - Severity:
critical. - Annotations: Memuat ringkasan bahwa jalur notifikasi otomatis insiden Tomcat terputus dan operator harus segera memeriksa status container service.
- Kriteria Penerimaan (Acceptance Criteria):
- Alert berpindah ke status
firingpada Prometheus dashboard setelah container disimulasikan mati selama lebih dari 1 menit. - Bukti Verifikasi (Verification Evidence):
- Aturan ditambahkan pada
application-health.yml. - Unit test promtool ditambahkan pada
application-health.test.yml:promtool test rules application-health.test.yml$\rightarrow$SUCCESS. - Status aktif di Prometheus API (
http://127.0.0.1:9090/api/v1/alerts) setelah simulasi downtime > 1m:
TASK-TM-003: Konfigurasi Direct SMTP Routing di Alertmanager untuk Alert Monitoring Mandiri¶
- Status:
Completedβ - Deskripsi:
Mengonfigurasi rute khusus di Alertmanager (
alertmanager.yml) agar seluruh alert terkait kesehatan Diagnostic Service langsung dikirimkan melalui jalur email langsung (direct SMTP) ke Mailpit / kanal on-call, sepenuhnya melewati webhook Diagnostic Service. - Kebutuhan Teknis:
- Routing rule: Cocokkan label
alertname="DiagnosticServiceDown". - Receiver:
direct-email-emergency(koneksi SMTP langsung ke Mailpitmailpit:1025,send_resolved: true). - Webhook bypass: Notifikasi darurat dikirim langsung via SMTP tanpa melalui webhook Diagnostic Service.
- Kriteria Penerimaan (Acceptance Criteria):
- Saat container Diagnostic Service dimatikan paksa, Alertmanager mengirimkan email alert darurat langsung ke Mailpit dengan subjek
[FIRING] [EMERGENCY] Diagnostic Service Alert: DiagnosticServiceDown. - Saat container dihidupkan kembali, Alertmanager mengirimkan email
[RESOLVED] [EMERGENCY] Diagnostic Service Alert: DiagnosticServiceDown. - Bukti Verifikasi (Verification Evidence):
- Konfigurasi
alertmanager.ymldivalidasi denganamtool check-config$\rightarrow$SUCCESS (3 receivers). - Mailpit API (
http://127.0.0.1:8025/api/v1/messages) merekam penerimaan email darurat:- Emergency Firing Email:
- Subject:
[FIRING] [EMERGENCY] Diagnostic Service Alert: DiagnosticServiceDown (Instance: diagnostic-service:8443) - From:
alertmanager@tomcat-monitoring.invalid - To:
operator@tomcat-monitoring.invalid - Route: Direct SMTP to Mailpit (Bypassing Diagnostic Service Webhook)
- Emergency Resolved Email:
- Subject:
[RESOLVED] [EMERGENCY] Diagnostic Service Alert: DiagnosticServiceDown (Instance: diagnostic-service:8443) - Content:
Diagnostic Service target diagnostic-service:8443 has recovered and is scrapeable again. Automated incident notification pipeline is restored.
TASK-TM-017: Migrasi Universal Ingestion Alertmanager ke Diagnostic Service¶
- Status:
Completedβ - Deskripsi:
Mengubah konfigurasi root route dan receiver pada Alertmanager (
alertmanager.yml) sehingga seluruh alert monitoring tanpa terkecuali (ketersediaan runtimeTomcatDown, kesehatan aplikasiTomcatApplicationHealthFailed, sinyal emas JVMTomcatGCPauseHigh/TomcatThreadPoolSaturated/TomcatGCOverheadHigh/TomcatOldGenMemoryPressure, dan kehilangan sinyalTelegrafHealthScrapeUnavailable) dialirkan langsung ke Diagnostic Service melalui webhook HTTPS internal. - Kebutuhan Teknis:
- Ubah default receiver root:
route: receiver: lab-diagnostic-service. - Hapus receiver direct email
lab-mailpituntuk notifikasi insiden operasional guna menegakkan prinsip Single Canonical Notification Authority. - Pertahankan satu-satunya sub-route darurat: matcher
alertname="DiagnosticServiceDown"mengarah kedirect-email-emergency(direct SMTP bypass). - Skema JSON Webhook v4 di Diagnostic Service (
alertmanager-webhook-v4.schema.json) digeneralisasi untuk menerima seluruh jenis alert dengan label identitas target wajib (environment,host,tomcat_instance,job,instance,service,check). - Label identitas
tomcat_instance: defaultdisematkan pada seluruh rule Prometheus dijvm-workload-performance.ymldanapplication-health.yml. - Kriteria Penerimaan (Acceptance Criteria):
- Tidak ada alert insiden atau degradasi performa yang mengirimkan email mentah Alertmanager langsung ke Mailpit.
- Seluruh notifikasi insiden dipublikasikan secara seragam oleh Diagnostic Service melalui format kanonikal Laporan Investigasi 7-Seksi SRE.
- Bukti Verifikasi (Verification Evidence):
- Skema webhook digeneralisasi dan diverifikasi melalui unit test
normalize-webhook.test.js(48 passing). - Image Diagnostic Service
localhost/tomcat-diagnostic-service:0.1.4(digestsha256:1fea49330dc36e05dd65920a0b40da3742ac0046b7b9d6d9a0821f2479ca89f7) berhasil dibangun dan lulus smoke test image. - Validasi Promtool dan Alertmanager config:
promtool test rules$\rightarrow$SUCCESS,amtool check-config$\rightarrow$SUCCESS (2 receivers). - Verifikasi isolasi rute webhook di disposable container (
verify-alertmanager-diagnostic-service.sh) $\rightarrow$sqlite_events=2 (firing=1, resolved=1),sqlite_probe=passed. - Verifikasi live runtime insiden (
verify-jvm-workload-live.sh) membuktikan transisi 4 alert JVM (TomcatGCPauseHigh,TomcatThreadPoolSaturated,TomcatGCOverheadHigh,TomcatOldGenMemoryPressure) hingga status firing dan recovery. - SQLite database Diagnostic Service merekam seluruh 30 event alert secara persisten, dan Mailpit merekam Laporan Investigasi 7-Seksi SRE resmi dari pengirim
diagnostic@tomcat-monitoring.invalid.
TASK-TM-018: Implementasi Multi-Domain Diagnostic Dispatcher & Built-in Decision Engines¶
- Status:
Completedβ - Deskripsi:
Mengembangkan arsitektur Dispatcher modular di
tomcat-diagnostic-serviceuntuk mendistribusikan evaluasi alert berdasarkanevent.labels.alertnameke 4 sub-engine domain resmi (TD-xx,AH-xx,GC-xx,TH-xx) serta mempreservasi identitasruleIdpada subjek notifikasi email dan laporan 7-seksi SRE sesuai TM-ADR-0023 (Zero Undecided Alerts). - Kebutuhan Teknis:
- Implementasi
src/domain/application-health-engine.js(CabangAH-01s/dAH-05). - Implementasi
src/domain/jvm-workload-engine.js(CabangGC-01s/dGC-04). - Implementasi
src/domain/concurrency-engine.js(CabangTH-01s/dTH-03). - Implementasi
src/domain/rulepack-loader.jsyang merutekan Layer 2 Dynamic Custom Rules dan Layer 1 Built-in Domain Engines. - Penyesuaian
diagnostic-worker.js,canonical-result.js, danresult-renderer.jsuntuk preservasi nama alert dinamis. - Pembangunan image baru
localhost/tomcat-diagnostic-service:0.1.5dan verifikasi live runtime beban kerja JVM. - Kriteria Penerimaan (Acceptance Criteria):
- Setiap alert yang masuk diproses oleh sub-engine domain yang tepat.
- Subjek email di Mailpit secara akurat menampilkan nama alert asli (
TomcatGCPauseHigh,TomcatThreadPoolSaturated, dll) bukan hardcodedTomcatDown. - Seluruh unit test domain engine dan dispatcher lulus 100%.
- Bukti Verifikasi (Verification Evidence):
- Lulus 54 unit test domain engines dan dispatcher pada
test/unit/domain-engines.test.js. - Image
localhost/tomcat-diagnostic-service:0.1.5diverifikasi live melaluiverify-jvm-workload-live.sh. - Didokumentasikan secara lengkap pada TN-006 dan TM-ADR-0023.
Kategori 2: Ketahanan Mesin Status & Penyimpanan Persisten (Mitigasi TM-ADR-0015)¶
Kategori ini menindaklanjuti konsekuensi teknis pada TM-ADR-0015 (Adopt Asynchronous Webhook Ingestion with Durable SQLite Acceptance Pattern), terkait pemrosesan status event dan pencegahan penumpukan data (bounded storage).
Karena Diagnostic Service menggunakan Embedded SQLite tanpa server database eksternal dan tanpa peran DBA, Diagnostic Service wajib memiliki kemampuan mengelola dan memelihara database SQLite-nya sendiri (self-managed / autonomous engine), yang mencakup 3 pilar utama:
+-----------------------------------------------------------------------------+
| Self-Managed SQLite Lifecycle in Diagnostic Service |
+-----------------------------------------------------------------------------+
| 1. Self-Healing State Recovery (TASK-TM-004): |
| Mendeteksi & memulihkan antrean macet (stale processing lock) pasca-crash|
| secara otomatis tanpa intervensi manual operator / DBA. |
+-----------------------------------------------------------------------------+
| 2. Automated Storage Housekeeping & Pruning (TASK-TM-005): |
| Memangkas event/log lama (> 30 hari) secara teratur & menjalankan |
| PRAGMA incremental_vacuum untuk mencegah kebocoran disk (bounded storage).|
+-----------------------------------------------------------------------------+
| 3. Autonomous Storage Telemetry & Quota Guard: |
| Memantau ukuran file fisik database (diagnostic_db_size_bytes) dan |
| mengeksposnya ke Prometheus untuk pemantauan kapasitas host. |
+-----------------------------------------------------------------------------+
TASK-TM-004: Implementasi Stale Lock Recovery pada Worker Ingestion¶
- Status:
Completedβ - Deskripsi:
Membangun mekanisme pemulihan otomatis untuk event alert yang tertahan di status
processingakibat container Diagnostic Service restart mendadak di tengah proses analisis (zero orphaned processing events). - Kebutuhan Teknis:
- Penambahan kolom
retry_countdanlease_expires_atpada tabelwork_queuemelalui migrasi007-stale-lock-recovery-and-retention.sql. - Pada
SqliteRepository.claimNext(): sematkan batas waktu sewalease_expires_at = now + timeoutMs. - Metode
recoverStaleLocks({ timeoutMs, maxRetries }):- Cari event dengan status
processingyang memiliki usia lock kadaluwarsa (started_at <= cutoffataulease_expires_at <= now). - Jika
retry_count < maxRetries: kembalikan status event menjadiqueued, kosongkan lease, dan lakukan incrementretry_count. - Jika
retry_count >= maxRetries: tandai sebagaifaileduntuk mencegah infinite crash loop.
- Cari event dengan status
- Eksekusi pemulihan otomatis saat startup
DiagnosticApplication.start()dan periodik pada worker loop. - Metrik Prometheus:
diagnostic_stale_locks_recovered_totaldandiagnostic_stale_locks_exhausted_total. - Kriteria Penerimaan (Acceptance Criteria):
- Event yang terinterupsi saat berstatus
processingsecara otomatis dipulihkan kequeueddan dieksekusi hinggacompletedsetelah container di-restart. - Bukti Verifikasi (Verification Evidence):
- Unit test
test/unit/stale-lock-and-retention.test.jsmembuktikan pemulihan status, kenaikan retry counter, dan transisi kefailedsaat limit tercapai. - Injeksi event stale live (
event_id = 39) pada containerdiagnostic-servicediverifikasi sukses pulih pasca-restart: statusprocessing$\rightarrow$completed(retry_count = 1), metrikdiagnostic_stale_locks_recovered_total = 1, dan email laporan terkirim ke Mailpit. - Didokumentasikan pada TN-007.
TASK-TM-005: Penjadwalan Housekeeping & Pruning Database SQLite¶
- Status:
Completedβ - Deskripsi: Mengimplementasikan rutinitas pembersihan otomatis (retention cleanup) pada database SQLite untuk membatasi ukuran disk persisten sesuai Service Level Objective (SLO).
- Kebutuhan Teknis:
- Metode atomik
pruneHistoricalRecords({ retentionDays })padaSqliteRepository:- Hapus rekam data kadaluwarsa dalam urutan relasi Foreign Key (
evidence_summaries,notification_attempts,canonical_results,work_queue,events,requests, dan resolvedincidents). - Jalankan perintah SQLite
PRAGMA incremental_vacuum.
- Hapus rekam data kadaluwarsa dalam urutan relasi Foreign Key (
- Tambahkan gauge metrik Prometheus
diagnostic_db_size_bytesdan counterdiagnostic_housekeeping_runs_total. - Eksekusi pada startup aplikasi dan loop berkala.
- Kriteria Penerimaan (Acceptance Criteria):
- Data historis yang melewati batas retensi dibersihkan secara konsisten tanpa melanggar Foreign Key constraints dan ukuran file database terpantau via metrik.
- Bukti Verifikasi (Verification Evidence):
- Unit test
test/unit/stale-lock-and-retention.test.jsmemvalidasi penghapusan terurut dan preservasi insiden aktif. - Metrik live pada endpoint
/metricsmengeksposdiagnostic_housekeeping_runs_total 1dandiagnostic_db_size_bytes 303104. - Didokumentasikan pada TN-007.
Kategori 3: Tata Kelola Audit & Umpan Balik Tindakan Operator (TM-ADR-0014)¶
Kategori ini mendukung implementasi kebijakan TM-ADR-0014 (Enforce Zero Automatic Remediation for Diagnostic Service), memastikan bahwa tindakan manual yang direkomendasikan sistem kepada operator dapat ditelusuri (traceable).
TASK-TM-006: Penyediaan Endpoint Audit Log untuk Konfirmasi Tindakan Operator¶
- Status:
Descoped / Supersededβͺ - Deskripsi: Menyediakan antarmuka pencatatan (audit log endpoint) pada Diagnostic Service agar tim operasional dapat mengonfirmasi eksekusi rekomendasi manual yang tercantum pada laporan insiden.
- Hasil Evaluasi Arsitektural: Berdasarkan evaluasi operasional nyata, penambahan manual REST API pada edge diagnostic service di masing-masing host menambah friksi operasional bagi SRE on-call dan tidak praktis untuk kebutuhan audit. Sesuai model operasional terpadu, Laporan Investigasi 7-Seksi SRE yang diterima bersama oleh Tim SRE dan Tim Monitoring diarsipkan secara terpusat. Tim Monitoring bertindak sebagai custodian resmi data bukti (evidence dossier) untuk audit dan post-mortem review, sehingga endpoint manual edge tidak diperlukan.
- Kriteria Penerimaan (Acceptance Criteria):
- Tata kelola audit didukung penuh melalui arsip Laporan 7-Seksi SRE dan sistem ITSM/ticketing terpusat.
Kategori 4: Perluasan Skenario Aturan Diagnostik (TM-ADR-0017)¶
Sesuai strategi bertahap pada TM-ADR-0017 (Adopt Vertical Slice Minimum Viable Product Scoping for Diagnostic Pilot), setelah skenario TomcatDown terbukti stabil, sistem diperluas untuk mendeteksi degradasi performa sebelum terjadi downtime total.
TASK-TM-007: Perumusan Rulepack Skenario Degradasi Thread Starvation¶
- Status:
Completedβ (TN-004) - Deskripsi:
Menyusun aturan Prometheus
TomcatThreadPoolSaturateduntuk mendeteksi kejenuhan penuh 100% pada Tomcat Connector Thread Pool (tomcat_threads_busy_threads / tomcat_threads_current_threads >= 1.0selamafor: 5m) sesuai TM-ADR-0022. - Kebutuhan Teknis:
- Pemicu: Alert Prometheus
TomcatThreadPoolSaturated(rasio thread sibuk terhadap kapasitas thread aktif = 100% berkelanjutan 5m). - Korelasi bukti: Metrik MBean
tomcat_threads_busy_threadsdantomcat_threads_current_threads. - Aturan evaluasi: Klasifikasi insiden degradasi konkurensi sebelum terjadi kegagalan fatal (task rejection).
- Kriteria Penerimaan (Acceptance Criteria):
- Rulepack lulus validasi unit test promtool dan aktif dievaluasi di Prometheus runtime.
- Bukti Verifikasi (Verification Evidence):
- Didefinisikan pada
jvm-workload-performance.yml. - Diuji unit pada
jvm-workload-performance.test.yml$\rightarrow$SUCCESS. - Dibukukan pada TN-004 dan diverifikasi live pada TN-005.
TASK-TM-008: Perumusan Rulepack Skenario Memory Pressure & GC Thrashing¶
- Status:
Completedβ (TN-004 / TN-005) - Deskripsi:
Menyusun aturan Prometheus untuk Sinyal Emas GC JVM (
TomcatGCPauseHigh,TomcatGCOverheadHigh,TomcatOldGenMemoryPressure) untuk mendeteksi latensi STW, inefisiensi CPU akibat GC thrashing, dan retensi Old Gen pasca-GC sesuai TM-ADR-0022. - Kebutuhan Teknis:
- Pemicu:
TomcatGCPauseHigh: Jeda STW $> 1.5\text{s}$ (for: 1m).TomcatGCOverheadHigh: GC CPU overhead(rate(jvm_gc_pause_seconds_sum[5m]) * 100) > 15(for: 5m).TomcatOldGenMemoryPressure: Retensi memori Old Gen(used / max) * 100 > 90(for: 10m).
- Aturan evaluasi: Menghasilkan peringatan proaktif sebelum proses JVM dimatikan oleh cgroup OOM Killer kernel.
- Kriteria Penerimaan (Acceptance Criteria):
- Rulepack lulus validasi unit test promtool dan aktif dievaluasi di Prometheus runtime.
- Bukti Verifikasi (Verification Evidence):
- Didefinisikan pada
jvm-workload-performance.yml. - Diuji unit pada
jvm-workload-performance.test.yml$\rightarrow$SUCCESS. - Dibukukan pada TN-004 dan diverifikasi live pada TN-005.
Kategori 5: Observabilitas & Kesiapan Platform Produksi (Roadmap TN-020)¶
Kategori ini mencakup pekerjaan infrastruktur dan platform monitoring menyeluruh sebagaimana dipetakan pada TN-020.
TASK-TM-009: Penyediaan Dashboard Grafana Terpusat untuk Tomcat & Monitoring Stack¶
- Status:
Descoped / Supersededβͺ - Deskripsi: Membangun template dashboard visualisasi Grafana yang memadukan metrik kesehatan runtime Tomcat, JVM, dan infrastruktur monitoring.
- Hasil Evaluasi Arsitektural: Kebutuhan visualisasi Grafana dikesampingkan (descoped) atas kesepakatan desain arsitektur karena platform monitoring stack difokuskan pada investigasi akar masalah otonom (autonomous root-cause investigation), pengiriman laporan kanonikal 7-seksi SRE via Enterprise SMTP Relay, dan query langsung Prometheus TSDB tanpa dependensi UI visualisasi tambahan.
TASK-TM-010: Standardisasi Log Aggregation & Pengelolaan Host Spool¶
- Status:
Completedβ (TN-011) - Deskripsi:
Menstandarkan pola penulisan log aplikasi Tomcat pada Podman Named Volume
tomcat_logsdan siklus hidup direktori spool host persisten (${HOME}/.local/share/tomcat-monitoring/spool, izin0700) dengan mekanisme pembersihan otonom (Zero Unbounded Spool). - Kebutuhan Teknis:
- Penegakan pembersihan otomatis berkas spool atomik
.jsonyang melewati batas usia (DEFAULT_MAX_SPOOL_AGE_HOURS=24) oleh daemon Event Collector. - Penegakan kuota kapasitas jumlah berkas maksimal (
DEFAULT_MAX_SPOOL_FILES=1000) melalui mekanisme FIFO pruning (menghapus berkas tertua terlebih dahulu saat terjadi event storm). - Pembersihan berkas temporer yatim/terlantar (
DEFAULT_STALE_TMP_AGE_MINUTES=60). - Verifikasi isolasi hak akses direktori spool (izin
0700milik user rootless) dan berkas bukti (0600). - Konsolidasi dokumentasi SOP manajemen daemon event collector dan volume log Tomcat pada README repositori terkait.
- Kriteria Penerimaan (Acceptance Criteria):
- Direktori spool tidak mengalami pertumbuhan berkas tak terkendali, kuota berkas terjaga secara bounded, dan hak akses direktori serta berkas bukti terkunci ketat.
- Bukti Verifikasi (Verification Evidence):
- Parameter retensi dikonfigurasi di
CONFIGdan divalidasi olehscripts/validate.sh$\rightarrow$SUCCESS. - Logika
prune_stale_spool_recordsdisrc/collector.shlulus 100% pada unit & component testtest/test-collector.sh(memvalidasi pemangkasan file.jsonlama, file.tmpstale, preservasi file valid, penegakan FIFO cap, dan izin0700/0600). - Daemon
systemd --usertomcat-diagnostic-event-collector.serviceterpasang dan berstatusactive (running)didevops-lab. - Seluruh 62 unit dan integration test pada
tomcat-diagnostic-servicetetap lulus 100% tanpa regresi saat membaca spool persisten. - Didokumentasikan secara lengkap pada TN-011.
TASK-TM-011: Otomatisasi Deployment Menggunakan Playbook Ansible¶
- Status:
Completedβ - Deskripsi: Mengembangkan dan memvalidasi Ansible Playbooks dan Roles modular untuk penyediaan infrastruktur armada peladen (fleet provisioning) dan deployment tumpukan monitoring (container stack deployment) secara idempoten pada platform Tomcat Monitoring.
- Kebutuhan Teknis:
- Pemisahan batas tanggung jawab ke dalam 3 Ansible Roles modular:
role_host_prep: Inisialisasi direktori izin ketat0700(spool,secrets,tls), material rahasia & sertifikat TLS (0400/0444), network bridgedevops-lab, dan 8 named volumes.role_event_collector: Templating unitsystemd --usertomcat-diagnostic-event-collector.service, registrasi dan aktivasi daemon host.role_container_stack: Rekonsiliasi desired state deklaratif untuk Mailpit, Postfix Enterprise Relay, Tomcat JMX Exporter, Prometheus, Alertmanager, Diagnostic Service, serta multi-endpoint readiness probing.
- Penyusunan inventori hierarkis lintas lingkungan (
inventories/lab.ini,inventories/staging.ini,inventories/production.ini, daninventories/group_vars/all.yml). - Pembuatan runner adaptif
scripts/run-ansible-playbook.shdengan dukungan biner lokal dan kontainer pengontrol terisolasilocalhost/ansible-controller:1.0(--network host, socket Podman mount, volume pengguna). - Penegakan tata kelola Zero Secret Leakage dan izin berkas ketat tanpa hardcoded credentials.
- Kriteria Penerimaan (Acceptance Criteria):
- Seluruh rangkaian validasi sintaksis Ansible dan tata kelola direktori lulus 100% (
scripts/validate-ansible.shdanscripts/validate.sh). - Playbook
deploy-stack.ymlberhasil men-deploy seluruh komponen dari kondisi bersih (clean host) dan membuktikan kesiapan seluruh endpoint layanan (ok=35,changed=2,failed=0). - Eksekusi ulang
deploy-stack.ymlmembuktikan idempotensi 100% tanpa mutasi yang tidak diinginkan (ok=33,changed=0,failed=0,skipped=18). - Seluruh rangkaian uji insiden live (
verify-postfix-relay.sh,verify-alertmanager-webhook.sh) lulus 100% di atas tumpukan yang di-deploy via Ansible. - Bukti Verifikasi (Verification Evidence):
- Didokumentasikan secara lengkap pada TN-009.
- Validasi sintaksis
validate-ansible.sh$\rightarrow$SUCCESS (deploy-stack.yml & provision-fleet.yml). - First run
deploy-stack.yml$\rightarrow$ok=35, changed=2, failed=0, skipped=15. - Idempotency rerun
deploy-stack.yml$\rightarrow$ok=33, changed=0, failed=0, skipped=18. - Live incident verification
verify-postfix-relay.sh$\rightarrow$PASS: Seluruh pengujian Pola A berhasil diverifikasi!.
TASK-TM-012: Integrasi Enterprise Notification Bridge (TrueSight / Webhook Enterprise)¶
- Status:
Descoped / Supersededβͺ - Deskripsi: Menyiapkan adapter integrasi eksternal menuju sistem manajemen event enterprise (seperti TrueSight Operations Management atau Event Bridge) ketika infrastruktur target tersedia.
- Hasil Evaluasi Arsitektural: Integrasi TrueSight dikesampingkan (descoped) karena tidak ada infrastruktur TrueSight pada target lingkungan. Jalur notifikasi insiden operasional telah selesai dan terbukti handal menggunakan Enterprise SMTP Relay (Pola A) dengan enkripsi STARTTLS Port 587, otentikasi Cyrus SASL, dan kepatuhan 4 RFC Enterprise Headers (TASK-TM-015 / TN-010).
TASK-TM-019: Otomatisasi CI/CD Pipeline Menggunakan Jenkins¶
- Status:
Completedβ (TN-001 s.d. TN-007) - Deskripsi: Mengimplementasikan pipeline Continuous Integration dan Continuous Deployment (CI/CD) otomatis berbasis Jenkins untuk membangun (build), menguji (automated linting, contract validation, and unit/integration testing), mempublikasikan image kontainer, dan men-deploy stack Tomcat Monitoring ke lingkungan runtime Podman rootless secara zero-touch.
- Kebutuhan Teknis:
- Penyusunan declarative
Jenkinsfilepada repositori terkait (tomcat-monitoring,tomcat-diagnostic-service,tomcat-diagnostic-event-collector). - Tahapan pipeline otomatis:
- Stage 1 β Source Checkout & Linting: Checkout branch
main, verifikasi shell syntax, dan validasi contract non-secret (./scripts/validate.sh). - Stage 2 β Automated Testing: Eksekusi unit tests, schema validation, dan component assertions.
- Stage 3 β Container Image Build & Digest Pinning: Pembuatan immutable container images menggunakan Podman / Buildah serta penentuan digest SHA-256 lokal.
- Stage 4 β Continuous Deployment (CD): Pembaruan kontainer runtime (
deploy-*.sh) dengan kebijakan rollback otomatis (zero-downtime deployment). - Stage 5 β Post-Deployment Verification: Eksekusi smoke test & live incident pipeline verification (
test-tomcatdown-live.sh,verify-postfix-relay.sh).
- Stage 1 β Source Checkout & Linting: Checkout branch
- Manajemen kredensial dan secret injection aman via Jenkins Credentials Store (mencegah kebocoran rahasia ke Git).
- Kriteria Penerimaan (Acceptance Criteria):
- Setiap commit / push ke repository Git secara otomatis memicu eksekusi pipeline Jenkins.
- Pipeline menolak (fail-fast) setiap perubahan yang melanggar kontrak validasi atau gagal dalam rangkaian uji otomatis.
- Deployment ke runtime Podman rootless berjalan lancar dengan status build
SUCCESSdan seluruh verifikasi pasca-deploy lulus 100%. - Bukti Verifikasi (Verification Evidence):
- Deklaratif
Jenkinsfilediimplementasikan dan diverifikasi padatomcat-diagnostic-service(TN-004),tomcat-diagnostic-event-collector(TN-005), dantomcat-monitoring(TN-006). - Eksekusi live di Jenkins Controller membuktikan kelulusan 100% build
SUCCESSpada agen DooD non-rootbuilder-01(TN-007). - Verifikasi otomatis insiden
TomcatDownmembuktikan penerimaan Laporan Investigasi 7-Seksi SRE via Postfix STARTTLS + SASL Relay Bridge di Mailpit (TN-007).
TASK-TM-020: Standardisasi Portabilitas Runtime Kontainer Multi-Engine (Podman & Docker Support)¶
- Status:
Completedβ (TN-008) - Deskripsi:
Mengimplementasikan pustaka pembantu
container-runtime-helper.shdan menstandarisasi portabilitas eksekusi kontainer multi-mesin (Podman dan Docker dual-engine support) secara adaptif di seluruh 5 repositori ekosistem platform Tomcat Monitoring sesuai arsitektur TM-ADR-0026. - Kebutuhan Teknis:
- Deteksi runtime otomatis via
detect_container_enginedengan urutan probepodmanlaludockerdan kemampuan override deklaratif via berkasCONFIG(CONTAINER_ENGINE). - Pelindung relabeling volume SELinux adaptif (
get_volume_flag) yang hanya menyematkan flag:z/:Z/:ro,zjika host aktif SELinux (getenforce) dan engine adalah Podman, serta beralih ke:roatau tanpa flag pada Docker maupun host non-SELinux. - Isolasi flag
--userns=keep-id(get_userns_flag) eksklusif untuk Podman. - Abstraksi lifecycle assertions seragam (
container_exists,image_exists,volume_exists,network_exists). - Refaktorisasi skrip operasional di 5 repositori (
ansible-controller,alertmanager,tomcat-diagnostic-service,tomcat-diagnostic-event-collector,tomcat-monitoring). - Kriteria Penerimaan (Acceptance Criteria):
- Seluruh skrip operasional dapat berjalan secara deterministik di lingkungan Podman maupun Docker tanpa modifikasi manual berkas.
- 100% kelulusan quality gates (validasi statis, unit/integration tests, dan live verification suites) tanpa regresi.
- Bukti Verifikasi (Verification Evidence):
- Validasi sintaks Bash
bash -nlintas 5 repositori $\rightarrow$Exit Code 0 (PASS). - Validasi statis & 62 unit/integration test suites
tomcat-diagnostic-service$\rightarrow$PASS (62/62 tests). - Validasi governance & retensi spool
tomcat-diagnostic-event-collector$\rightarrow$PASS (100%). - Validasi baseline contract & verifikasi webhook / Mailpit
tomcat-monitoring$\rightarrow$PASS. - Didokumentasikan secara lengkap pada TN-008 dan TM-ADR-0026.
TASK-TM-013: Integrasi Shared Persistent Volume Mount untuk Log Runtime Tomcat (Kesiapan Produksi TN-019)¶
- Status:
Completedβ (TN-008) - Deskripsi:
Mengonfigurasi volume mount persisten antara container runtime Tomcat (
tomcat-jmx-exporter) dan host/Diagnostic Service agar log aplikasi real-time (catalina.outdancatalina.YYYY-MM-DD.log) dapat dibaca langsung oleh Diagnostic Service tanpa bergantung pada injeksi manual atau mock fixture pengujian. - Kebutuhan Teknis:
- Perbarui skrip peluncuran container Tomcat (
scripts/run.sh&scripts/deploy-tomcat.sh) untuk menyertakan volume mount Podman Named Volume:--volume "${LOG_VOLUME:-tomcat_logs}:/usr/local/tomcat/logs:z". - Standarisasi seluruh penyimpanan persisten monitoring menggunakan Podman Named Volumes (
diagnostic_data,prometheus_data,alertmanager_data, dantomcat_logs) untuk mengeliminasi dependensi direktori/tmpyang volatile dan menghindari path host absolut. - Verifikasi bahwa log aplikasi yang ditulis saat startup atau error runtime secara otomatis terbaca oleh
bounded-file-readerpadadiagnostic-servicevia--volume "tomcat_logs:/run/tomcat-diagnostic/logs:ro,z". - Kriteria Penerimaan (Acceptance Criteria):
- Log runtime container Tomcat hidup tersinkronisasi langsung ke mount
/run/tomcat-diagnostic/logs/catalina.out(atau daily log) pada Diagnostic Service via Named Volumetomcat_logs. - Skenario diagnosis kegagalan aplikasi nyata (seperti error connection pool, OOM, atau bind exception) dapat dievaluasi secara otomatis dari log asli tanpa intervensi penulisan manual
echo. - Bukti Verifikasi (Verification Evidence):
- Parameter volume
--volume "${LOG_VOLUME:-tomcat_logs}:/usr/local/tomcat/logs:z"dipasang padatomcat-jmx-exporter/scripts/run.sh. - Verifikasi live runtime membuktikan berkas log terbentuk otomatis pada Named Volume
tomcat_logsdan cuplikan log tersaji pada Seksi 4 (Correlated Log Evidence) di laporan email Mailpit. - Didokumentasikan pada TN-008.
TASK-TM-014: Otomatisasi Service & Daemonization Event Collector (Kesiapan Produksi TN-016)¶
- Status:
Completedβ - Deskripsi:
Membangun skrip deployment otomatis dan unit service
systemd --useruntuk menjalankantomcat-diagnostic-event-collectorsebagai daemon persisten di latar belakang, menggantikan eksekusi manual ad-hoc atau one-shot saat pengujian. - Kebutuhan Teknis:
- Implementasi skrip deployment
scripts/deploy-event-collector.shpada repositoritomcat-monitoring. - Pembuatan unit service
~/.config/systemd/user/tomcat-diagnostic-event-collector.servicedengan restart policyalways. - Pengalihan path spooling dari direktori ephemeral
/tmp/diagnostic-spoolke path persisten non-volatile dengan hak akses0700(${HOME}/.local/share/tomcat-monitoring/spool). - Kriteria Penerimaan (Acceptance Criteria):
- Restricted Event Collector aktif secara otomatis sebagai daemon background dan segera merekam event Podman (
died,stop,oom,start) ke direktori spool secara atomik tanpa intervensi manual operator. - Bukti Verifikasi (Verification Evidence):
- Unit test
test/test-collector.shdan validatorscripts/validate.shpadatomcat-diagnostic-event-collectorlulus 100% dengan verifikasi izin direktori0700. - Skrip deployment
scripts/deploy-event-collector.shmemasang dan mengaktifkan servicesystemd --usertomcat-diagnostic-event-collector.servicedengan statusactive (running). - Direktori spool persisten
${HOME}/.local/share/tomcat-monitoring/spooldi-mount secara read-only ke containerdiagnostic-service(/run/tomcat-diagnostic/spool:ro,z). - Verifikasi live runtime membuktikan event container (
stop/start) secara otomatis terekam oleh daemon background ke dalam berkas JSON berversi dan berhasil dikonsumsi oleh Diagnostic Service serta dipersistensikan ke tabel SQLiteevidence_summaries. - Didokumentasikan pada TN-009.
TASK-TM-015: Konfigurasi Enterprise SMTP Relay & Otentikasi Terenkripsi (Kesiapan Produksi Notifikasi)¶
- Status:
Completedβ (TN-010) - Deskripsi:
Mengembangkan konfigurasi SMTP Relay produksi yang mendukung
requireTLS, otentikasi kredensial Cyrus SASL terisolasi, dan header email standar enterprise RFC (Auto-Submitted,X-Priority,X-Incident-Target,X-Diagnostic-Rule). - Kebutuhan Teknis:
- Konfigurasi parameter
smtppadaapplication-config-v1.schema.jsondanapplication.json(host,port: 587,secure: false,requireTLS: true, path file username & password). - Manajemen secret file kredensial SMTP dengan izin ketat
0400/0444yang dipasang via volume mount rootless. - Penambahan header standar enterprise RFC pada
src/adapters/smtp-adapter.js(Auto-Submitted: auto-generated,X-Priority: 1/3,X-Incident-Target,X-Diagnostic-Rule). - Verifikasi otomatis alur pengiriman terenkripsi dan terotentikasi via suite
verify-postfix-relay.sh. - Kriteria Penerimaan (Acceptance Criteria):
- Laporan diagnostik 7-seksi SRE terkirim secara aman melalui enterprise SMTP relay terotentikasi, lolos negative testing auth, dan memuat seluruh header enterprise pada inbox penerima.
- Bukti Verifikasi (Verification Evidence):
- Image Diagnostic Service
localhost/tomcat-diagnostic-service:0.1.8(digestsha256:4519277d6a36d8ce0ce9cf01434ee0f0302e1ba4a63e3b0abe883e4497b5ab2e) dibangun dan lulus 62 unit/integration tests (100% pass). - Suite pengujian otomatis
scripts/verify-postfix-relay.shmemvalidasi:- Penolakan koneksi relay tanpa kredensial SASL (
554 5.7.1 Access denied). - Penolakan koneksi dengan password salah (
535 5.7.8 Authentication failed). - Pengiriman terotentikasi via Submission Port 587 (TLSv1.3 + SASL PLAIN).
- End-to-end incident webhook evaluation dan pengiriman laporan 7-seksi SRE.
- Verifikasi kepatuhan header RFC (
Auto-Submitted: auto-generated,X-Priority: 1,X-Incident-Target: lab/tomcat-01/default,X-Diagnostic-Rule: TomcatDown) via Mailpit API. - Audit antrean Postfix bersih (
Mail queue is empty).
- Penolakan koneksi relay tanpa kredensial SASL (
- Didokumentasikan secara lengkap pada TN-010.
TASK-TM-016: Integrasi Live Prometheus Evidence Adapter pada Application Lifecycle (Kesiapan Produksi Metrik)¶
- Status:
Completedβ (TN-008) - Deskripsi:
Menghubungkan modul
PrometheusAdapterke dalam fungsi pengumpul bukti livecreateDefaultEvidenceCollectorpadasrc/application/application.jsdan menyertakanprometheusSelectorpada allowlisttargets.jsondi runtime deployment. - Kebutuhan Teknis:
- Panggil
prometheusAdapter.query()saat worker mengeksekusi analisis insidenfiring. - Tambahkan konfigurasi
prometheusSelector(misal:job="tomcat-jmx-exporter",instance="tomcat-jmx-exporter:9404") pada target allowlist. - Pastikan timeout agresif (5000ms) tidak memblokir rantai evaluasi bukti lainnya jika Prometheus tidak responsif.
- Kriteria Penerimaan (Acceptance Criteria):
- Snapshot metrik live (memory pool, thread busy, scrape health) secara otomatis terlampir pada
evidence_summariesdi database SQLite saat insidenTomcatDowndiproses. - Bukti Verifikasi (Verification Evidence):
- Skema konfigurasi diperbarui (
application-config-v1.schema.json) dan diverifikasi melalui 61 unit dan integration tests (100% pass). - Snapshot metrik live
up,jvm_memory_pool_used_bytes, dantomcat_threads_busy_threadstersimpan di SQLiteevidence_summariesdan dirender pada Seksi 3 (Key Metrics Snapshot) Laporan SRE di Mailpit. - Didokumentasikan pada TN-008.
TASK-TM-025: Integrasi Enterprise Container Registry & Konfigurasi Siklus Hidup Citra Plug-and-Play¶
- Status:
Completedβ (TN-010) - Deskripsi: Mengimplementasikan standardisasi integrasi repositori citra tingkat enterprise (Enterprise Container Registry Integration) yang bersifat siap pakai (Plug-and-Play) dan nir-modifikasi logika (Zero Logic Modification) di seluruh 5 repositori ekosistem platform Tomcat Monitoring.
- Kebutuhan Teknis:
- Standardisasi variabel konfigurasi deklaratif (
REGISTRY_URL,REGISTRY_NAMESPACE,REGISTRY_TLS_VERIFY,IMAGE_PULL_POLICY,REGISTRY_AUTH_FILE) padaCONFIGdaninventories/group_vars/all.yml. - Penyediaan template enterprise
CONFIG.exampledaninventories/production.ini.example. - Implementasi helper autentikasi terisolasi
scripts/registry-login-helper.shberbasis--authfile. - Penambahan task rekonsiliasi penarikan citra deklaratif
roles/role_container_stack/tasks/pull_images.ymldi Ansible. - Penyusunan SOP Panduan Migrasi Enterprise Container Registry.
- Kriteria Penerimaan (Acceptance Criteria):
- Migrasi ke registry privat kantor (Harbor/Nexus/Quay) dapat dieksekusi murni via berkas konfigurasi deklaratif tanpa mengubah kode logika.
- Seluruh rangkaian validasi statis, sintaksis Ansible, dan verifikasi insiden live lulus 100%.
- Bukti Verifikasi (Verification Evidence):
- Didokumentasikan secara lengkap pada TN-010.
- Pembangunan citra dengan parameter Harbor (
harbor.internal.corp:5000/tomcat-monitoring/...) berhasil dan lulus verifikasi. - Validasi sintaksis
validate-ansible.shdanvalidate.sh$\rightarrow$SUCCESS.
TASK-TM-026: Perancangan & Standardisasi Orkestrasi Multi-OS via Container Engine Socket API dan Kakas Go (tmctl & tm-agent)¶
- Status:
Completed (Design & Architecture)β (TN-011) - Deskripsi:
Merancang dan membakukan arsitektur orkestrasi lintas sistem operasi (Linux dan Windows) berbasis Container Engine Socket API (Podman / Docker) serta mendefinisikan spesifikasi kakas baris perintah tunggal
tmctl(Go CLI) dan agen pengumpul event kontainertm-agent(Go Daemon) untuk menuntaskan keterikatan pada shell Linux. - Kebutuhan Teknis:
- Evaluasi batas arsitektur Container Engine Socket API (Unix Socket, Windows Named Pipe, TCP mTLS).
- Spesifikasi subperintah
tmctl(stack deploy/status/clean,rules ingest/export,registry login,validate). - Spesifikasi streaming socket dan format snapshot
tm-agentsesuai skemaevent-record-v1.schema.json. - Desain refaktorisasi Ansible roles deklaratif dan OS Fact Branching.
- Kriteria Penerimaan (Acceptance Criteria):
- Desain arsitektur menuntaskan keterikatan pada skrip Bash di mesin target untuk mode manual dan otomatis.
- Dokumentasi keputusan arsitektur TM-ADR-0027 dan jurnal rekayasa TN-011 dibakukan.
- Bukti Verifikasi (Verification Evidence):
- Pembakuan TM-ADR-0027.
- Pembakuan TN-011.
TASK-TM-027: Implementasi Kakas Operator Terpadu tmctl (Go Unified CLI) untuk Orkestrasi Multi-OS (Fase 1)¶
- Status:
Completed (Fase 1)β (TN-012) - Deskripsi:
Merancang dan mengimplementasikan kakas baris perintah tunggal
tmctl(Single Static Binary) berbasis Go untuk menjembatani orkestrasi kontainer lintas sistem operasi (Linux & Windows), menggantikan kumpulan skrip imperatifscripts/*.shpada mode manual. - Kebutuhan Teknis:
- Inisialisasi modul Go (
go.mod) dan struktur paket CLI terpadu pada repositori mandiritmctl. - Pembangunan klien adapter Container Engine Socket API (kompatibel Podman Unix socket, Docker socket, dan Windows Named Pipe).
- Implementasi subperintah CLI:
tmctl stack deploy/status/clean,tmctl rules ingest/export,tmctl registry login/logout, dantmctl validate. - Konfigurasi matriks kompilasi silang (cross-compilation): Linux (
amd64/arm64) dan Windows (amd64). - Kriteria Penerimaan (Acceptance Criteria):
- Biner
tmctl(Linux) dantmctl.exe(Windows) dapat menyalakan, memantau, dan menghentikan seluruh tumpukan kontainer secara seragam tanpa memerlukan interpreter Bash di host. - Manajemen aturan AI (
ingest/export) dan login registri kontainer enterprise berjalan mulus melalui antarmuka CLI tunggal. - Bukti Verifikasi (Verification Evidence):
- Didokumentasikan secara lengkap pada TN-012.
- Repositori
tmctldiinisialisasi dan lulus 100% unit tests internal. - Matriks kompilasi silang sukses menghasilkan
bin/linux_amd64/tmctl(5.7M),bin/linux_arm64/tmctl(5.5M), danbin/windows_amd64/tmctl.exe(5.9M). - Eksekusi
tmctl stack statusberhasil menginspeksi kontainer OCI via socket Podman dantmctl validatememvalidasi baseline kontrak repositori. - Referensi: TM-ADR-0027, TN-011, TN-012.
TASK-TM-028: Implementasi Agen Pengumpul Event Kontainer tm-agent (Go Daemon) berbasis Socket API (Fase 2)¶
- Status:
Completed (Fase 2)β (TN-013) - Deskripsi:
Membangun agen background
tm-agent(Go Event Collector Daemon) yang membaca streaming event langsung dari Container Engine API socket dan menulis berkas bukti insiden (evidence spool) secara atomik sesuai skema bakuevent-record-v1.schema.json, menggantikan daemon Bashcollector.shdansystemd --user. - Kebutuhan Teknis:
- Klien streaming event kontainer berbasis socket API endpoint (
/eventsatau/v4.0.0/libpod/events). - Pemfilteran event siklus hidup kontainer target
tomcat-jmx-exporter(died,oom,restart,stop,exit code). - Mesin penulisan atomik (
.tmp$\rightarrow$.jsonmode izin0600) dan pemangkasan kuota retensi FIFO (24 jam / batas 1000 berkas / 60m stale tmp). - Integrasi background runner: systemd user unit di Linux dan Windows Service (
golang.org/x/sys/windows/svc) di Windows. - Kriteria Penerimaan (Acceptance Criteria):
- Seluruh event kegagalan runtime Tomcat terekam secara real-time ke dalam direktori spool persisten berizin
0700dengan format validevent-record-v1.schema.json. - Mesin Diagnostic Service berhasil mengonsumsi bukti event dari
tm-agentdan menghasilkan laporan diagnosis 7-seksi SRE tanpa regresi (Zero Breaking Change). - Bukti Verifikasi (Verification Evidence):
- Didokumentasikan secara lengkap pada TN-013.
- Repositori mandiri
tm-agentdiinisialisasi dan lulus 100% unit tests internal. - Matriks kompilasi silang sukses menghasilkan
bin/linux_amd64/tm-agent(6.1M),bin/linux_arm64/tm-agent(5.6M), danbin/windows_amd64/tm-agent.exe(6.4M). - Eksekusi
tm-agent --run-onceberhasil menginspeksi kontainer via socket Podman dan menuliskan berkascontainer_statesertaruntime_oomberizin0600pada spool0700. - Referensi: TM-ADR-0008, TM-ADR-0027, TN-011, TN-013.
TASK-TM-029: Refaktorisasi Ansible Roles menjadi Thin Orchestrator berbasis tmctl dan OS Fact Branching (Fase 3)¶
- Status:
Completedβ - Deskripsi:
Merefaktor kumpulan Ansible Roles pada repositori
tomcat-monitoring(role_container_stack,role_event_collector,role_host_prep) menjadi thin declarative orchestrator berbasistmctldantm-agentdengan OS Fact Branching yang bersih, sepenuhnya mengeliminasi penggunaan wrapper skrip Bashansible.builtin.shell. - Kebutuhan Teknis:
- Refaktorisasi
roles/role_container_stack/tasks/*.ymluntuk memanggiltmctl stack deploy --target <workload>secara deklaratif viaansible.builtin.command. - Refaktorisasi
roles/role_event_collector/tasks/main.ymldengan OS Fact Branching (ansible_os_family != "Windows"untuk unitsystemd --userLinuxtm-agent.servicevsansible_os_family == "Windows"untuk Windows ServiceTomcatMonitoringAgentviaansible.windows.win_service). - Standardisasi variabel global biner
tmctl_bindantm_agent_binpadainventories/group_vars/all.yml. - Validasi sintaks dan eksekusi playbook master
deploy-stack.ymldanprovision-fleet.yml. - Kriteria Penerimaan (Acceptance Criteria):
- Eksekusi playbook Ansible tidak membutuhkan berkas skrip fisik
.shatau interpreter Bash di mesin target Windows maupun Linux. - Idempotensi 100% (
changed=0, failed=0) terverifikasi pada eksekusi ulang (replay run). - Lulus 100% pada seluruh suite verifikasi live insiden (
verify-postfix-relay.shdanverify-alertmanager-webhook.sh). - Bukti Verifikasi (Verification Evidence):
- Validasi sintaks playbook berhasil lulus via
scripts/validate-ansible.sh. - Eksekusi
deploy-stack.ymlmenghasilkanok=36, changed=0, failed=0pada evaluasi stack danchanged=0saat replay. - Eksekusi
provision-fleet.ymlmenghasilkanok=22, changed=0, failed=0dan daemontm-agent.serviceaktif di systemd. - Suite verifikasi
verify-postfix-relay.shlulus 7 tahap (SASL rejection, STARTTLS direct submission, webhook delivery, 7-seksi email di Mailpit via Postfix). - Suite verifikasi
verify-alertmanager-webhook.shlulus rangkaian webhook firing/resolved dan cleanup. - Referensi: TM-ADR-0025, TM-ADR-0027, TN-011, TN-014.
TASK-TM-030: Implementasi Production-Ready CI/CD Pipelines untuk Biner Multi-OS tmctl dan tm-agent serta Integrasi Stack Release Hub (Fase 4)¶
- Status:
Completedβ - Deskripsi:
Mengimplementasikan dan menstandarisasi alur Continuous Integration (CI) berbasis Declarative Jenkinsfile pada repositori kakas operator terpadu
tmctldan agen pengumpul eventtm-agent, mencakup penegakan 4-Stage Quality Gates, kompilasi silang multi-OS deterministik (linux/amd64,linux/arm64,windows/amd64), penandatanganan integritas biner (SHA-256 fingerprint checksums), pengarsipan artefak (artifact archiving), serta integrasi rilis artefak biner ke dalam Stack CD Hubtomcat-monitoring. - Kebutuhan Teknis:
- Standardisasi
Jenkinsfiledeklaratif denganagent { label 'builder-01' }padatmctl,tm-agent, dantomcat-monitoring. - Penegakan Quality Gates bertingkat: static linting & code quality (
go vet,gofmt -l,bash -n), audit material rahasia (zero secret leakage), automated unit testing (go test -v), dan deterministik cross-compilation (CGO_ENABLED=0). - Pembuatan berkas manifest checksums SHA-256 (
bin/checksums.txt) pada skripscripts/build.shdanMakefile. - Penegakan direktif
archiveArtifacts artifacts: 'bin/**/*', fingerprint: truedan pembersihan ruang kerja aman (cleanWs) pada post actions. - Integrasi orkestrasi rilis pada Stack CD Hub
tomcat-monitoringyang mendelegasikan eksekusi deployment ke Ansible Thin Orchestrator dantmctl. - Kriteria Penerimaan (Acceptance Criteria):
- Kompilasi silang biner
tmctldantm-agentmenghasilkan biner statis multi-OS yang valid beserta berkaschecksums.txt. - Seluruh Quality Gates lulus 100% pada eksekusi pengujian lokal dan terintegrasi dengan mulus pada Jenkins Declarative Pipeline.
- Dokumentasi teknis TN-015 dibakukan.
- Bukti Verifikasi (Verification Evidence):
- Didokumentasikan secara lengkap pada TN-015.
- Eksekusi
scripts/validate.sh,scripts/test.sh, danscripts/build.shpadatmctldantm-agentlulus 100% dengan artefak biner dan manifestchecksums.txt. - Validasi sintaksis
tomcat-monitoring(validate.shdanvalidate-ansible.sh) lulus 100%.
TASK-TM-031: Eksekusi & Verifikasi Live Multi-OS CI/CD Pipeline pada Jenkins Controller & Konsolidasi Arsitektur Global (Fase 5)¶
- Status:
Completed (Fase 5)β - Deskripsi:
Mengeksekusi dan memverifikasi alur pipeline Continuous Integration (CI) secara live pada peladen Jenkins Controller (
http://localhost:8080) untuk repositoritmctldantm-agentdi atas dedicated build agentbuilder-01(Rootless Podman DooD), membuktikan persistensi pengarsipan artefak biner multi-OS (linux/amd64,linux/arm64,windows/amd64) dan manifest fingerprint hashing (checksums.txt), mengeksekusi dan memverifikasi Stack CD Hubtomcat-monitoringyang mengorkestrasikan deployment tumpukan kontainer via Ansible Thin Orchestrator &tmctl, membuktikan seluruh rangkaian Live Verification Suite (Postfix STARTTLS + SASL Relay & simulasi insidenTomcatDown), serta mengonsolidasikan arsitektur platform global dan katalog referensi kakas. - Kebutuhan Teknis:
- Registrasi dan konfigurasi pipeline jobs
tmctl,tm-agent, dantomcat-monitoringpada Jenkins Controller. - Eksekusi 4 Quality Gates
tmctl(Build 3) dengan pengarsipan biner multi-OS danchecksums.txt(100% SUCCESS). - Eksekusi 5 Quality Gates
tm-agent(Build 1) mencakup one-shot spool snapshot verification dan pengarsipan biner multi-OS (100% SUCCESS). - Eksekusi 4 Stages Stack CD Hub
tomcat-monitoring(Build 5) dengan orkestrasi deklaratif Ansible/tmctl dan live verification suite. - Konsolidasi arsitektur platform global pada
architecture/index.md(arsitektur 4-layer CI/CD dan Socket API multi-OS) serta katalog referensi (references/tmctl-cli-reference.mddanreferences/tm-agent-daemon-reference.md). - Kriteria Penerimaan (Acceptance Criteria):
- 100% kelulusan Quality Gates dan stages pada seluruh live pipeline jobs di Jenkins Controller.
- Persistensi biner rilis multi-OS dan manifest SHA-256 pada penyimpanan artefak Jenkins Controller.
- Pembuktian end-to-end simulasi insiden
TomcatDowndan relay Postfix STARTTLS+SASL tanpa cacat. - Dokumentasi teknis TN-016 dibukukan.
- Bukti Verifikasi (Verification Evidence):
- Didokumentasikan secara lengkap pada TN-016.
- Log konsol Jenkins Controller membuktikan
tmctl#3 SUCCESS,tm-agent#1 SUCCESS, dantomcat-monitoring#5 SUCCESS. - Seluruh artefak biner multi-OS tersimpan di Jenkins artifact repository dan laporan 7-seksi SRE diterima di Mailpit via Postfix Relay.
- Referensi: TM-ADR-0024, TM-ADR-0025, TM-ADR-0027, TN-011, TN-012, TN-013, TN-014, TN-015, TN-016.
TASK-TM-032: Deployment Armada Cloud Remote Linux AWS Free Tier (Amazon Linux 2023), Provisi Ansible Lintas-Lingkungan, dan Verifikasi Live Cloud CI/CD (Fase Cloud Linux)¶
- Status:
Completed (Fase Cloud Linux)β - Deskripsi:
Mengonfigurasi dan memperkuat target node Amazon EC2 (AWS Free Tier
t2.micro, Amazon Linux 2023, 2GB swap, Docker Engine, systemd user linger), meregistrasi kredensial SSHaws-ec2-ssh-keypada Jenkins Controller, merefaktor inventori dan roles Ansible untuk dukungan multi-lingkungan dan fix Docker volume permission UID1000:1000, mengeksekusi pipeline Jenkins CD multi-lingkungan (DEPLOY_ENV=aws-staging) Build #6 dengan status 100% SUCCESS, serta membuktikan investigasi insiden liveTomcatDowndari penangkapan sokettm-agenthingga penerimaan Laporan 7-Seksi SRE di Mailpit via Postfix STARTTLS Relay di lingkungan AWS Cloud. - Kebutuhan Teknis:
- Host hardening EC2: pembuatan 2GB swap (
/swapfile,vm.swappiness=10), instalasi Docker 25.0.16, user session linger (loginctl enable-linger ec2-user), dan GID refresh (systemctl restart user@1000.service). - Inventori & Roles Ansible: pembuatan
inventories/aws-staging.ini&inventories/aws-production.ini,chown 1000:1000pada Docker named volumediagnostic_data, touch placeholderpostfix-ca.crt, auto-generation JMX Keystore viakeytool, dan dynamic SSH injection viaANSIBLE_SSH_KEY_FILE. - Jenkins CD Pipeline: parameter
DEPLOY_ENV, binding kredensial terisolasiaws-ec2-ssh-keyviawithCredentials, dan remote SSH Live Verification Suite. - Simulasi insiden live
TomcatDowndi AWS EC2 dan penerimaan laporan kanonikal SRE di Mailpit. - Kriteria Penerimaan (Acceptance Criteria):
- Instans AWS EC2
t2.microstabil tanpa Kernel OOM Killer saat 6 kontainer beroperasi bersamaan. - Pipeline Jenkins CD Build #6 berhasil 100%
SUCCESSdan seluruh verifikasi remote via SSH lulus. - Simulasi insiden
TomcatDownmenghasilkan bukti JSON valid di spool0700dan Laporan 7-Seksi SRE diterima di Mailpit via Postfix STARTTLS (Port 587). - Pembakuan TM-ADR-0028, TN-017, dan SOP Deployment Cloud.
- Bukti Verifikasi (Verification Evidence):
- Didokumentasikan secara lengkap pada TN-017.
- Jenkins CD Pipeline Build #6 berstatus
SUCCESS(durasi 192s). - Verifikasi SSH pada 6 endpoint dan daemon
tm-agentberstatusOK&ACTIVE. - Bukti penerimaan email insiden di Mailpit (
0qGQcQJKNI8PkckDZm0R8E) dan email pemulihan[RESOLVED](80pGk8YnZc6uC787lCskYq). - Referensi: TM-ADR-0024, TM-ADR-0025, TM-ADR-0026, TM-ADR-0027, TM-ADR-0028, TN-017.
TASK-TM-033: Deployment Armada Cloud Remote Windows AWS Free Tier (Windows Server 2022), Provisi Ansible Multi-OS, dan Verifikasi Live Windows Fleet (Fase Cloud Windows)¶
- Status:
Completed (Fase Cloud Windows)β - Deskripsi:
Mengonfigurasi dan memperkuat target node Amazon EC2 Windows (AWS Free Tier, Windows Server 2022 Datacenter, OpenSSH Server, LocalSystem SCM binding), mengintegrasikan Model 1 Hierarchical Grouping pada inventori multi-OS (
inventories/aws-staging.ini), menerapkan OS Fact Branching (ansible_os_family == "Windows") pada seluruh roles Ansible, mendeploy biner Go native Windowstmctl.exedan daemontm-agent.exe, serta membuktikan penangkapan event runtime dan penulisan evidence spool kanonikalC:\monitoring\spooldi lingkungan AWS Cloud. - Kebutuhan Teknis:
- OpenSSH Windows Hardening: instalasi capability, binding LocalSystem service account (fix Error 1332 SID lookup), aktivasi SFTP subsystem
sftp-server.exe, dan injeksi kunci publik RSA bebas line-wrapping via Base64. - Inventori & Roles Ansible: Model 1 Hierarchical Grouping (
[linux_nodes],[windows_nodes]), OS Fact Branching padarole_host_prep(strukturC:\monitoring&tmctl.exe),role_event_collector(tm-agent.exedaemon &C:\monitoring\spool), danrole_container_stack(Linux-only guard). - Validasi runtime
tmctl.exedan streaming daemontm-agent.exedi Windows Server 2022. - Kriteria Penerimaan (Acceptance Criteria):
- Autentikasi SSH Key-based ke node Windows berhasil tanpa intervensi password.
- Playbook
provision-fleet.ymldandeploy-stack.ymlberjalan sukses dan idempoten (0 unreachable, 0 failed). - Biner
tmctl.exedantm-agent.exeberfungsi native dan menulis berkas evidence JSON valid diC:\monitoring\spool. - Pembakuan TN-018 dan pembaruan handbook.
- Bukti Verifikasi (Verification Evidence):
- Didokumentasikan secara lengkap pada TN-018.
- SSH key auth berhasil:
ec2amaz-darmlje\administrator. - Ansible Playbook RECAP:
aws-ec2-win-01 : ok=9 changed=1 unreachable=0 failed=0 skipped=36. - Bukti penulisan berkas evidence di
C:\monitoring\spool\1789381549962275300_collector_status.json.
TASK-TM-034: Standardisasi Distribusi Citra Pihak Ketiga (Mailpit) ke Enterprise Container Registry & Otomatisasi Air-Gapped Cloud Provisioning¶
- Status:
Planned / In-Backlogβ³ - Deskripsi:
Mengintegrasikan citra pihak ketiga (
ghcr.io/axllent/mailpit) ke dalam repositori Container Registry internal (harbor.internal.corp:5000atau AWS ECR) serta menyelaraskan alur sinkronisasi citra pada pipeline CD dan Ansible Playbook untuk mendukung provisioning cloud yang sepenuhnya terisolasi (air-gapped / single source of truth), mengeliminasi dependensi penarikan langsung dari registry publik eksternal saat bootstrap armada baru. - Kebutuhan Teknis:
- Mirroring/pushing citra
mailpitke registry privat dengan namespace terpadu ({{ registry_url }}/{{ registry_namespace }}/mailpit:v1.31.0). - Penyesuaian variabel
mailpit_imagepadainventories/group_vars/all.ymlagar mengikuti polaregistry_urlseperti citra lainnya. - Penyesuaian
roles/role_container_stack/tasks/pull_images.ymluntuk memvalidasi digest dan pull policy terpusat. - Standardisasi skrip
user_dataEC2 Amazon Linux 2023 (dnf install -y docker) dan Windows OpenSSH bootstrap pada repositori dokumentasi/IaC. - Kriteria Penerimaan (Acceptance Criteria):
- Seluruh armada (Linux & Windows) menarik citra murni dari registry privat tanpa bergantung pada koneksi langsung ke
ghcr.io. - Deployment pada node baru (fresh instance) berhasil 100% secara idempoten dalam mode semi-air-gapped / zero external registry pull.
- Referensi: TM-ADR-0026, TM-ADR-0028, TN-010, TN-017.
π οΈ Implementation Priority Matrix¶
| Task ID | Nama Task | Prioritas | Status | Sumber Acuan | Komponen Terdampak | Kriteria Hasil |
|---|---|---|---|---|---|---|
| TASK-TM-001 | Scrape Target /health Diagnostic Service |
P0 (Blocker) | Completed β
|
TM-ADR-0016 | Prometheus | Metrik up aktif untuk Diagnostic Service |
| TASK-TM-002 | Alert Rule DiagnosticServiceDown |
P0 (Blocker) | Completed β
|
TM-ADR-0016 | Prometheus | Alert firing saat service mati > 1m |
| TASK-TM-003 | Direct SMTP Emergency Route Alertmanager | P0 (Blocker) | Completed β
|
TM-ADR-0016 | Alertmanager | Email darurat ke Mailpit bypass webhook |
| TASK-TM-017 | Migrasi Universal Ingestion Alertmanager | P0 (Blocker) | Completed β
|
TM-ADR-0016 | Alertmanager / DS | Seluruh alert diarahkan ke Diagnostic Service |
| TASK-TM-018 | Multi-Domain Diagnostic Dispatcher | P0 (Blocker) | Completed β
|
TM-ADR-0023 | Diagnostic Service | Dispatcher modular 4 domain engine & fidelity alertname |
| TASK-TM-004 | Stale Lock Recovery Worker SQLite | P1 (High) | Completed β
|
TM-ADR-0015 | Diagnostic Service | Re-queue otomatis event status processing (TN-007) |
| TASK-TM-005 | Housekeeping & Retention DB SQLite | P1 (High) | Completed β
|
TM-ADR-0015 | Diagnostic Service | Pembersihan data lama & disk terkendali (TN-007) |
| TASK-TM-013 | Persistent Volume Mount Log Tomcat | P1 (High) | Completed β
|
TN-019 / TN-008 | Tomcat Runtime / DS | Log container live terbaca otomatis oleh DS (TN-008) |
| TASK-TM-014 | Daemonization Restricted Event Collector | P1 (High) | Completed β
|
TN-016 / TN-009 | Event Collector | Collector berjalan sebagai systemd user service (TN-009) |
| TASK-TM-015 | Enterprise SMTP Relay Configuration | P1 (High) | Completed β
|
GAP-014 / TN-010 | Diagnostic Service | Notifikasi terkirim via relay SMTP TLS resmi (TN-010) |
| TASK-TM-016 | Live Prometheus Evidence Wire-up | P1 (High) | Completed β
|
GAP-004 / TN-008 | Diagnostic Service | Metrik live otomatis terlampir di evidence (TN-008) |
| TASK-TM-019 | Otomatisasi CI/CD Pipeline Jenkins | P1 (High) | Completed β
|
TN-001 | Jenkins / CI-CD | Pipeline build, test, & deploy rootless otomatis (TN-001 s.d. TN-007) |
| TASK-TM-020 | Portabilitas Multi-Engine Runtime (Podman/Docker) | P1 (High) | Completed β
|
TM-ADR-0026 | Seluruh Repositori | Helper adaptif, SELinux guard, userns guard (TN-008) |
| TASK-TM-025 | Integrasi Enterprise Container Registry (Plug-and-Play) | P1 (High) | Completed β
|
TN-010 | Seluruh Repositori | Migrasi deklaratif ke Harbor/Nexus nir-modifikasi logika (TN-010) |
| TASK-TM-026 | Standarisasi Orkestrasi Multi-OS & Go Tooling | P1 (High) | Completed β
|
TM-ADR-0027 | Seluruh Repositori | Arsitektur Container Engine API, tmctl CLI, & tm-agent (TN-011) |
| TASK-TM-027 | Implementasi Kakas Operator Terpadu tmctl (Go CLI) |
P1 (High) | Completed β
|
TM-ADR-0027 | tmctl (New Repo/CLI) |
Single static binary CLI lintas OS untuk manajemen manual (TN-012) |
| TASK-TM-028 | Implementasi Agen Event tm-agent (Go Daemon) |
P1 (High) | Completed β
|
TM-ADR-0027 | tm-agent / Event Coll |
Socket event streamer & atomic spool writer multi-OS (TN-013) |
| TASK-TM-029 | Refaktorisasi Ansible Roles berbasis tmctl |
P1 (High) | Completed β
|
TM-ADR-0027 | tomcat-monitoring / Ansible |
Thin declarative orchestrator & OS Fact Branching (TN-014) |
| TASK-TM-030 | CI/CD Pipelines & Multi-OS Artifacts Hub | P1 (High) | Completed β
|
TM-ADR-0027 | tmctl, tm-agent, tomcat-monitoring |
CI multi-OS biner, checksums manifest, & Stack CD Hub (TN-015) |
| TASK-TM-031 | Live Multi-OS CI/CD Verification & Global Architecture | P1 (High) | Completed β
|
TM-ADR-0027 | Jenkins Controller / All | Verifikasi live Jenkins, biner multi-OS di controller, & konsolidasi manual (TN-016) |
| TASK-TM-032 | AWS Free Tier Linux Cloud Fleet Deployment & CI/CD | P1 (High) | Completed β
|
TM-ADR-0028 | AWS EC2 / Jenkins / Ansible | Zero-touch AWS Linux cloud deployment, swap hardening, & incident response (TN-017) |
| TASK-TM-033 | AWS Free Tier Windows Cloud Fleet Deployment & Multi-OS | P1 (High) | Completed β
|
TM-ADR-0028 | AWS Windows / Ansible / tm-agent | Multi-OS Hierarchical Grouping, Windows OpenSSH hardening, & Windows fleet live verification (TN-018) |
| TASK-TM-035 | Fleksibilitas Topologi Deployment, Standarisasi tm_data, & TLS Governance |
P1 (High) | Completed β
|
TM-ADR-0028 | Ansible / Jenkins / Config | Profil topologi (all_in_one, monitoring_node, central_hub), TLS auto-renewal, & path tm_data (TN-020 s.d. TN-022) |
| TASK-TM-036 | Otomatisasi Provisi Docker Windows & Dual-Container Mode | P1 (High) | Completed β
|
TM-ADR-0026 | Scripts / Ansible / Jenkins | Installer remote SSH, reboot windowsfilter resume, System32 placement, & Dual-Container Mode (TN-023) |
| TASK-TM-037 | Otomatisasi Provisi Linux Host & Multi-Distro Runtime Detection | P1 (High) | Completed β
|
TM-ADR-0026 | Scripts / Ansible / Fleet | Remote SSH bootstrapper, inspeksi runtime, fallback Docker AL2023, & swap hardening (TN-024) |
| TASK-TM-034 | Distribusi Citra Upstream (Mailpit) & Registry Air-Gapped | P2 (Medium) | Planned β³ |
TM-ADR-0028 / TN-010 | Registry / Ansible / Fleet | Zero external pull & single registry source for cloud provisioning |
| TASK-TM-006 | Audit Trail Endpoint Tindakan Operator | P2 (Medium) | Descoped βͺ |
TM-ADR-0014 | Diagnostic Service | Digantikan arsip dossier 7-seksi terpusat |
| TASK-TM-007 | Rulepack Thread Starvation | P2 (Medium) | Completed β
|
TM-ADR-0017 / TM-ADR-0022 | Prometheus | Rule saturasi thread pool 100% (TN-004) |
| TASK-TM-008 | Rulepack Memory Pressure & GC | P2 (Medium) | Completed β
|
TM-ADR-0017 / TM-ADR-0022 | Prometheus | Sinyal Emas GC Pause, Overhead, Old Gen (TN-004) |
| TASK-TM-009 | Dashboard Observabilitas Grafana | P2 (Medium) | Descoped βͺ |
TN-020 | Grafana | Fokus investigasi otonom & laporan email SRE |
| TASK-TM-010 | Standardisasi Log & Spool Cleanup | P2 (Medium) | Completed β
|
TN-020 / TN-011 | Event Collector / Host | Spool pruning 24h, cap 1000, & isolasi 0700 (TN-011) |
| TASK-TM-011 | Ansible Playbook Deployment | P3 (Planned) | Completed β
|
TN-009 | Ansible / Podman | Zero-touch provisioning & deployment idempoten (TN-009) |
| TASK-TM-012 | Integrasi TrueSight / Event Bridge | P3 (Deferred) | Descoped βͺ |
GAP-015 / TN-020 | Integration Bridge | Digantikan Enterprise SMTP Relay resmi (TN-010) |
π Related Documentation¶
- Diagnostic MVP Index
- Diagnostic MVP Gap Register
- Tomcat Monitoring Architecture
- Continuous Integration and Deployment Engineering Journal
- SOP: Panduan Deployment Armada Cloud AWS
- SOP: Panduan Migrasi Enterprise Container Registry
- TM-ADR-0014 β Enforce Zero Automatic Remediation
- TM-ADR-0015 β Adopt Asynchronous Webhook Ingestion with Durable SQLite Acceptance Pattern
- TM-ADR-0016 β Designate Diagnostic Service as Canonical Incident Notification Authority
- TM-ADR-0017 β Adopt Vertical Slice MVP Scoping for Diagnostic Pilot
- TM-ADR-0024 β Adopt Decoupled Component CI and Orchestrated Stack CD Pipeline Architecture
- TM-ADR-0025 β Delineate Responsibilities Between Jenkins Release Orchestration and Ansible Configuration Provisioning
- TM-ADR-0026 β Adopt Adaptive Multi-Engine Container Runtime Portability for Podman and Docker Environments
- TM-ADR-0027 β Adopt Container Engine Socket API and Unified Cross-Platform Tooling for Multi-OS Orchestration
- TM-ADR-0028 β Adopt Cloud-Native Remote Fleet Orchestration, Multi-Engine Socket API Portability, and AWS Free Tier Integration
- TN-020 β Consolidate Diagnostic MVP Portfolio and Plan Next Phase