A Truth Framework for Engineering 1 on 1 Meetings Posted on 2018-08-24


Full disclosure: I am in the middle of an adventure in uncharted territories. I’m one of those individual contributors who turned to management because it made sense for some number of reasons that felt more beneficial than my urges to continue making individual contributions. I like to pretend that I’m on some sort of engineer-manager pendulum, but in truth I’m just moving from one challenge I don’t yet understand to the next.

Read More

Install Spinnaker on Ubuntu 16.04LTS in AWS Posted on 2018-05-09


Install Spinnaker on Ubuntu 16.04LTS in AWS I encountered a lot of issues installing Spinnaker (1.6.1 and 1.7.x) on Ubuntu in Amazon Web Services. This post is the collection of steps I took to get a demo server with a working Spinnaker and Jenkins installation. I am going to use GitHub and the GitHub Branch Source Plugin from CloudBees in order to trigger my build/bakes. My target flow for the demo is: Push a branch/create a pull request with changes (human action) Jenkins runs a pipeline via Jenkinsfile to test updates and certify merge Merge the pull request to master (human action) Jenkins runs a pipeline via Jenkinsfile to test updates and builds a Debian package Spinnaker runs a simple Bake and Deploy (red/black) pipeline This implementation is opinionated and very insecure, but it gives you an easy 10-15 minute commit through deploy demonstration to really open discussions about Spinnaker as a deployment platform for your project or organization.

Read More

Building SuperTux on Ubuntu 16.04 Posted on 2016-09-18


I have a couple roommates (read: children) who recently developed an interest in SuperTux. With 0.4.0 available in the Ubuntu repositories, we were quickly up and running with the core levels and many of the excellent community contributed levels. Eventually, I let it slip that you could create your own levels, and the fun really started. There’s a C# editor that you can run and install on linux via mono. There’s a lot to install, but it’s pretty functional once you have the build dependencies figured out.

Read More

Immutable Infrastructure for Bootstrappers: Building AMIs with Packer Posted on 2015-08-10


This post is part of series on my implementation of immutable infrastructure for bootstrapped projects. You can find the other posts here: Introduction An immutable infrastructure virtual machine Basic AMI generation with Packer Deploying your AMI with Asgard Releases, automation, and next steps If you find this implementation interesting, you will enjoy a book I am writing on this topic: Immutable Infrastructure with Netflix OSS. Packer If Packer is a new tool for you, be sure to check out the Introduction from HashiCorp.

Read More

Immutable Infrastructure for Bootstrappers: Asgard and AWS Posted on 2015-07-27


This post is part of series on my implementation of immutable infrastructure for bootstrapped projects. You can find the other posts here: Introduction An immutable infrastructure virtual machine Basic AMI generation with Packer Deploying your AMI with Asgard Releases, automation, and next steps If you find this implementation interesting, you will enjoy a book I am writing on this topic: Immutable Infrastructure with Netflix OSS. VirtualBox and Vagrant We need a virtual machine provider and Vagrant for managing the virtual machines.

Read More

Immutable Infrastructure for Bootstrappers Posted on 2015-07-22


Companies large and small are singing praises for infrastructure as code and immutable infrastructure. Younger companies are using tools around Docker and containers to promote and mandate immutable infrastructure. These are all great, but if you are a lone bootstrapper burning the midnight oil, it does not seem like the end justifies the means (at least not to me). Not only do these tools require constant upkeep, as this domain is so rapidly changing, but there are often subtle and intricate ‘features’ that spring up when particular versions are paired, or on some Linux kernels, or with some file system types, or, or, or.

Read More

A bash alias for GitHub Pull Request creation Posted on 2015-02-19


I am fond of feature branch git workflows. If the team prefers additional structure, gitflow is also a great tool. In my current position, the bulk of my work takes place in repositories with few maintainers and a less-structured workflow is more comfortable. Most of my work happens on GitHub, so the feature branch technique is mildly altered to correspond to some of the GitHub specifics. This is almost exclusively the Pull Request; which is not a concept specific to GitHub, but creating a GitHub pull request is not something that git itself supports.

Read More

Automatically deploy Hugo to S3 and Cloudfront Posted on 2014-06-05


This could be better automated, but for now, it was easy enough to set up and it works well for my needs. S3cmd S3cmd is mature and full featured. Since Hugo ships a binary only (awesome!), using s3cmd seems like the easiest corresponding solution to get your static site onto S3. Out of the box, s3cmd gives us the following awesome features: sync behavior - only upload changed files --acl-public - set public ACL (this way you do not need to set a policies on the bucket) --delete-removed - when something is removed locally, remove it from s3 First install s3cmd and run s3cmd --configure with appropriate IAM credentials for your target bucket.

Read More

ELK (Elasticsearch, Logstash, Kibana) index restore with Hubot Posted on 2014-04-18


After getting ELK (Elasticsearch, Logstash, Kibana) up and running, an early challenge is managing your indices. I’m assuming Elasticsearch 1.0.0 and greater, and given that version the API provides dead simple mechanisms for everything from closing/deleting indices to snapshots and restore procedures (closure/delete have been around since pre-1.0.0, snapshot/restore is 1.0.0 and newer). It’s easy to put together a quick shell script and cron job to manage the regular tasks (I did: elasticsearch-logstash-index-mgmt).

Read More

Asgard and Hubot: Simplified AMI deployment to AWS Posted on 2013-09-02


If you are not familiar with these tools, you should spend some time investigating Asgard (deployment management for AWS; from NetflixOSS) and Hubot (extensible chatbot; from GitHub). The Goods hubot-asgard (github) | hubot-asgard (npm) ‘npm install hubot-asgard’ should get you most of the way there, check the readme on either github or npm for additional details about environment variables and configuration. Once installed, ‘hubot help asgard’ will show all the commands.

Read More