26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
# 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
|