Creating a Google Compute Engine machine image with pre-existing SSH host keys won’t work like you might expect—here’s why:
A several-year-old SFTP server resides in AWS. It’s connected to regularly by its hostname. The hostname is an A record for an elastic IP address and it’s attached to the network interface of an EC2 instance running
sshd. I’d like to replace this server with an instance running in Google Cloud Platform.
When connecting to an SFTP server, SFTP clients typically save a host key fingerprint alongside the host name and IP address used to connect to the host. The host…
The following post is a redacted incident report I wrote recently for a temporary connectivity outage between our GCP Composer workloads in a GKE cluster and our AWS VPC private resources. This may be helpful to you if your GCP VPC is VPN-connected without BGP dynamic routing.
Around 9PM EDT on 4/16/2020, GCP Composer Airflow workers lost connectivity to AWS VPC private resources like Redshift and other databases. This caused the majority of Airflow tasks to continuously fail until the issue was resolved at 12:24 PM EDT on 4/17/2020.
The errors looked similar to this:
Can't connect to MySQL server…
How we upgraded from Rails 4 to 5 zero commits ahead of master.
For all intents and purposes, Rails 4.x has reached its end-of-life. The Rails maintenance guide explains the release series support while the Security Policy explains which versions will receive security patches and new versions.
For major security issues, all releases in the current major series, and the last release in the additional major series will receive patches and new versions. This is currently 6.0.x and 5.2.x.
If you’re running a Rails 4 application, now’s the time to seriously consider upgrading.
This is a guide outlining how a…
last updated Jan 14, 2019
Google Cloud Platform recently released a general-audience hosted Apache Airflow service called Composer. Airflow reads a configured directory recursively for all python files that define a DAG. When using GCP Composer, the DAGs folder is setup within a google cloud storage bucket for your Composer environment. In this post I’ll describe how we started syncing a git repo of our DAGs to this bucket so our Airflow environment always has the latest source. …
Kubernetes hellonode tutorial is great, but it didn’t answer many questions that I had when building and deploying an actual app such as “how does my database get setup?”, “when do app packages get installed?”, “how does the developer environment setup work?” and “how do my containers talk to each other?”. In Part I of this walkthrough, we created a docker-compose developer environment and a fresh new Rails 5 app. …
In this walkthrough, we’ll create a dockerized development environment for a new Rails 6 application. At the end, you should have a Rails application with distributed services running on your local machine in docker with little effort and provisioning. In Part II of this guide, I’ll explain how to continuously deploy that application on Kubernetes—offering high availability, self-healing attributes, redundancy, and autoscaling. Kubernetes is batteries included, so load balancing, service discovery, rolling update deploys, health checks, and container scheduling is built-in. We’ll use Google Kubernetes Engine (GKE) for this guide.
This is not a writeup about how I smashed React and Backbone together. In fact, it’s almost the opposite of that.
loves systems, bikes, sociology, coffee, and the sound of music. VP of Infrastructure @Adwerx