Hello all!
Welcome to the next issue of the Tidy Cloud AWS bulletin!
This issue of the bulletin is focused on the term Cloud Native, with a splash of Nix.
Enjoy!
Cloud Native
You might have heard of the term Cloud Native software before. What is this?
Simply put, it is software whose design and architecture leverages the capabilities provided by a cloud environment. This is not exclusive to public cloud platforms. Also, any hybrid or private cloud solutions could run cloud native applications as well. The key here is the virtualisation and self-service capabilities of resources that cloud platforms provide.
The Cloud Native Computing Foundation (CNCF)has what might be considered the official definition:
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-affected changes frequently and predictably with minimal toil.
Does that definition matter? Pretty much all services in AWS should be cloud native, for example. I think the term becomes more useful when talking about software that is not tied to a specific cloud platform. This is also the aim of the CNCF, to be a vendor-neutral and also drive adoption of these principles, primarily through open source software.
The CNCF itself was essentially founded to become a vendor-neutral owner of the Kubernetes project. The project originated from Google and was modeled based on learnings from Google’s internal Borg platform. To encourage adoption of Kubernetes for container orchestration, a key factor was to not maintain it as a Google-owned project.
The CNCF has grown to include a huge number of projects under its umbrella. There are both open source and commercial products under its umbrella.
Some of the open source projects here have found adoption as services at different public cloud platforms, including AWS.
Kubernetes is the prime example of an open source software project that basically every public cloud platform has adopted. If the public clouds are not running the software itself, they may be interface compatible with it.
I believe it is important to find and understand vendor-neutral cloud solution and where they fit into the whole picture, and that it may drive adoption for standards from the different cloud vendors. Though, it will be a mix of vendor-neutral and vendor-specific services.
To reduce lock-in to a specific cloud vendor, like AWS, look at the landscape for different tools and platforms that CNCF provides. Tools that a cloud vendor supports directly or indirectly may be worthwhile to consider.
However, do not let that deter you from picking vendor-specific services. As always, it depends, services that are easier to maintain and manage from cloud vendor may still be a better choice.
Cloud native foundations training
Related to the Cloud native discussions in the previous section, if you want to look at some fundamentals training for CNCF flavoured cloud native (i.e. vendor-neutral and open source), then there is a free course at Udacity for cloud native fundamentals.
This free course is the first part of a nano degree program for Cloud Native Application Architecture at Udacity. The nano degree is not free, but you can take the fundamentals course separately for free.
Ad hoc environments again
In Tidy Cloud AWS issue #16 I mentioned about Nix and setting up ad hoc environments with it. On the Tidy Cloud AWS website there is now an introductory article on the same topic, https://tidycloudaws.com/how-to-set-up-ad-hoc-developer-environments/.
I think there is certainly room for improvement in the documentation for Nix and NixOS, but it has a lot of promise for something that could be really nice and a non-docker option for environment setup.
Kubernetes documentary
Continuing on the cloud native and CNCF theme, about a month ago, a documentary about Kubernetes on YouTube, from Honeypot (a job platform for developers).
It was interesting to see it as a way for Google to catch up and try to go beyond AWS, and embracing open source for this approach.
The documentary is in two parts, about 55 minutes in total.
https://www.youtube.com/watch?v=BE77h7dmoQU
https://www.youtube.com/watch?v=318elIq37PE
You can find the contents of this bulletin and older ones, and more at Tidy Cloud AWS. You will also find other useful articles around AWS automation and infrastructure-as-software.
Until next time,
/Erik