- Cloud native is an approach to building and running applications that fully exploit the advantages of the cloud computing model.”
- “Cloud native computing uses an open source software stack to be:
- Containerized. Each part (applications, processes, etc) is packaged in its own container. This facilitates reproducibility, transparency, and resource isolation.
- Dynamically orchestrated. Containers are actively scheduled and managed to optimize resource utilization.
- Microservices-oriented. Applications are segmented into microservices. This significantly increases the overall agility and maintainability of applications.”
- “An approach that builds software applications as microservices and runs them on a containerized and dynamically orchestrated platform to utilize the advantages of the cloud computing model.”
- A Cloud Native Software Engineer has typical Software Engineering skills such as writing code, testing, design, architecture, etc. But they differ in that they (critically) have specific skills and knowledge to build applications to leverage cloud platform services for maximal impact.
-
Cloud Native as a term relates to a companies aggressiveness when it comes to adopting cloud platform technologies. The more aggressive they are, the more Cloud Native they are. Cloud Native companies will adopt new cloud technologies at a substantial pace and they do so despite the costs.
-
in most Cloud Native companies decision making is decentralised and shared amongst teams who are more free to architect their own solutions. The devolution of central architecture requires individual teams to take on a greater burden of architecture, which is both liberating, but also an additional workload. It means software engineers need to write code, but also architect it, given the huge list of cloud resources to choose from.
-
In a Cloud Native company it’s more likely that teams are operating the philosophy of “you build it you run it“. Which essential means that the engineering team that writes the code is also responsible and on-call for their application. Being on-call is an additional time burden, but it also means you need to know monitoring tools, have solid communication and a broad skillset to resolve production issues.