The Twelve-Factor App is a methodology that defines a set of steps (twelve steps) to building the software-as-a-service apps. Basically, when we create a microservices app and run it in a cloud environment, we are creating a software-as-a-service because our software is exposed as a service to the end-user. An application totally compliant with the cloud is called a cloud-native application.
The following are the twelve factors:
Codebase: One codebase is tracked in the revision control, while many deploy.
Dependencies: Explicitly declare and isolate dependencies.
Config: Store config in the environment.
Backing services: Treat the backing services as attached resources.
Build, release, run: Strictly separate the build and run stages.
Processes: Execute the app as one or more stateless processes.
Port-binding: Export the services via port binding.
Concurrency: Scale-out via the process model.
Disposability: Maximize robustness with a fast startup and graceful shutdown.
Dev/prod parity: Keep development, staging, and production as similar as possible.
Logs: Treat logs as event streams.
Admin processes: Run admin/management tasks as one-off processes.
The twelve-factors is a guide to develop applications capable to take advantage of cloud computing. In other words, when we follow all the steps of the twelve-factors guide, our applications or microservices are a cloud-native application and is totally compliant with the cloud computing approach.
Hope this was helpful.