Ansible - Configuration management and infrastructure provisioning without containers

Even though I’m full steam ahead on the Docker train (it should really be a ship, to keep in line with the container metaphors), it was time to look at what everyone else is using for provisioning and configuration management. Here’s my overview of getting Ansible up and running using my laptop as the control node and a few EC2 nodes, as well as a brief description of the components. And judging by the quality of the documentation, which is […]

Advanced Docker Logging - Capturing Drupal's watchdog messages in Graylog

Premise: Capturing Drupal’s watchdog messages in a container Logging in Docker is complicated enough as it is, but it gets even more complicated when Drupal logging is involved. For most Drupal sites, logging with the Dblog module is not sufficient due to scale, and instead is being handled with the Syslog module. The result isn’t pretty, but works flawlessly and integrates with rsyslog, which is available for both Debian and CentOS-based operating systems. Problem: Where did the application logs go? […]

My first Alexa skill: control motorized window shades using Flask, a Raspberry Pi, and AWS Lambda

I recently started getting really into home automation and splurged on motorized shades from Hunter Douglas as well as an Amazon Echo Dot. The shades came with a nice physical control device called a “Pebble”, a hub, and a repeater. The setup, hardware, and iPhone app worked really well, but sadly no thanks to hunterdgoulas.com, which is my vote for “most confusing website” of the month. I may be overthinking their user interface, but the word escheresque comes to mind. […]

Scheduled events using AWS Lambda & Cron Jobs

Almost any application needs to be able to run tasks on a schedule. This is usually achieved by setting up cron jobs on a server to run periodically. When we bring containers into the mix, we’ll notice quickly that running a cron daemon inside a container goes against one of the principles of (at least) Docker: “Only run one command in a container”. Sure, there are ways to get around this easily. You could concatenate commands and run them in […]

This post describes a problem that seems custom to ECS: Using a single task definition for multiple environments, and is part of my mini-series of posts: Common challenges in containerizing your application with Amazon ECS. Problem Description During our migration to Docker and ECS, one of our goals is to have multiple environments (QA, Staging, Production) use the same containers and, ideally, the same ECS task definitions. In order to achieve this goal, each cluster of Docker EC2 hosts needs […]

Provisioning scripts for EC2 instances in Auto-Scaling Group AWS CloudFormation allows us to define MetaData (AWS::CloudFormation::Init) that gets normally executed as part of an EC2 instance UserData. This is particularly helpful when launching EC2 instances as part of an auto-scaling group, as it allows us to run the same provisioning scripts on every instance in a more organized fashion. Problem: Updating a running EC2 instance in an Auto-Scaling Group When we modify the UserData that’s part of an AutoScaling LaunchConfiguration, […]

There are a multitude of good articles that explain in detail how to setup service discovery using the above services. Instead, this article will focus on the challenges in getting Service Discovery setup on AWS. Scalable Architecture DR CoN: Docker, Registrator, Consul, Consul Template and Nginx Consul Template for transparent load balancing of containers – Development the way it should be Reasons for using Consul as a service discovery tool Our primary reason for setting up Consul is the move […]

Recently, I started working with one of the best Titanium Titans on one of my mobile projects. For those people who aren’t familiar with the concept, Titans in the world of Appcelerator’s Titanium are the thought leaders of the project and, obviously, wicked smart developers. In one of our conversations, he mentioned that a lot of his clients need Drupal expertise and want to use Titanium with Drupal 7, and he asked me about a good introductory book for himself. […]

Drupal Mini Series: Drupal 7 Multi-sites Configuration

If you’ve ever read all the way through a Drupal book, you will have found those short chapters at the end that mention some of Drupal’s more advanced features such as multi-lingual sites. Whenever you setup a Drupal installation that requires the word “multi”, you’d wish that those 2 short pages would be filling a whole book. That’s exactly what Packt Publishing has done with a cool new series called “Drupal Mini Series”: A compact, roughly 100 page long book […]

One of my clients’ website viewers are moving from desktop to mobile devices. And of course, he is showcasing a lot of music on his website, currently being displayed using a Flash frontend player, which can’t be viewed on iOS devices. To fix that, I recommended switching to jPlayer, a HTML5-based player that uses Flash as a fallback for browsers that don’t support it yet. This post is intended to provide the missing pieces of information for those of us […]