Aplikasi yang ditulis harus dapat diproduksi dan dijalankan di lingkungan production. Section ini membahas packaging, Docker, CI/CD, dan observability.
Tipe artefak JAR (thin, fat, executable, Spring Boot), manifest Main-Class, dan perintah packaging populer (kotlinc, Shadow, bootJar).
Buka → # Executable JARsAtribut Main-Class di manifest, execution flow java -jar, dan mekanisme loader Spring Boot untuk nested JAR.
Buka → # Native Binaries dengan Kotlin/NativeKompilasi Kotlin ke binary native via LLVM, target platform (linuxX64, macosArm64, iosArm64), komparasi dengan GraalVM native-image.
Buka → # Runtime ConfigurationStrategi konfigurasi runtime: defaults, file config (HOCON/YAML/TOML), system properties, environment variables, CLI args, dengan urutan override yang jelas.
Buka → # Environment VariablesMembaca env vars via System.getenv(), normalisasi SNAKE_CASE ke dot notation, validasi wajib, dan praktik 12-factor app untuk secrets.
Buka → # Logging dan ObservabilityStructured logging JSON, trace ID untuk korelasi antar service, dan tiga pilar observability (logs, metrics, traces) via OpenTelemetry.
Buka → # Health ChecksEndpoint /health/live dan /health/ready, HealthIndicator, liveness vs readiness Kubernetes probe, dan agregasi worst-status.
Buka → # Metrics dan MonitoringEmpat tipe metric (counter, gauge, timer, histogram), Micrometer registry, format Prometheus, dan dashboard Grafana.
Buka → # Docker FundamentalsKonsep Docker (image, layer, container, registry), anatomi Dockerfile, multi-stage build, layer caching, dan base image JVM populer.
Buka → # Containerizing Kotlin ApplicationsContainerization spesifik Kotlin: Dockerfile multi-stage, JVM args untuk container, jlink untuk runtime minimal, dan distroless image.
Buka → # CI/CD FundamentalsTahapan pipeline (build, test, lint, package, deploy), fail-fast, build matrix, dan artifact retention — pondasi praktik CI/CD untuk Kotlin.
Buka → # GitHub ActionsWorkflow GitHub Actions untuk Kotlin: trigger, matrix build, cache Gradle, step build/test/package, dan upload artifact.
Buka → # Graceful ShutdownMenangani SIGTERM, menyelesaikan request in-flight, menutup resource (DB pool, koneksi), dan kontrak Kubernetes terminationGracePeriodSeconds.
Buka → # Production TroubleshootingMendiagnosis masalah produksi: thread dump, heap snapshot, deteksi deadlock, pesan kesalahan umum, dan strategi incident response.
Buka → # Release ManagementSemantic versioning, release candidate, changelog (Keep a Changelog), strategi rollback blue-green/canary, dan checklist rilis.
Buka →