DevOps
-
How GitHub Actions can turn your code into a Docker daemon
This is a simple method to have Github Actions automatically build containers and tag versions when the tests pass in CI for a simple Ruby command-line application. -
How to optimize Docker layer caching for Node.js Lambda Functions
Docker builds are often painfully slow. Isolating where layer caching delays occur can help you optimize build times. -
Decompose AWS SAM templates and DRY up your CloudFormation
There's no official fix for a 'RestApiId must be a valid reference' error when decomposing AWS SAM templates. Here's an unofficial solution you can try. -
Frictionless developer environments
Reducing friction and pain points for new contributors can reduce your time-to-first-commit. -
Get Bootboot to work on Rails 4.x in deployment environments with Docker
Bootboot is a great tool for dual booting your Rails upgrade, but it doesn't play well with deployment environments running Rails 4.x. In this blog post we'll show you how you can leverage Docker to effectively get Bootboot to work in these environments. -
Handling Heroku's new "heroku_ext" schema for Postgres extensions
Heroku recently made a change that requires all Postgres extensions to be created inside a special "heroku_ext" schema. Here's how to migrate your app. -
Elevate your Terraform Workflow with GitHub Actions
Are you getting started with Terraform GitOps? Here's a practical guide to running Terraform in GitHub Actions. -
XYB (Examine your buckets)
Another major corporation is in the news for data loss. Don't let your company be next. XYB - Examine your buckets! -
The missing fundamental
When tasked with improving performance of legacy codebases it can be hard to know where to start; this post explores applying a concept from the world of audio engineering to software performance optimization. -
The slippery slope of Docker dev environments
Recently, I built up a local development environment that uses Docker for some critical integration test paths. As I put the finishing touches on this work, I realized there were some far-reaching implications that I had not taken into consideration before I started down this road, namely:
1 of 2