Blog

Measuring Aurora query IO with Batch experiments

Running production-scale tests with AWS Batch showed that using SQLAlchemy to modify only changed rows reduced our Storage IO costs, as well as the accumulation of dead tuples in our database.

Migrating to Aurora: easy except the bill

Pay for usage sounds good, but how you use the database is key. Migrating our production database from Postgres to Aurora was easy, until we noticed that our daily database costs more than doubled. Our increased costs were driven by storage IO, a type of usage we’d never before optimized or even measured. We resized… Read More

Fresh baked software

In the olden days, software used to come in a box. Now, we can make sure our users always have fresh baked software.

HTTPS Auto-Promotion with Docker and NGINX

One of the promises of Docker is the ability to run your code like it’s in production everywhere, including when you’re writing it. Differences in the runtime setting are meant to be controlled with configuration. This is a great idea. Something else that’s a great idea is always serving your web apps over HTTPS. End-to-end encryption… Read More

Friendly robots

A tale of robots, gold stars, and code coverage. At Gridium, we have a Hubot named Gort running in our Slack channels. He does all sorts of useful stuff for us: deploying code, printing the company mailing address, showing the state of our analytics instances, alerting on the state of our sites and servers, making… Read More

A stage environment for Ember apps

In a previous blog article, I described how we deploy Ember apps to S3 buckets, and promised a follow up article about how we use a staging bucket to preview changes before pushing to production. In this article, I’ll describe how we added shared development and staging buckets to our Ember deployment setup. Our Ember… Read More

Deploying Ember apps to S3 and Cloudfront

How serving Ember apps from S3 and Cloudfront simplified dev environments, sped up builds and deploys, and made our production infrastructure smaller and more scalable Gridium’s Tikkit application has three separate front-end Ember apps that all talk to a common API. Our application uses a microservices architecture; each of our apps runs in a Docker… Read More

Search inside attachments with AWS Elasticsearch

Gridium’s Tikkit work order management system runs on a microservices architecture, with Docker containers managed by Kubernetes.  We’ve divided our application into small, reusable components, each of which runs in its own Docker container.  Kubernetes takes care of keeping the right number of containers alive and talking to each other.  We have containers that provide a messaging… Read More

Fast prototyping with AWS

I recently spent about a week working on a prototype for a new product idea. Another engineer and I needed to put something together quickly, so we could get feedback from potential customers that will inform the product. We already host our production servers on AWS, so I looked at the AWS console to see… Read More

Gridium Labs: Playground for data science

At Gridium, we have lots and lots of smart meter data. We have meter readings every 15 minutes for hundreds of thousands of meters, for thousands of days. We also have meter characteristics such as latitude and longitude, building square footage, and utility tariff information. We have years of hourly weather data from hundreds of… Read More

Kubernetes and AWS VPC Peering

We’re making a bet with our next generation of services at Gridium. Our bet is that microservices will serve us better than monolithic services, and we’re in the process of moving our existing services to this kind of architecture too. Our chosen backing technologies are Docker, hosted in AWS, using Kubernetes. These technologies are still… Read More