By Corey Gale, Engineering Manager, DevOps

For the DevOps team at GumGum, process has been constantly evolving. Two years ago we shifted towards an Agile methodology for managing all of our work, including interruptive support tasks. Our implementation of Agile borrowed some elements from Scrum (like daily stand-ups and sprint demos) and combined them with the flexibility of Kanban (like continuous delivery).

While this new bump in process rigor fixed a lot of problems like clarifying project priorities and encouraging early discussions about scope, it also introduced a lot of new overhead. …

From my experience, it seems that most people throw an application onto Kubernetes (either with Helm or manually) and then think they can call it a day. Through our use of Kubernetes at GumGum, we have encountered a number of “gotchas” that we wanted to list here to help you cover your bases before launching your app on Kubernetes.

Step One: Configure Pod Requests and Limits

We will start with configuring a clean environment in which our pods can run. Kubernetes does a fantastic job at handling pod scheduling and failure states. One thing we learned, however, is that the Kubernetes scheduler can sometimes have a hard…

What is Terraform ?

Terraform is a powerful software from Hashicorp that allows you to write infrastructure as code in a declarative way to provision and manage any cloud, infrastructure, or service.

Terraform Workflow (Source:

The terraform plan command (similar to git diff output) is used to create an execution plan. Terraform performs a refresh, and then determines what actions are necessary to achieve the desired state specified in the source code.

What is Scylla?

Scylla is an Apache Cassandra alternative NoSQL database that provides low latency and high throughput at a fraction of the cost of other competitors. They reimplemented Apache Cassandra which was written in Java, using C++ to increase performance and utilize multi-core servers.

Why do we want to move away from Cassandra?

GumGum has used Apache Cassandra for the past 6 years. We stored 3 different types of data in there: contextual metadata, behavioral data, and ad performance data. However, starting 2 years ago, we started an initiative to migrate data out of Cassandra and into a managed service database. The reason for this was threefold. First, we wanted a…

Monitoring a system, application or any other IT component is one of the most basic and critical, yet often under prioritized IT process that all companies deal with.

The monitoring landscape has changed in ways that nobody would have believed in the last 10–15 years. The widespread popularity of cloud native applications, microservice-based systems and sprawling ephemeral environments introduce a host of new challenges, especially for legacy monitoring platforms that were designed for more static environments.

The Good Ol’ Days

A few years ago, monitoring at GumGum was pretty much a fairy tale: applications, servers, and services were pretty much…

Written by Walid Shaita on August 31, 2018

At GumGum, we work completely with AWS and have more than 100+ services to build, automate, maintain, and secure.

We are used to automating most of our services using Ansible on AWS but the more services you need to manage, the harder it gets to automate everything.

Moreover, Ansible is mostly a configuration management tool, which means they are designed to install and manage software on existing servers. We could technically use Ansible to provision most of the resources we need, but we realized that Ansible does not perfectly fit as it’s…

Written by Michael Hume on May 5, 2018

At GumGum we build alot of in-house web products. The development for these products follow a dev/stage/prod pipeline, but often times a single development environment is not enough. This post describes our migration to using traefik and drone to build out dynamically ephemeral preview development environments for our web products.

We run a typical dev/stage/prod pipeline for most our web projects. These ran under the convention of `<env>.<project>.domain` and have usually been a place to showcase an upcoming feature that needed review by our product team. …

Written by Florian Dambrine on September 6, 2017

This is a first post in the series of three posts on GumSmash, an In-House event driven auto-remediation engine based on Ansible, that we developed at GumGum. In this post, I am going to explain what is an auto-remediation system and why we chose to implement our own solution. In second part, I will introduce you to the GumSmash architecture.

The Platform team at GumGum is in charge of operating AWS datacenters in multiple regions and provides other operational services to different engineering teams. …

GumGum Tech Blog

Thoughts from the GumGum tech team

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store