November 10, 2020


On Monday, November 9th, me and my family were informed that our neighbor and close friend had tested positive for COVID-19. We started thinking about who we had come in contact with over the past couple days. We reached out to those people and informed them that we had been in contact with someone who tested positive for COVID-19 and were in the process of ourselves getting tested. As I write this now my wife is going and getting a rapid test done. ... Read more

September 11, 2019

Work Products

While at a conference in Pittsburgh last month, I talked with someone that is an independent consultant. While speaking with this person, they had made a small confession. He was basically “being paid to sit around,” and did not have anything to show for his work. He was nervous that the client would eventually end this engagement. I asked for a few examples of his day-to-day and how he spends his time at this client. ... Read more

June 15, 2018

Notes: Multi Stage Docker Build

Docker Multi-Stage Builds Multi-stage builds are a new feature requiring Docker 17.05 or higher on the daemon and client. Multi-stage builds are useful to anyone who has struggled to optimize Dockerfiles while keeping them easy to read and maintain. Things to remember: - Dockerfile adds a layer to the image for each instruction Multi-stage builds are helpful to reduce image-size, maintain readability, and reduces the need to have two Dockerfiles (one for dev and one for production, aka the builder pattern). ... Read more

June 15, 2018

Shared: How to Migrate Existing Microservices to Serverless

When you have a set of microservices running on VMs or inside Docker containers, consider moving some of them to serverless. Here are some commonly cited reasons: Cost: Services with low traffic, or cron jobs, are cheaper with serverless. This is because you don’t pay for them when they’re idle. Time to market: You get more done, faster. Free yourself of the undifferentiated heavy lifting of managing infrastructure. Focus on your users’ needs instead. ... Read more

June 8, 2018

Everything is Software

Perhaps it’s just nostalgia but I love listening to talks from old conferences and meetups I have been to. When attending you have one frame on mind and depending on the environment or situation you were in when attending, you receive the information one way but as time goes on you arrive at a different place. How do those conclusions change when you revisit them? In 2015, I had been working on a large scale modernization project for a customer. ... Read more

October 13, 2017

Experimenting With Go Plugins Using Docker

I was learning about the plugin package from a number of sources and decided to follow along with this article - Writing Modular Go Programs with Plugins One of the things that immediately hit me was that there is a caveat to using Go plugin. As of version 1.8, the Go plugin only works on Linux. Well I am not one to be deterred by something like “only works on Linux. ... Read more

July 23, 2017

Kubernetes: Resource Requests, Limits, and Quality of Service

Caution, opinion ahead. Let me first state that I believe Kubernetes to be one of the most well designed projects in the open source community today. The depth of documentation and the understanding that goes into features and architecture is rare. We adopted Kubernetes as a platform a little over a year ago. Things have been running very smoothly and have had zero major incidents and a few maintenance issues (very minor) for the duration. ... Read more

November 15, 2016

AWS API Gateway with Kubernetes Ingress Map

Working on large scale unified APIs seems to be a popular trend. Recently I was working with Microsoft’s Graph API, which is their unified API. It is not unreasonable to think that many different teams contribute to the different resources available; mail, calendars, contacts, directories. However many resources, the idea is to have all of them referenced from the same endpoint. Ideally each team could use whatever language, whatever technology best worked for them. ... Read more

September 11, 2016

Raft for Dummies and those like me.

This is going to be my very feeble attempt to explain the Raft consensus algorithm. The very least I will accomplish is sharing the material I have read about Raft and how I have come to understand it. Raft is used in popular pieces of software such as RethinkDB, etcd, and a number of Hashicorp products.(1) What is Raft? Raft was developed in the hopes of creating an easy to understand consensus algorithm. ... Read more

September 10, 2016

Using Consul with Registrator

Service discovery is not new, but I still see plenty of shops storing their configuration in the form of configuration files or hardcoded objects. Connecting to an instance of MySQL or Redis and hard coding connection strings beforehand doesn’t allow one to take full advantage of dynamic resources and also doesn’t allow for treating them as backing resources. We are going to take a quick walk through setting up a consul cluster using docker-machine and have registrator dynamically create entries in consul’s service catalog. ... Read more

© Lars Cromley 2017