# Release Engineering & Continuous Delivery - Treat every commit as a deployable artifact. - Use CI to run tests and build artifacts; use CD to push to staging/production. - Pin versions, sign artifacts, and audit changes. - Release trains > hero deploys: small batches, fast feedback. # 11 Factor Apps (12 Factor methodology adapted) 1. Codebase: one repo per service, tracked in version control. 2. Dependencies: explicit manifests, lockfiles, isolated environments. 3. Config: env vars/secrets outside code. 4. Backing services: attach databases/queues as resources. 5. Build/run separation: immutable artifacts, separate runtime. 6. Processes: stateless, share nothing, push state out. 7. Port binding: self-contained HTTP service. 8. Concurrency: scale by process model. 9. Disposability: fast startup, graceful shutdown. 10. Dev/prod parity: avoid one-off configs. 11. Logs/logging: treat logs as event streams. # Microservices Architecture - bounded context per service - async communication where possible - API contracts + versioning - independent deployability - observability: metrics, traces, structured logs