Promises … WordPress In Docker

Over a year ago, I promised to move this blog off of traditional hosting and into Docker. Holy crap, has that been a lot tougher than I thought…

First of all, there’s literally dozens of frameworks to choose from. There are hundreds of tools and probably hundreds of thousands (if not millions) of images to examine and learn from.

I quickly discovered that there wasn’t really any fleshed out frameworks. Sure, there’s orchestration frameworks (for the ops side), and there’s images for the developers, but it didn’t seem like anyone had really thought from a devops perspective. So, I went digging to learn what I needed to learn to build it.

I (naturally) jumped in and never really made it back to the surface. As with most things in tech, the rabbit hole never ends…

That being said, I decided (mostly at frustrations with the old vagrant environment) to redesign the development environment at work for our consumer facing product — which, surprise, is WordPress. The project was called cutter, named for the fact that the original implementation actually “cut” out a piece of production data for local use.

I spent the better part of six months, late at night — and every once in a great while, actually during work — building this thing up. Naturally, there’s a lot of technical debt (the WordPress implementation still uses blogs.dir … yep) and quite a bit of churn. So, its been a gradual process.

Several days ago, I remembered my promise and decided to take what I learned and re-engineer WordPress. I asked myself: If I were to design the infrastructure and code in such a way that allowed WordPress to operate in a stateless way, how would I do it?

If you know anything about WordPress, you’re probably laughing and trying to decide whether to pity me, or call me a fool. Well, lucky for you, you don’t have to decide; someone already figured most of that part out. BedRock already figured most of this out.

BedRock is an attempt at making WordPress immutable. I don’t believe this is actual possible, but I now know a few tricks from Docker land to make it practically immutable.

So, as I was saying, how would I rethink the architecture, from a coding and infrastructure standpoint? Please meet Clam … a new project with a different perspective on Docker and mutability in the filesystem and a lightweight framework for building dockerized applications on a local machine.

As far as I can tell, it is one of the first projects to be a multi-container deployment of WordPress that is opensource. Yet, there is so much more to go…

One step at a time … just one step at a time…

Expect more details of this project in the future…