We just moved our Drupal site to DigitalOcean and powered it with fully open-source, Kubernetes infrastructure that you could also be using. This is thrilling for us, and will be for you too!
A Little Background
Our very own Tess has been giving the session, “Return of the Clustering: Kubernetes for Drupal” during the last few months at Drupal camps across the U.S. In it she explains how it’s theoretically possible to deploy Drupal in production on a Kubernetes infrastructure. Drupal and Kubernetes don’t naturally play together, but we’ve done some serious work in devising a solution in which they would. For the last six months, Tess has been deep in research and development testing a solution, and last week we were confident enough to launch our own TEN7 site using it.
Why is This a Big Deal?
Running a Drupal site on Docker in a production environment using open sourced Kubernetes object descriptors has never been done before—not until now, and it’s all open source.
“For the longest time, we’ve had a disjunction between what we use to develop sites locally, test sites locally, and what ends up on production environment,” said Tess. “It happens a lot, it’s difficult to get it to be the same thing. You need many more bits of technology, best practices and discipline to pull it off. Kubernetes is becoming the de facto clustering standard, and they run Docker containers. We already do that locally. We’ve invested time and effort into developing those containers so they run in production.”
Using Kubernetes also solves a problem with scalability on VPS (Virtual Private Server) and shared hosting. “There’s a happy trough in the price curve for hosting at the far end,” said Tess. “If you don’t need the hosting to do much, you can do a lot for very little. But as soon as you get more traffic and need it to do more things, it gets really expensive.”
“If your only choice is to make the server bigger, that has exponential cost. If you wanted to avoid that, you can scale out instead of scaling up. If you scale out, you need technology to have servers coordinate with each other. That’s where Kubernetes comes in: it orchestrates the containers on the servers in a timely and flexible fashion.”
You used to need hosting companies to do the hard work of infrastructure and container orchestration, but Kubernetes does all of the hard work for you. “You don’t have to build cluster orchestration, and you don't have to solve complex problems,” said Tess.
We still needed a partner to furnish the Kubernetes instance, and we chose DigitalOcean. They were one of the first companies to offer Kubernetes infrastructure. “DigitalOcean support for Kubernetes is impressive,” said Tess. “I didn’t expect a hosting company to offer that amount of flexibility, versatility and support versus the cost. We could do this without DigitalOcean, but we really like them. They’re more approachable than Google.”
Why This is Awesome for You
The success of this solution means we can roll out Kubernetes-based Drupal site hosting for our clients. And because we’ve open sourced the description and setup of the clustering itself, you could do it for yourself and your own clients too!
More Control Over Your Site and Fewer Hosting Limitations
The hosting on which your website code resides is the silent partner of your website, and it can either enable your website to be powerful, or curtail its development.
Agencies that build websites typically don’t do the hosting for clients; they usually just farm it out to hosting companies with whom they have a business relationship. But your website will pay the price if the hosting isn’t up to snuff. “There are a lot of things that you can’t do with some of the popular hosting companies,” said Tess. “If you want certain capabilities, you might get into the ‘if you have to ask you can’t afford it’ category.”
“Even if the providers let you do certain things, they might make it so you have to modify Drupal in ways to make it work on that particular host,” said Tess. “As a result, it won’t work well elsewhere. We call this ‘vendor lock.’”
What we’ve done is create an open-source clustering standard that isn’t tied to hosting. “We're using open source containers and orchestration, and Kubernetes has a vendor isolation layer built in,” said Tess. “All this allows you to avoid vendor lock entirely! Our partner DigitalOcean furnishes the Kubernetes instance and they’ve installed the infrastructure around it. There’s nothing vendor-specific about it. We’re just allocating the cluster.” We use their object store called Spaces for file storage, but you could use any other S3 compatible object store on the market.
This Solution Helps Us Help You
The benefit of Kubernetes-based hosting for TEN7 clients is huge: “We can offer purely open source hosting that provides you top-tier hosting functionality, and we can do that at a lower price point than our competitors can,” said Ivan Stegic. “What we’re offering comparatively blows a lot of other agencies out of the water. For a comparable price, we can offer more scalability, bandwidth and versatility, which means we can do more ambitious sites. We’ll also have better tuning and finer control over the environment, allowing us to support our clients better.”
Using this Kubernetes solution also aligns with TEN7’s love of open source products. “We want to be independent, and using a hosting solution that is supported in the open source and is vendor agnostic, which aligns with our commitment to open-source products and services,” says Ivan Stegic.
You Could Host It Yourself Too (and We Won’t Be Offended)
We have long relationships with our clients, but if at some point they want to do their own Kubernetes hosting in the future, they can! They can pull the same containers and workflow we’ve been using, and put it on their own Kubernetes host. Since we’ve already architected the hosting, reusing our solution will be easier. “You don’t need to be nearly as much of an architect as I had to be in the first place!” Tess said.
We’d Love to Care for Your Site
We’ll be rolling out this solution to existing TEN7 Care clients over the next few months. In the future, we’ll experiment in setting up a Flight Deck cluster, for people to set up Kubernetes hosting for themselves!
Drop us a note if you’d like TEN7 to care for your Drupal site!