Aplikasi yang ditulis harus dapat diproduksi dan dijalankan di lingkungan production. Section ini membahas packaging, Docker, CI/CD, dan observability.

# Packaging JVM Applications

Tipe artefak JAR (thin, fat, executable, Spring Boot), manifest Main-Class, dan perintah packaging populer (kotlinc, Shadow, bootJar).

Buka →
# Executable JARs

Atribut Main-Class di manifest, execution flow java -jar, dan mekanisme loader Spring Boot untuk nested JAR.

Buka →
# Native Binaries dengan Kotlin/Native

Kompilasi Kotlin ke binary native via LLVM, target platform (linuxX64, macosArm64, iosArm64), komparasi dengan GraalVM native-image.

Buka →
# Runtime Configuration

Strategi konfigurasi runtime: defaults, file config (HOCON/YAML/TOML), system properties, environment variables, CLI args, dengan urutan override yang jelas.

Buka →
# Environment Variables

Membaca env vars via System.getenv(), normalisasi SNAKE_CASE ke dot notation, validasi wajib, dan praktik 12-factor app untuk secrets.

Buka →
# Logging dan Observability

Structured logging JSON, trace ID untuk korelasi antar service, dan tiga pilar observability (logs, metrics, traces) via OpenTelemetry.

Buka →
# Health Checks

Endpoint /health/live dan /health/ready, HealthIndicator, liveness vs readiness Kubernetes probe, dan agregasi worst-status.

Buka →
# Metrics dan Monitoring

Empat tipe metric (counter, gauge, timer, histogram), Micrometer registry, format Prometheus, dan dashboard Grafana.

Buka →
# Docker Fundamentals

Konsep Docker (image, layer, container, registry), anatomi Dockerfile, multi-stage build, layer caching, dan base image JVM populer.

Buka →
# Containerizing Kotlin Applications

Containerization spesifik Kotlin: Dockerfile multi-stage, JVM args untuk container, jlink untuk runtime minimal, dan distroless image.

Buka →
# CI/CD Fundamentals

Tahapan pipeline (build, test, lint, package, deploy), fail-fast, build matrix, dan artifact retention — pondasi praktik CI/CD untuk Kotlin.

Buka →
# GitHub Actions

Workflow GitHub Actions untuk Kotlin: trigger, matrix build, cache Gradle, step build/test/package, dan upload artifact.

Buka →
# Graceful Shutdown

Menangani SIGTERM, menyelesaikan request in-flight, menutup resource (DB pool, koneksi), dan kontrak Kubernetes terminationGracePeriodSeconds.

Buka →
# Production Troubleshooting

Mendiagnosis masalah produksi: thread dump, heap snapshot, deteksi deadlock, pesan kesalahan umum, dan strategi incident response.

Buka →
# Release Management

Semantic versioning, release candidate, changelog (Keep a Changelog), strategi rollback blue-green/canary, dan checklist rilis.

Buka →