A Native Cloud Application (also: NCA) is optimized for operation in a private/public/hybrid cloud infrastructure and enables optimal scaling and easy upgrades. The key feature is the microservices architecture, which means that software is highly modularized, each of the small services runs as a separate process (with its own database and storage). Since these microservices are independent of each other, they can run in distributed environments. In addition, each microservice can be written in its own programming language. Microservices can be easily scaled in a container infrastructure. If something fails, it usually only affects a single module, not the entire system.