Category Archives: blog

Structured Logs in Laravel (Part 2)

The previous post showed you how to tweak Laravel’s default logging setup to output in json which is a key part of creating structured logs. With structured logs you can move yourself towards a more Observable future by tacking on a bunch of extra stuff to your logs which can then be parsed and acted […]

Structured Logs in Laravel

I’ve been following the likes of Charity Majors on the twitters and one of her big things around Observability is producing logs in a ‘structured’ format. (Loosely defined as ‘something that a machine can easily read and make decisions on.) Out of the box, Laravel ships with a logging system that uses Monolog and its […]

mobilexco/laravel-scout-elastic; an AWS Elasticsearch driver for Laravel Scout

Wherein our hero forks another Laravel package to make it work with aws iam roles. Stop. Putting. Credentials. In. Your. Repos. Or. Instances. — adam goucher (@adamgoucher) June 30, 2018 A large piece of what we’ll be doing the last half of this year is improving the support workflows inside Tether (our MarTech platform) and […]

Client-specific domains with CloudFormation for clients that use Google as email provider

A number of our clients want vanity domains for their experiences, which adds a laywer (or two) of operations overhead beyond just having a line item in the invoice. In the spirit of ‘infrastructure as code’-all-the-things, this is now my process for registering new domains for our clients Register the domain through Route 53 Delete […]

HubSpot in an AWS World

We recently moved our corporate website from WPEngine to HubSpot and as part of that, you have to do some DNS trickery. HubSpot helpfully provides instructions for various DNS providers, but not Route 53. Reading the ones they do provide though provides a good idea what is needed; Add a CNAME for your HubSpot domain […]

Harmonizing Maintenance Windows

At the moment we are only using RDS and ElastiCache within AWS, but more services we use the more maintenance windows is going to come up. Rather than have them at random places around the week and clock, I figure it would be useful to have just a single window that we can subsequently work […]

It’s always a Security Group problem…

I’ve got a number number of private subnets within my AWS VPC that are all nice and segregated from each other. But every time I light up a new Ubuntu instance and tell it to ‘apt-get update’ it times out. Now, since these are private subnets I can get away with opening ports wide open, […]

Faster feedback by limiting information frequency

Code coverage is one of those wacky metrics that straddles the line between useful and vanity. On one hand, it gives you an idea of how safely you can make changes, but on the other it can be a complete fake-out depending on how the tests are constructed. And it can slow your build down. […]

Using Puppet to manage AWS agents (on Ubuntu)

One of the first thing any cloud-ification and/or devops-ification project needs to do is figure out how they are going to manage their assets. In my case, I use puppet. AWS is starting to do more intensive integrations into things using agents that sits in your environment. This is a good, if not great, thing. […]

Saunter 2.0

Welp. After 2+ years of tinkering and appearing to be an absentee open source landlord, I just pushed Saunter 2.0.0 up to PyPI. When I list the things that have changed, it is rather silly to have allowed so much time to elapse, but… Remove all references to Selenium Remote Control(RC). Enough time has passed […]