Cloud-Native Applications (NCA) is a style of application development that encourages easy adoption of best practices in the area of continuous delivery and distributed software development. These applications are designed specifically for a cloud computing architecture (AWS, Azure, CloudFoundary, etc). DevOps, continuous delivery, microservices, and containers are the key concepts in developing cloud-native applications. Spring Boot, Spring Cloud, Docker, Jenkins, Git are a few tools that can help you write Cloud-Native Application without much effort. Microservices It is an architectural approach for developing a distributed system as a collection of small services. Each service is responsible for a specific business capability, runs in its own process and communicates via HTTP REST API or messaging (AMQP). DevOps It is a collaboration between software developers and IT operations with a goal of constantly delivering high-quality software as per customer needs. Continuous Delivery Its all about automated delivery of low-risk small changes to production, constantly. This makes it possible to collect feedback faster. Containers Containers (e.g. Docker) offer logical isolation to each microservices thereby eliminating the problem of "run on my machine" forever. It’s much faster and efficient compared to Virtual Machines.