Jam Notes #3: Integrating Terraform with Kubernetes

1. Which IaC tech stack do you use or recommend?

Chad: Use a tech stack that allows you to simplify things that require less maintenance and human interaction. Automate as much as you can so you can work on more programming tasks. Write declarative code (instead of imperative) and have the system figure it out, so use tools like Terraform and Kubernetes.

2. Where do you delineate the processes on where Terraform is better for a certain process versus Kubernetes for certain processes?

Chad: Kubernetes is the new baseline — you don’t have to choose Ubuntu versus RPM or which machine to run this on, which database, infrastructure, or cloud to choose. Kubernetes creates a new baseline to build your applications. When you build an app, ask, where’s the best place to run this? In some cases, Kubernetes may not be the best option. There are so many options, what tool is best suited for which environment, you have to make the best choice for what that environment requires. From a developer standpoint, Kubernetes is simply the interface where you’re building the application.

3. Kubernetes and its implication on enterprises?

Chad: I’ve been using Kubernetes since 2017 and while it’s not a difficult tool to master, it can be quite complex because it is abstract from bare metal. Let’s say I’m a business owner and I make a decision that we’ll use Kubernetes — I’d hire a bunch of SREs but my expectation is not that they know Kubernetes and nothing else. They would have to be all-rounded — they have to learn when things go wrong, where the logs are, where to go to solve those problems. Kubernetes is not the silver bullet — you have to know other tools like Linux and know what to do when things go wrong.

4. Do you think there’s going to be an education gap in the approach of problem sets?

Michael: The gap is already there — there are a lot of open jobs yet it’s difficult for organizations to find good engineers who know the fundamentals. This is the reason why I’m going into education more so than consulting. The current tech space is setting people up for skills/tools fragmentation.

5. Can you give us examples of when Kubernetes is misused?

Chad: If you have a large monolith running inside a pod or container, the largest node you’re going to get is not the best use case for Kubernetes.

6. What are your thoughts on the evolving ecosystem around the interplay of Terraform and Kubernetes?

Chad: ReAct and RPM provide a way to install the essential components. As Kubernetes evolves, so does the need and requirement for a package manager. I advise people to use Helm.

7. Last words

Michael: If you’re new to DevOps, take it slow, don’t learn 5–6 platforms — that causes confusion. Focus a month or two on one thing, then go into another thing. Say Python, containerization, then CI/CD. Give yourself 6 months to learn: a month to learn Python, then apply that knowledge of Python to containerization, and then move to containerization knowledge to CI/CD.

8. To sum up:

Choose the right tool for the job and don’t jump on the bandwagon because it’s the latest tool. DevOps is not hard but it is complex. Take your learning journey slowly, with one tool/platform at a time, and take a month or two to learn a tool and move on to the next, and practice integrating one tool to another.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store