One of the services we offer our clients is to coordinate and manage the hosting of their websites. We’ve experimented with a number of different hosting options over the years, and our latest experiment has been with Pantheon.
Pantheon is one of the biggest providers of Drupal hosting (they also host WordPress sites), and so far, we’ve been really happy with the experience. We chose Pantheon because we were looking for more flexibility in our workflow, as well as with our ability to interact with our servers and development environments, and we haven’t been disappointed.
If you or a client have a Drupal website and are determining where to host it, or you are looking to change hosts, consider Pantheon. The service comes with a number of benefits, but as a developer, there are two key features that really make it stand out to me.
In the past, we’ve hosted some of our clients’ sites on servers in a managed, custom-built, environment. While the sites generally performed well, the workflow for developing the sites left a lot to be desired. Deployments, including to development environments, typically required a number of steps, with a lot of pushing to and pulling from repositories, and sshing in and out of servers.
It was complicated. And it wasn’t efficient.
With Pantheon, deployments are automated and very simple. Depending on what environment you’re deploying to, you either need to simply push your code to the git repository origin, or tag and push a commit. Pantheon does all the heavy lifting to automate the process. You can even use their UI to move code, database, and files between development, stage, and production, though we prefer not to rely too much on their workflow tools.
When you create a website, you typically have three different environments that you’re working in: development, stage and production (dev, stage and prod is what we usually call them, or dev, test and live in Pantheon).
Here’s a quick breakdown of each environment:
- Development: This is where you can create and test code without worrying about breaking anything on a live site.
- Stage: The stage environment is a nearly exact copy of production. This is where you can do a final test of your updates before pushing to production. Because stage is a copy of production, you can be confident that your updates will not break anything in production once deployed.t
- Production: This is your live site.
Understanding that differentiation makes it easier to appreciate Multidev, what I think is the best feature of Pantheon. Multidev allows you to quickly clone any one of those environments — dev, stage or prod — and create a new environment for code development. It allows you to isolate your work without being affected by other developers or by what you’re doing as it relates to other specific feature requests.
Here’s an example. Imagine you have a client whose website is live (in production). That client decides they want to update the standard hero module that exists on the site so that is has the ability to display a background video. With Multidev, you can go in and create a cloned environment for just that feature request. And because every environment you create has its own unique URL, you can then share your changes with the client when you’re ready. The client can verify functionality and give their approval before you migrate the changes to production. You can even set the URL to be password protected, which is just a nice extra feature.
The reason that cloned environment is so important is because it allows you to build features independently of work that other developers may be doing. Imagine that with that same original hero module, a different person submitted a request to change the font. Now all of a sudden, there are simultaneous requests on a single element. Without Multidev, these changes may end up being deployed to the same dev environment at the same time. At the very least, it could be confusing for the requestor to see an in-process change to something they didn’t know was even requested, but at worst, maybe the two feature requests end up conflicting with one another.
Thanks to Multidev, you can keep things totally separate. The requestor who wanted the video background will see that update, and the person who wanted the font change will see that. When both are approved and merged in the dev environment, that would be the right time to address any conflicts associated with those two feature requests.
Pantheon has a lot of other great features some of which we haven’t explored fully. Creating and restoring from backups is a breeze, and you can get all types of reports about the health of your site, such as security issues, PHP errors, and available module updates. Pantheon even provides upstream repositories you can use to update Drupal core.
Do you use Pantheon?
What do you think? I’d love to hear your feedback.