Gaining a Systemic View of Immutable Infrastructure Tooling
I put together a few starter notes on things you should delve into and understand before working with infrastructure related tooling, like Ansible, Terraform, or similar tools. If you think I’ve missed any do ping me @Adron and let me know your thoughts on other additions. The first starter items I’d list as the following.
- Computer Networking - Basic understanding of what an IP number is, how they’re assigned via DHCP vs. static, and related basic TCP/IP knowledge. Also it is helpful, yet not necessary to understand the idea behind CIDR ranges and related network concepts about addressing also.
- Basic Linux or Unix CLI Commands - Commands like;
ls
,mv
,rm
,cp
,mkdir
,rmdir
,wget
,curl
,ping
,traceroute
,ifconfig
,nslookup
,vi
,kill
,chown
,whoami
,su
,chmod
,chown
,chroot
,cat
,env
,echo
ortail
. All these commands are’t used in the couse, but they’re fundamental for building and troubleshooting any infrastructure and related environments and systems in the future. - Basic Scripting and Language Constructs - Things like if-then-else, while loops, and related programming constructs for use in scripting like Bash or Powershell.
Algorithms 101 Roads & Town Centers
Alright, there’s this one algorithm that I’ve solved before. I’ve always found it to be a rather fun little exercise to work out. It popped into my head recently and I wanted to recollect how the logic of it went, but my Google-fu wasn’t so great. In the end, I didn’t find the algorithm problem statement but I’ve recollected it as best as I could from memory. If you know what the name of this challenge is I’d love to know what it’s called or if I’ve put it back together correctly. Ping me @Adron.
So the story goes something like this. There once were some nations with a number of cities in each nation. Every citizen has access to every city and every city has a town center for all the citizens to enjoy. Recently the roads were damaged from a lack of maintenance work, ya know, like in real life. Meanwhile there was a revolution that led to catastrophic war that destroyed all the town centers in the nations. So now none of the cities have reachable town centers or functional working town centers anymore! The citizens of the world are angry at the nations and demand immediate fixes to their roads and town centers, with a priority on the town centers! The leaders have decided that the roads shall be repaired and have hired me (you) to assist!
The nation has n cities, we’ll number 1 to n. The cities have two way roads, totalling m roads. A citizen has access to the town center if: their city contains a town center and their city has a road to travel from their city with a town center to another city with a town center.
The following is a map of one great nation of cities with currently impassable roads that must be repaired.
Logitech M331 Silent Mouse
Recently I was playing Transport Fever. If you’re unaware of this epic, nerd, god game and you like those types of games, you should definitely check it out. If you’re not into those, just suffice it to say that there is a lot of mouse clicking in the game. During the last few weeks when I startup the game and navigate about building my railroad empire a certain someone else noticed that the mouse clicking increases exponentially.
I thought to myself, “we need a solution to this!” I began searching for a silent mouse, first using a little Google-fu, but also a quick query on Twitter among the Twitterverse. Quickly a result came back that looked like it would work out in Logitech’s M331 Silent Mouse product.
Algorithms 101 - Big Sums
I’ve been practicing up on some algorithms with Go per my Resolutions for 2018 item “Write More Code, Build Patterns, Algorithms”. Here’s a few of the ones I took a quick review of, from the algorithm perspective.
The first algorithm I took a dive into is a big sum problem. Part of the reason is I wanted a refresher on how Go deals with various integer data types. Easier to set it to memory if I play around with the data types versus just simply reading up on the specifics.
Building a Data Thrashing CLI Tool in Go
I need a tool just to do some testing against an API end point. I figured I’d throw one together real quick in Go. With a few libraries it’s just a few steps to get the job done. The following is that project. Eventually I’ll create the services that will run in some containers I’ll throw into a Kubernetes cluster, but for now, it’s all CLI. Onward.
The first thing I’ll need is Cobra.
KubeCon Keynote Day Two
Kelsey Hightower, Chen Goldberg, and Anthony Yeh
Day two kicked off (read on for day one wrap up) with Kelsey Hightower, Chen Goldberg, and Anthony Yeh. The big push from Kelsey and team focused their keynote around the development story around Kubernetes. Specifically, that a developers and apps users, should never need to know they’re using Kubernetes. He, Chen, and Anthony all talked about the idea we developers - as I’ll offer is true - want to work within our workflow committing, tagging, and knowing our applications will appear in test, development, QA, UAT, and production as we work.
Next Clayton Coleman from Red Hat came up to talk about “Boring is Good”. I found Clayton’s quote “Red Hat helsp build boring software” to be well stated and also an apt description of how Red Hat succeeds today. Red Hat currently, boringly, runs some of the largest Kubernetes clusters. They use Prometheus to gain observability into those clusters and work dilligently to improve Kubernetes.
Good Morning KubeCon?
I hope you’re having a good morning so far. KubeCon has kicked off in full force like the pro-conference that it is. With 4k+ people in attendance the crowds are distinctive, even among a city like Austin. The conference lit off the day with an absurdly early registration time of 7am, and a continental breakfast of some fruit and pastries.
KubeCon - Arrival, Flight, and Scheduling
It appears @AlaskaAir could have just dubbed the nonstop to Austin the #KubeCon Express flight! pic.twitter.com/xui3t4VB1i
— Λdrøn @ ¯_(ツ)_/¯ (@Adron) December 5, 2017
I’m on another plane departing Seattle via SEATAC (SEA). An Alaska Air Boeing 737-900 to be specific. The flight is currently en route to Austin, Texas and the vast majority of people aboard are going to KubeCon. The seats, as they always are, aren’t built for any mortal, normal, reasonably sized human being. So we’re all cuddled up annoyingly but making the best of it we can. Seriously though, I’d rather be on an overnight train. I’d rather spend another 24+ or more hours comfortably studying some Netflix infrastructer and chilling out instead of flying, but that isn’t really an option in this giant country, so onward I go as the dream of comfort in transportation eludes me.
A Few Things I Learned Today in Visual Studio Code
I opened up Visual Studio Code today with an intent to use it for all my editing, documenting, and coding today. My priorities today, on a day I’ve taken off from work, is to work on my upcoming Terraform Course, a little Go coding, and also a few general tasks and notes. While I work on these priorities, you dear reader, get the benefit of my random notes. ;)