Cloud native computing is an approach insoftware development that utilizescloud computing to "build and run scalable applications in modern, dynamic environments such aspublic,private, andhybrid clouds".[1][2] These technologies, such ascontainers,microservices,serverless functions, cloud native processors and immutable infrastructure, deployed viadeclarative code are common elements of this architectural style.[3][4] Cloud native technologies focus on minimizing users' operational burden.[5][6]
Cloud native techniques "enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil." This independence contributes to the overall resilience of the system, as issues in one area do not necessarily cripple the entire application. Additionally, such systems are easier to manage, and monitor, given their modular nature, which simplifies tracking performance and identifying issues.[7][citation needed]
Frequently, cloud-native applications are built as a set of microservices that run inOpen Container Initiative compliant containers, such asContainerd, and may beorchestrated inKubernetes and managed and deployed usingDevOps andGitCI workflows[8] (although there is a large amount of competingopen source that supports cloud-native development). The advantage of usingcontainers is the ability to package all software needed to execute into one executable package. The container runs in a virtualized environment, which isolates the contained application from its environment.[3]