A cloud native application is one that exploits the full benefits of the cloud — such as scalability and resilience.
Cloud native is often associated with modern software development, containers and microservices.
What is it?
Cloud native applications are ones that are designed specifically to exploit the benefits of cloud computing — scalability, resilience, elasticity, automation and ease of updating.
Cloud native means building applications out of small, redundant units that can be automatically replicated and aren’t designed to run on specific hardware. This architectural style offers more efficiency in scaling to meet any load and offers greater resilience to outages Although not a prerequisite, it is often associated with containers and microservices.
What’s in for you?
Cloud native applications can fully exploit the cloud. That means they’re easy to dynamically scale up and down, giving you the flexibility to deal with peak periods and they have greater resistance to outages. They take advantage of automation and are designed to evolve, which makes it easier to add new features
By building cloud native applications, you improve your ability to respond to changes and opportunities, to reduce time-to-market for new products and services. And you eliminate your need to run and maintain your own data centers — reducing your capital expenditure.
What are the trade offs?
Cloud native applications are more complex than traditional monolithic ones. The application’s complexity is no longer as encapsulated in a single unit, but is diffused across the entire application and infrastructure. That can make it more difficult to troubleshoot any problems that arise. For instance, when your applications are hosted on a single machine in your data center, it’s easy to spot when that server is down; if one of your cloud applications is unavailable, it may take more investigation to find the root cause.
In some cases, it may be too costly or difficult to rearchitect legacy applications to become cloud native.