12 Factor Applications for Cloud Native

  1. Codebase – use version control, one codebase tracked in revision control for many deployments.

  2. Dependencies – use a package manager and don’t commit dependencies in the codebase repository.

  1. Config – store the config in Environment Variable, if you have to repackage your application, you’re doing it wrong.

  2. Backing Services – a deploy of the twelve-factor app should be able to swap out a local MySQL database with one managed by a third party (such as Amazon RDS) without any changes to the app’s code.

  3. Build, Release, Run – the twelve-factor app uses strict separation between the build, release, and run stages. Every release should always have a unique release ID and releases should allow rollback.

  4. Processes – execute the app as one or more stateless processes, the Twelve-factor processes are stateless and share-nothing.

  5. Port Binding – export services via port binding, The twelve-factor app is completely self-contained.

  6. Concurrency – scale out via the process model. Each process should be individually scaled, with Factor 6 (Stateless), it is easy to scale the services.

  7. Disposability – maximize robustness with fast startup and graceful shutdown, we can achieve this with containers.

  8. Dev/Prod Parity – Keep development, staging, and production as similar as possible, the twelve-factor app is designed for continuous deployment by keeping the gap between development and production small.

  9. Logs – treat logs as event streams, a twelve-factor app never concerns itself with routing or storage of its output stream.

  10. Admin Processes – run admin/management tasks as one-off processes.

The 12-factor App methodology is technology and language agnostic but satisfied by Containers, Microservices, and CI/CD Pipelines with a focus on DevOps. You can access more information on The 12-factor App at https://12factor.net/.

References::

https://12factor.net/

https://developers.redhat.com/blog/2017/06/22/12-factors-to-cloud-success/

https://medium.com/velotio-perspectives/cloud-native-applications-the-why-the-what-the-how-9b2d31897496

https://landscape.cncf.io/