DevOps is becoming a ubiquitous practice among modern software organizations, and a critical aspect of DevOps are CI/CD pipelines (continuous integration, delivery, and deployment). This article focuses on building CI/CD pipelines using Jenkins, Kubernetes/Openshift, Buildah, and Helm. I will build two CI/CD pipelines. Both build, deploy, and release a sample web application. One deploys the application to any Kubernetes cluster using a Gitflow branching model, while the other deploys specifically to Openshift (Red Hat’s managed Kubernetes offering) and uses Trunk development branching model. What the hell does all this mean? Let’s dig in. Continue reading “Getting Started with CI/CD Pipelines”
Still doing all your Linux container management using an insecure, bloated daemon? Well, don’t feel bad. I was too until very recently. Now I’m finding myself slowly saying goodbye to my beloved Docker daemon and saying hello to Buildah, Podman, and Skopeo. In this article, I explore the exciting new world of rootless and daemon-less Linux container tools.
This is the last part of the series. In this video I put together everything I have done so far in the previous videos of the series to build a simple web service application using Go. I leverage all the linked list work from before to build a Task Master application that maintains a prioritized list of tasks and assigns them to workers on demand.Continue reading “Gophin’ Off With Linked Lists. Part 6”
This is the fifth part of the series. In this video I explore everything that Go has to offer towards concurrency. So join me as I make a thread safe version of the linked list from the previous videos and in the process play with mutexes, channels, and wait groups.Continue reading “Gophin’ Off With Linked Lists. Part 5”
This is the fourth part of the series. In this video I dig deeper into how inheritance and polymorphism works in Go. I do this by extending the linked list implementation from previous videos to create a new implementation that keeps elements sorted in their natural order.Continue reading “Gophin’ Off With Linked Lists. Part 4”
This is the third part of the series. In this video I explore unit testing in Go by testing the linked list implementation from the previous video. I also build and unit test my queue and stack implementations by heavily leveraging the linked list implementation from the previous video.Continue reading “Gophin’ Off With Linked Lists. Part 3”
This is the second part of this series. In this video, I get into the heart of the series by maturing the quick and dirty list implementation from the last video and making it a more standalone module. In the process, I show the basics of Object Oriented Programming in Go.
I wanted to learn Go. So I learned Go. I was proud of learning Go pretty quickly. So I decided why don’t I share with the world my approach to learning a new programming language. And then this blog was born. So come learn Go with me as I explore the ins and outs of the language under the guise of building and using my very own circular doubly linked list implementation.
This is the first part of this series. In this video, I build a quick and dirty circular doubly linked list to get my bearings in the Go language. Will cover some very fundamental Go concepts that we will build on much more in future videos.
This is not another tutorial or introductory article about Docker containers. Instead, I want to use this article to try and help newcomers reach an “Aha!” moment sooner than later. And that moment is the realization that while looking and feeling like virtual machines, containers work best when addressing packaging and deployment of an individual process. Continue reading “Let’s Talk Containers”
I love fluent interfaces, and I love the builder pattern. In this post, I’ll use a Java library I recently open sourced to talk about both. Continue reading “Builder Pattern and Fluent Interfaces”