Simuliidae: an open-source design for hosting with containers

Simuliidae is a project of Blackfly Solutions, created in October 2018. We use the project as a basis for our managed hosting services. The goal of the project is to share tools and code for "open source" hosting of Drupal, CiviCRM and Wordpress, using Docker and containers.

Origin

In the summer of 2016, I had been providing managed hosting for Drupal and CiviCRM for about 10 years, on dedicated servers. My service used a "shared hosting" model that kept both machine and administrative costs low, at the cost of flexibility, scalability and security. While exploring new options for my next generation of configurations, I concluded that "linux containers" was the right technology for better flexibility, scalability and security, while keeping machine costs reasonable and providing a toolkit that looked promising for automation that would keep administrative costs low as well.

At the time, I came across Docker as a popular tool for implementing containers that had a growing community around it. I was particularly impressed with the "microservices" model and how the "dockerfile" file format is used for describing how those containers are connected to each other.

Evolution

Over the years, I've written lots of blog posts describing how the project has evolved, here:

And also here, in some more technical detail:

The first production install was in 2017, for the Law department of the University of Toronto.

Using Simuliidae

Like all tools, it can be used in multiple ways, and I expect some that I can't imagine yet.

The three primary intended use cases are:

  1. "Boutique" hosting services
  2. Staging and development site copies
  3. Testing

"Testing" is intended fairly broadly, e.g a service like Simply Test, or the use of these images for running automated testing.

Code, Help and Support

The project code is hosted here on github, with thanks for free hosting of public open source projects.

Images are built semi-regularly and hosted on docker hub, with thanks to Docker for sponsoring it as an open source project.

Issues can be posted to the github issue queue.

Additional questions can be directed to the contact form on this site.