Topic: DevOps

A Tale of Three Docker Anti-Patterns

Docker is the talk of the software development industry right now. Though some, like @monkchips, think that the smart money is on Otto — users and vendors alike are looking at containerization. Early adopters of Docker are experiencing a mix of fervor, frustration, and ultimately, for some, enlightenment. If you’re completely new to Docker, you can familiarize yourself with the basics here: […]

The Importance of Trying New Things

One of my favorite #CTCTLife events is approaching — our annual Engineers4Engineers (E4E) conference is happening in Waltham on Friday, September 18, 2015. A continuing theme of the E4E conference is Making Engineers Better. Whether it be increasing the depth of a skill, expanding the breadth of one’s technical toolchest, or growing creatively, E4E is […]

The Seven Habits of Highly Effective Puppet Users: Treat Puppet like code

Editor’s note: This is the second in a series of puppet habits written by David Danzilio. Of all the trends in operations, infrastructure as code is a major game changer. Infrastructure as code has brought a lot of new people—many of whom don’t necessarily consider themselves developers—into the software development world. This is, understandably, a strange […]

The Seven Habits of Highly Effective Puppet Users: Habit 1

I gave a talk at PuppetConf 2014 entitled “The Seven Habits of Highly Effective Puppet Users” based on a collection of observations that I’ve made over the years regarding high-functioning Puppet users. These users exhibit common behaviors that go far beyond policies and procedures. These behaviors are broadly understood by team members and nearly universally […]

Space: the Final Frontier – a story of MySQL Compression

Space: the final fontier. Space, as in disk space, that is, was the driving factor behind a recent data compression project I worked on, along with a whole host of individuals and teams at Constant Contact. Due to ongoing data growth, my team was tasked with finding the best option for compressing data within the Contacts […]

Deployment Automation for Continuous Delivery, Pt. 2

In the previous blog post, I shared with you the various environments we have and how we use them. I also shared how we deploy applications using CD (Continuous Delivery) and went over the various technologies used for CD deployments. Today, I’ll take you through the step-by-step process that we use for creating our Jenkins […]

Deployment Automation for Continuous Delivery Part 1

I want to share with you the improvements we’ve made to our deployment automation to support Continuous Delivery (CD). In this blog post, I’ll describe how we deploy our applications using CD. Today, our development teams are looking for ways to get features and bug fixes out into production as quickly as possible. A small […]

Automatic Cluster Membership with Puppet

Overview Recently, I was tasked with setting up a HA solution for our monitoring servers. I decided to use Linux HA and set up an active/passive cluster, one per environment. We use Puppet for configuring and deploying our services, so a Puppet module that would bootstrap, install, and configure multiple, different Linux HA clusters was needed. […]

Cassandra and Backups

Cassandra is a peer-to-peer, fault-tolerant system. Data is replicated among multiple nodes across multiple data centers. Single or even multi-node failures can be recovered from surviving nodes with the data. Restores from backups are unnecessary in the event of disk or system hardware failure even if an entire site goes off-line.  As long as there […]

Server Provisioning Automation – Part 2

In my previous blog post about server provisioning automation, I described our pre-provisioning phase and how we automated the out-of-band interface configuration and make machines remotely accessible and ready to kickstart.  In this installment, I go through the provisioning phase and show how we use Puppet to automatically kickstart physical machines. The Challenge In the […]