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

September 7, 2016

Benchmarking Amazon's Aurora

I saw this study by the folks over at Google and their 2nd Generation Cloud SQL. The results they posted didn’t exactly mirror what I saw when running the benchmarks for myself. You can get the raw data here @ Github. Everything was stood up using Terraform, the benchmark tests were conducted using Sysbench, and all data was plotted using R. Since we didn’t have access to Google’s original data, we provided some overlays in the post as an easy visual comparison. ... Read more

March 31, 2016

Free advice from a Terraform user

Firstly a huge thank you goes out to @mipsytipsy for this awesome post mortem on what appears to be or what could have been one of the worst outages of her career. Some context: our terraform config had been pretty stable for a few weeks. After I got it set up, I hardly ever needed to touch it. This was an explicit goal of mine. (I have strong feelings about delegation of authority and not using your orchestration layer for configuration, but that’s for another day. ... Read more

March 31, 2016

Container best practices from RedHat

I came across this post in a slack channel earlier today and thought it was some pretty sound advice for those starting out in the container eco system. First: Containers are immutable – The OS, library versions, configurations, folders, and application are all wrapped inside the container. You guarantee that the same image that was tested in QA will reach the production environment with the same behaviour. Second: Containers are lightweight – The memory footprint of a container is small. ... Read more

March 8, 2016

Multitasking? You want to talk about multitasking?

Reading is definitely a passion for me. I love reading every chance I get. So few books have stuck with me or have become even a flavor of the week that I feel like I have to recommend Greg McKeown’s Essentialism again. I came by another post, not long after reading Greg’s book, talking about priorities and the nonsense it creates. The Myth of Multitasking Yes, we are capable of doing two things at the same time. ... Read more

March 8, 2016

SQL Server on Linux?

Yeah you saw that right. This new Microsoft confuses me almost on a daily basis. Part of me thinks that this is awesome, and then another part yells at me for thinking it is awesome. I think it is great that Microsoft is looking to make good with the open-source community. They are the second largest contributor to Docker outside of Docker, and now this push to put SQL Server on Linux is yet another attempt to break bread. ... Read more

© Lars Cromley 2017