Tidy Cloud AWS issue #42 - Dive, kubernetes, books and content plans

functional programming

Erik Lundevall-Zara


February 21, 2023

Hello all!

Welcome to the next issue of the Tidy Cloud AWS bulletin! In this issue, we have a book review, some interesting thoughts on usage patterns for Kubernetes, the tool Dive, and some notes about content plans.


Kubernetes as a platform vs Kubernetes as an API

I found this AWS blog post # Kubernetes as a platform vs. Kubernetes as an API interesting, and a take on Kubernetes that perhaps are overlooked. The summary is that there are different usage models for Kubernetes - on one extreme end, all applications and much of the infrastructure components (e.g. databases, load balancers) run within the Kubernetes cluster.

The other extreme is to only use Kubernetes as an API and manage the state of the infrastructure, but everything else is outside of Kubernetes. Here, the actual applications and infrastructure are outside of Kubernetes. The blog post also outlines some approaches that are in the middle of these extremes, with varying levels of resources running inside the Kubernetes cluster.

A key insight here is that you can use Kubernetes and its API model to manage infrastructure as code similar to what you can accomplish with tools like Terraform, Pulumi or CloudFormation/AWS CDK. AWS has its own project in this space, called AWS Controllers for Kubernetes (ACK), which the blog post also promotes.

ACK only support for a few resources released. A more complete solution which also covers more than AWS is Crossplane. If you want to go down the path to explore using Kubernetes API/Control plane for infrastructure as code, Crossplane is probably the best bet.

AWS EKS clusters will cost about $74 per month just to have the control plane in place, without even deploying any applications. For corporate use, this is likely fine, but an unnecessary cost if you want to experiment on your own.

You could use GKE (Google Kubernetes Engine) clusters though. For GKE, in contrast to EKS, there is a free tier of $74.40 per month, which essentially covers the cost of running the control plane. The infrastructure resources themselves could still be in AWS.

This is an experiment on my to-do-list. Perhaps combine that with CDK8s, which may provide a similar experience to Pulumi or AWS CDK, potentially.

Docker Dive

I learned about the tool dive from a Google Cloud presentation on YouTube, which talked about different ways to build container images. The presenter used the dive tool to investigate the efficiency of the various container image build options.

I have found it useful to review some of the container images I use, and see what parts take up space, what parts may add some waste. If you are working with setting up container images, this tool may be helpful to you.

dive example

Book review - Grokking simplicity

I recently picked up the book Grokking Simplicity from a daily deal from Manning. I think this may be one of the best introductions to functional programming and design thinking that I have seen. The author, Eric Normand, provides a gentle and very pragmatic approach to learn ideas and concepts from functional programming.

Why learn about functional programming? My language is Typescript/JavaScript/Python/Ruby/Java/C#/Kotlin/your-favourite-language-here, not Haskell, Clojure, Elixir etc!

Functional programming techniques can apply to any modern programming language, pretty much. There are techniques and patterns that work well with reducing complexity, allow for sane reusability and fit well in modern distributed solutions. These are useful tools to have.

Most of the book uses the fictional e-commerce site MegaMart as an example of different problems and how to solve these using functional programming techniques and ideas, starting from an existing code solution which is not using functional programming and has many challenges and complexities.

The code examples are in JavaScript, both the old code and the new code. You can use most reasonably modern languages to write in a functional programming style, so you do not have to throw away a lot of the old things and take on new languages and frameworks.

The book gently points out though that some things that you have to do explicitly in languages like JavaScript, you will get for free in functional languages.

Even though I am familiar with functional programming, the book was valuable just in the way Eric Normand breaks down and illustrates the different concepts, to support refactoring of the existing code to be more functional.

This book is well worth a read!

Bulletin, articles, and e-book/booklets

My general plan for writing during 2023 and moving forward is to produce three groups of content:

  • Short-form content: This is essentially what is written in the Tidy Clous AWS bulletin, short notes about various topics.

  • Medium-form content: These are typical blog posts/articles that cover a specific topic, which also will be available on the website Cloudgnosis.org.

  • Long-form content: There will also be more in-depth material on certain topics, or re-write of multiple articles into e-book/booklet format. There are a few planned, the first not too far off.

You can find the contents of this bulletin and older ones, and more at Cloudgnosis.org. You will also find other useful articles around AWS automation and infrastructure-as-software.

Until next time,


Back to top