Skip to content
Armin Shaikhy

[ ARTICLE_001 ] / CLOUD_MANIFEST

Fifteen Factors for Cloud-Native Applications

The original twelve-factor methodology established a baseline for portable, scalable apps. Three additional factors-API-first, telemetry, and security-complete the picture for modern cloud deployments.

The twelve-factor app methodology, published by Heroku in 2012, described how to build software-as-a-service applications that are portable across execution environments, scalable without significant changes, and maintainable over time. Most of the factors remain directly applicable.

Cloud deployments in 2026 involve additional concerns that were not central in 2012: APIs as first-class interfaces, observability at the platform level, and security embedded in the deployment lifecycle. Three additional factors address these.

The Original Twelve

The foundation is worth restating briefly:

  1. Codebase - one codebase tracked in version control, many deploys
  2. Dependencies - explicitly declare and isolate dependencies
  3. Config - store config in the environment, not in code
  4. Backing services - treat backing services as attached resources
  5. Build, release, run - strictly separate build and run stages
  6. Processes - execute the app as one or more stateless processes
  7. Port binding - export services via port binding
  8. Concurrency - scale out via the process model
  9. Disposability - maximize robustness with fast startup and graceful shutdown
  10. Dev/prod parity - keep development, staging, and production as similar as possible
  11. Logs - treat logs as event streams
  12. Admin processes - run admin/management tasks as one-off processes

These factors remain valid. A team that applies all twelve rigorously has an application that can run on any cloud provider, scale horizontally, and be deployed and rolled back without downtime.

API-First (Factor 13)

Every service should define its contract before writing implementation. The API is the product; the implementation is internal detail.

This applies at every layer. An internal service used only by other services in the same organization still has consumers with real dependencies. A change to an undocumented internal API breaks something. A change to a versioned, documented API breaks nothing because consumers have a migration path.

API-first has practical consequences for how work is organized:

  • Design the interface, agree on it with consumers, then build both sides in parallel
  • Version APIs explicitly; breaking changes require a new version, not a silent modification
  • Document contracts in machine-readable formats (OpenAPI, Protocol Buffers, AsyncAPI) so they can be validated and used for code generation

The twelve-factor methodology implicitly assumes well-bounded services communicating over defined interfaces. Factor 13 makes that explicit.

Telemetry (Factor 14)

A cloud-native application should emit structured observability data as a first-class output. Logs are not enough.

Three signals form the minimum viable observability baseline:

  • Metrics: numeric measurements over time (request rate, latency percentiles, error rate, resource utilization). Scraped or pushed to a time-series store.
  • Logs: structured, not free-form text. Each log entry should be parseable by the platform. Include trace IDs and correlation identifiers.
  • Traces: distributed request tracing that follows a transaction across service boundaries. Essential for understanding latency and failures in multi-service systems.

These signals should be emitted by the application, not bolted on by the infrastructure. An application that cannot tell you its own health in production is not finished.

Instrumentation belongs in the codebase from the first deploy. Retrofitting observability into a running system is expensive and error-prone.

Security (Factor 15)

Security should be embedded in the deployment lifecycle, not applied as a post-deployment audit.

Concrete requirements for a cloud-native application:

  • Secrets management: credentials, API keys, and certificates are never stored in code or in environment variables baked into container images. They are injected at runtime from a secrets manager (Vault, AWS Secrets Manager, Kubernetes Secrets with appropriate access controls).
  • Least privilege: each service runs with only the permissions it needs. A service that reads from one database table does not have write access to other tables.
  • Dependency scanning: container images and application dependencies are scanned for known vulnerabilities as part of the build pipeline, not as a periodic manual process.
  • Immutable infrastructure: deployed artifacts are not modified in place. An update produces a new artifact and replaces the running instance. This makes rollback reliable and eliminates configuration drift.
  • mTLS between services: in a zero-trust network, services authenticate each other, not just clients authenticating to services.

Security as a factor means treating these requirements the same way the twelve-factor methodology treats config or backing services: as architectural decisions with clear implementation patterns, not as concerns to be addressed later.

Applying the Factors

No application satisfies all fifteen factors on day one. The value is in using them as a checklist during design and as a diagnostic when something is wrong.

An application that violates factor 3 (config in code) will have deployment problems in new environments. An application that violates factor 14 (telemetry) will be difficult to debug in production. An application that violates factor 15 (security) will eventually have a secrets exposure incident.

The factors are not arbitrary rules. Each one addresses a failure mode that has been observed repeatedly in production systems. Following them reduces the probability of hitting those failure modes while making the application easier to operate by anyone familiar with the methodology.

Start with the original twelve. Add API-first discipline from the first external interface. Add telemetry before the first production deploy. Add security practices to the pipeline before secrets enter the system. The sequence matters less than the commitment.

Shared Tags