Today, I’m a TKGi platform developer and for the most part I develop Concourse CI pipelines. Specifically, I build and maintain pipelines that build foundations that other pipelines use to build custom Kubernetes clusters!
For a while now, I’ve been meaning to blog a bit about my own personal “digital transformation”. I went from a highly sought after Red Hat Certified Architect to a mere sysadmin seemingly overnight. Why? Because DevOps! It was all the IT job market wanted!
I’d been hearing about this DevOps thing for a while and like most people didn’t quite understand it. Then I got to know the theory but hadn’t actually experienced it. I was going for interviews and one technical interview stood out. I was given a laptop with VS code and Ansible plugin and had to deploy a whole lot of infrastructure!! In previous interviews, I’d happily been able to get away with using Vim but it was clear that Vim, on its own, just wouldn’t scale for a massive Git repo full of Infrastructure-as-Code. It was then I realised I had to escape Vim and get with it!
Before I knew it my contract was up and I had to act fast! Luckily there was a Pivotal PKS (Vmware TKGi) opportunity waiting for me. I had no idea what I was getting into but wanted to learn DevOps and Kubernetes so leapt right in.
Pivotal held a 3 month Dojo engagement where myself and the team were transformed into Agile/XP DevOps ninjas. I’d read about the DevOps culture but, like the Matrix, I couldn’t understand it until I experienced it for myself. I was thrown into the deep end of Agile/XP DevOps culture, GitOps, Platform and Cloud Native spaces (all of it “DevOps” for short). It’s a vast myriad of software and soft skills to boot. For those destined for digital transformation: Buckle up! It’s no wonder you need an LSD solution! 😉
Now that I’m in the TKGi DevOps space I don’t worry about anything at OS level anymore AT ALL!! VMware Tanzu OpsManager (BOSH under the hood) plays a big part in simplifying automation because it manages your servers for you. You never have to worry about server inconsistencies or patching, just roll out a new stemcell (a packaged OS “base”) using BOSH and a few coffees later… Presto! All your workloads are rebuilt to spec and running on a new OS with zero workload downtime! We don’t even have user accounts on servers, temporary accounts are supplied by BOSH and they automatically self-destruct on exit. I very rarely have to log into servers these days because BOSH is in control.
TKGi and Concourse CI loaded with Platform Automation Toolkit plus Terraform play a large part in rolling out your VMs and supporting infrastructure too. Everything including deployment of infrastructure, servers and Kubernetes clusters is automated through Concourse pipelines. Configuration files and manifests (like Helm values and tfvars) are all template-driven and are interpolated by Concourse (with secrets and vars) on build containers before being deployed to foundations and clusters.
Sandbox is the most important environment because that’s where all the work is done before getting automatically promoted to other environments. All the code starts on the Sandbox foundation and gets promoted through environments to the Production foundation by Git. There is no code variance between foundations or clusters except the ones we know about!
Honourable mentions: Helm, Carvel KApp and ArgoCD combined with TKGi and Concourse pipelines make for a formidable Kubernetes deployment technique indeed! I can’t stress it enough EVERYTHING IS AUTOMATED! This is GitOps and Infrastructure-as-Code to the max!
BUT (that’s a big BUT)…
I’d be remiss not to mention that it’s really the DevOps/XP/Agile culture that makes it easy to progress steadily through iterations. This DevOps culture requires a certain commitment to a way of work. Commitment to automation, participating in regular ceremonies (standup, pre-IPM, IPM and retro) and commitment to pair programming which makes the platform rock-solid-stable.
So yeah, now I’m a Platform DevOps Engineer doing development and operations on a “platform as a product” that can deploy “clusters as a product” to be consumed en masse.
It’s been awesome to see the platform grow steadily over time and nothing beats that feeling of good cadence! It was a necessary move into the DevOps space but a welcome one. I can see why DevOps is the future and I’m happy to be living the dream of a completely automated cloud native GitOps platform to deploy Kubernetes clusters on! An amazing journey indeed! Now I’m busy looking into TKG which essentially replaces BOSH with Cluster API. Watch this space.
I hope that something from this post will help nudge DevOps-wary sysadmins a little into the future!