Paul Czarkowski is a seasoned DevOps engineer, cloud architect, and open-source advocate with over 20 years of experience designing, automating, and scaling IT infrastructure. Originally from Brisbane, Australia, Paul has spent the past 15 years in the United States working with industry-leading technology companies including Red Hat, VMware, IBM, and Electronic Arts, where he specialized in…
I recently had the privilege to help organize DevOpsDays Texas 2021, a virtual event that we ran to try and scratch our DevOpsDays itch given that in-person conferences won’t be happening any time soon. To see the replays of the event you can watch the Day 1 and Day 2 streams over on youtube. I had the dubious honor of being the most experienced at the technical setup for live streaming and…
Sorry for the long preamble, feel free to just skip straight to the technical details. Two years ago, faced with the challenge of wanting to reduce the tooling required to deploy infrastructure to Google Cloud I started working on a Google Cloud Operator. The goal of this project was to be able to stand up networks, images, and Virtual Machines for installing Pivotal’s PKS (now Tanzu…
Note: I have an updated, simpler version of this on Github with saved exports of profile and sources here. If you prefer a Video Tutorial, you can watch me screencast it on youtube, otherwise read on below. Recent world events (COVID-19) has completely turned the Developer Advocacy role on its head and many of us are scrambling to find new ways to effectively reach audiences remotely. Many of us…
Zoom meetings are great for a small number of people, and if you’re willing to buy a Webinar license you can also use it for a full on webinar (although there are some interesting restrictions to webinars, like you can’t have breakout rooms). Twitch is a great streaming platform, originally used for streaming video games, its now more commonly being used to stream live coding and…
Welcome to 2020. Creating self signed TLS certificates is still hard. Five (5) years ago I created a project on github called omgwtfssl which is a fairly simple bash script wrapping a bunch of openssl commands to create certificates. I’ve been using it ever since and kind of forgot about the pain of creating certificates. Skip the words and jump to the examples [Creating self signed…
After what seems like an eternity I finally got added to the GitHub Actions beta a few days ago. I recently created a Hugo website for learning Kubernetes called k8s.camp which is hosted in GitHub Pages and I figured that switching it from CircleCI to GitHub Actions would be a great way to learn Actions. Before I get started I do want to mention that my experience as a new user trying to learn how…
Note: If this topic has peaked your interest, you can join me for a Webinar on August 15 where I’ll dive deep into Cloud Native Operations with Kubernetes and CI/CD Pipelines. Introduction Welcome to a three part blog series on Creating a Helm Chart Repository. In part 1 I will demonstrate creating a Helm chart repository using GitHub and GitHub Pages. In part 2 I will add Automation to…
Introduction Welcome to a three part blog series on Creating a Helm Chart Repository. In part 1 of this series I demonstrated creating a Helm chart repository using GitHub and GitHub Pages. In this part 2 I will add Automation to automatically update the repository, and in part 2 I will add testing for changes to the charts themselves. If you’re into Videos, I walked JJ through starting with…
Introduction Welcome to a three part blog series on Creating a Helm Chart Repository. In part 1 of this series I demonstrated creating a Helm chart repository using GitHub and GitHub Pages. In part 2 I will add Automation to automatically update the repository, and in part 3 I will add testing for changes to the charts themselves. If you’re into Videos, I walked JJ through starting with Helm…
In previous installments of Spring into Kubernetes I’ve shown you how to build images, deploy applications and write a Helm Chart for Spring applications. In this installment we’ll look at Spring Cloud Kubernetes integrations, specifically using Kubernetes Config Maps as a Config Server. Usually I would use a Pivotal Container Service cluster to demonstrate, but in this demonstration…
Introduction In this installment of Spring into Kubernetes we’ll be looking at using Helm to install our Spring application to Kubernetes. About Helm Helm is the package manager for Kubernetes. It provides tooling to create, template, package, and share Kubernetes manifests. A helm chart is effectively a signed tarball that contains a set of templated Kubernetes manifests, a metadata file…
Note: If this topic has peaked your interest, you can join me for a Webinar on August 15 where I’ll dive deep into Cloud Native Operations with Kubernetes and CI/CD Pipelines. Lulz what? Cloud Native Operations ?!?!?! Historically Operations practices have lagged behind development. During the 90s a number of lightweight software development practices evolved such as Scrum and Extreme…
While investigating running Spring applications on Kubernetes I discovered that a lot of the existing example Spring applications do not have a Dockerfile in their git repository. I thought this odd at first (and frankly still do). What I discovered though, is there’s quite a number of ways to build Spring (and Java in general) container images that don’t necessarily rely on writing a…
Introduction Welcome to the first part in a series of blog posts looking at running Spring applications on Kubernetes. To kick the series off we’re going to take a look at the Spring Pet Clinic example application and demonstrate how we can quickly and easily get it running on Kubernetes. Step 1. Install a Kubernetes Before we get started I would encourage you to read (or at least skim)…
Note: If this topic has peaked your interest, you can join me for a Webinar on August 15 where I’ll dive deep into Cloud Native Operations with Kubernetes and CI/CD Pipelines. Peering into the crystal ball Kubernetes as a technology has been very important to my career this year, and will be even more so for next year too. As 2018 comes to a close its time to drag out the hubris and make a…
Habitat is a project from Chef that provides you a reasonably simple way to build, package, and configure your application. “Habitat is an integrated solution to building, running, and maintaining your application throughout its lifetime. It builds your application and its services into immutable artifacts with declarative dependencies, and then provides automatic rebuilds of your…
I recently found myself writing instructions on how to deploy an application to several Kubernetes platform and ended up writing a different Kubernetes manifests for each platform. 95% of the content was the same with just a few different directives based on how the particular platform handles ingress, or if we needed a Registry secret or a TLS certificate. Kubernetes manifests are very…
An incomplete list of events that I’ve spoken at 2018 Date Event Title Location Feb Cloud Foundry Meetup Singapore A DevOps guide to Kubernetes Singapore Feb Devopsdays Charlotte A DevOps Guide to Kubernetes Charlotte NC March NYC Devops Meetup A DevOps guide to Kubernetes New York, New York April Devops Madison Devops is dead, servers are dying, and I don’t feel too great myself…
Previously I showed how to run a basic secure Docker Registry. I am now going to expand on this to show you something that you might use in production as part of your CI/CD infrastructure. The beauty of running Docker is that you can push an image from a developer’s laptop all the way into production which helps ensure that what you see in development and your various test/qa/stage…
There comes a time in everybody’s life where they realize they have to run their own Docker Registry. Unfortunately there’s not a lot of good information on how to run one. Docker’s documentation is pretty good, but is verbose and across a lot of different pages which means having half a dozen tabs open and searching for the right information. While it’s pretty common to…
By default Docker (and by extension Docker Swarm) has no authentication or authorization on its API, relying instead on the filesystem security of its unix socket /var/run/docker.sock which by default is only accessible by the root user. This is fine for the basic use case of the default behavior of only accessing the Docker API on the local machine via the socket as the root user. However if you…
Given Docker’s propensity for creating easy to use tools it shouldn’t come as a surprise that Docker Swarm is one of the easier to understand and run of the “Docker Clustering” options currently out there. I recently built some Terraform configs for deploying a Highly Available Docker Swarm cluster on Openstack and learned a fair bit about Swarm in the process. This guide…
I have recently had a number of lengthy discussions on the Twitter about Interop, Users, and Ecosystems. Specifically about our need to focus on the OpenStack ecosystem to extend the OpenStack IaaS user experience to something a bit more platform[ish]. I wrote a post for SysAdvent this year on developing applications on top of OpenStack using a collection of OpenSource tools to create a PaaS and…
Docker images are “supposed” to be small and fast. However unless you’re precompiling GO binaries and dropping them in the busybox image they can get quite large and complicated. Without a well constructed Dockerfile to improve build cache hits your docker builds can become unnecessarily slow. Dockerfile’s are regularly [and incorrectly] treated like bash scripts and…
Unless you’ve been living under a rock (in which case I envy you) you’ve heard a fair bit about The Twelve-Factor App . A wonderful stateless application that is completely disposable and can run anywhere from your own physical servers to Deis , Cloud Foundry or Heroku . Chances are you’re stuck writing and running an application that is decidely not 12Factor, nor will it ever…
For some values of ‘right’ Almost since Docker was first introduced to the world there has been a fairly strong push to keeping containers to be single process. This makes a lot of sense and definitely plays into the 12 Factor way of thinking where all application output should be pushed to stdout and docker itself with tools like logspout now has fairly strong tooling to deal with…
“See how this sparkly devop princess bakes bread every day with almost no effort at all with this one weird trick” Store bought bread is shit. Even the “artisanal” bread at most supermarkets is little better than cake baked in a bread shaped mold ( seriously check next time you’re at a supermarket ). You might be lucky and have a really good bread baker near you, but…
EZ Bake came from an idea I had while watching the HangOps episode 2014-04-11 in which they were talking about Docker and Config Management being complementary rather than adversary. I have expermented with using Chef and Docker together in the past but wanted to tackle the problem from a slightly different angle. I’ve recently been working on some PAAS stuff, both Deis and Solum these both…
I recently did a presentation at the Cloud Austin meetup titled Docking with Unicorns about new PAAS on the block DEIS . Building out DEIS is quite easy, make more easy by some tight integration they have with Rackspace Cloud. If you’re interested in what deis is go through my slides linked above, and the documentation on their website. If you want to build out an environment to kick the…
I have been having a lot of internal debate about the idea of running more than one service in a docker container. A Docker container is built to run a single process in the foreground and to live for only as long as that process is running. This is great in a utopian world where servers are immutable and sysadmins drink tiki drinks on the beach, however it doesn’t always translate well to…
Building applications in a docker.io Dockerfile is relatively simple, but sometimes you want to just install the application exactly as you would normally via already built chef cookbooks. Turns out this is actually pretty simple. The first thing you’ll need to do is build a container with chef-client and berkshelf installed. You can grab the one I’ve built by running docker pull…
At DevOps Days Austin @mattray did an Openspace session on Omnibus which is a toolset based around the concept of installing an app and all of it’s prerequisites from source into a directory and then building a package ( either .deb or .rpm ) of that using fpm . Having battled many times with OS Packages trying to get newer versions of Ruby, or Redis or other software installed and having to…
Lately I’ve been doing a lot of prototyping with Vagrant , specifically for a couple of distinct activities:- building puppet modules using the excellent puppet sandbox project and building RPM packages with FPM . I realized I was spending a bunch of time flipping back and forth between Vagrant environments and I had no quick way to utilize RPMs built with FPM inside my puppet modules.
A lot of tech bloggers will write their blog posts in Markdown , convert it to HTML and paste that HTML into their blog of choice and then in the blog’s editor clean it up to suit their blog. This is an excellent way to create easy to read portable documents that can easily be published in multiple formats. However what if there was a way to skip the second part of that and just create a…
I’ve got an aging VMWare ESXi 4.0 server that needs to be replaced with something a little more modern and flexing. Obviously at home I don’t need all the cool features that licensed VMWare comes with, but I do want more than just the basic free version. After a few weeks of installing and testing alternatives ( I’d really love to run openstack, but it’s just not worth it…
I’m migrating from my old VMWare ESXi box to a new machine running Ubuntu 12.10 and KVM. Not wanting to rebuild all of my VMs I set about trying to work out the best way to migrate the VMs. Steps to make Windows migrate without Bluescreen If you migrate a windows box it’ll bluescreen due to the shock of so much hardware changing. The following .reg hack will prevent this from happening…
I have a self hosted wordpress food blog hosted on an old silly domain that I’ve wanted to move away from for a while. I also want to stop paying hosting fees some time soon. Since I’m already looking at moving a lot of my day-to-day activities to the ‘cloud’ it made sense to pick a blogging platform that ties into a major cloud hub. Google’s Blogger was the obvious…
Paul Czarkowski Senior Principal, Cloud Services Black Belts @ Red Hat 📧 username.taken@gmail.com 🌍 tech.paulcz.net | 🛠 github.com/paulczar 🛂 Citizenships: Australia, UK, USA Overview Senior Cloud & DevOps Leader | Kubernetes | Open Source Advocate | Infrastructure Automation Innovative and results-driven Senior Principal Engineer with 20+ years of experience in cloud platforms (AWS, GCP,…