Adopting Pantheon has greatly improved Urban Insight’s ability to serve our clients. Pantheon is perhaps best known for its best-in-class managed hosting services for Drupal and WordPress. But they are also on the leading edge of pioneering a variety of practices and tools designed to improve productivity, called “WebOps.”
These are a few of our favorite of Pantheon’s WebOps tools that we’ve adopted to be more efficient for our clients.
Multidevs are development environments. They allow a developer to clone the entire stack (code and content) to work independently, then merge the code changes back into the main master site.
Multidev is great for troubleshooting. We can clone any environment and make changes including copying databases from any other environment to isolate issues. For new site features or major theme updates, we keep development progress separate from security updates which simplify deployments. By allowing for more environments, we don’t need to worry about stalled development on one feature interfering with other code changes.
Image 1: Example of how Pantheon Multidev works.
Multidev also enables the team to collaborate more effectively. Multidev environments allow individual contributors to be involved immediately in a project with a low risk of breaking any code, rather than waiting on the sideline for the project to get to a point where they could contribute in a traditional workflow.
Learn more about Multidev.
2. Lando Plugin
One of the greatest inefficiencies for most developers is setting up an environment on their personal computer that has the same versions of all the software, databases, and code that is running on the production website. Lando is a popular and open source push-button development environment that you can host on your computer (or in the cloud).
Pantheon’s Lando is exceptional at duplicating Pantheon environments in local Docker containers, including the web server, database server, Redis cache, varnish cache, and even Apache Solr server. A developer can easily pull down a stack of services/containers to effectively run a site locally that’s OS agnostic and consistently structured among teams.
Previously, each developer had her/his own set of tools or stacks to serve a website locally. This created inconsistencies between developers and remote environments. For example, a developer may have had PHP 7.2 installed, but the remote Pantheon site was using 7.4. This inconsistency could cause errors in one environment but not the other. In addition, software updates and third-party package managers were used to serve and build local site architecture. The versions initially provided could change or a configuration could reset unknowingly during an OS update.
Pantheon Lando mimics the Pantheon hosting environment so well that the environment variable `PANTHEON_ENVIRONMENT` is also available. Your Drupal site actually believes it is running in the Pantheon environment, so you don't have to create the usual `settings.local.php` file to provide database credentials. You set up the local dev site using the recipe for Pantheon specifying the source of the code, files, and database from your choice of hosting environment; `dev`, `test`, or `live`, and you get the site up and running in a few minutes.
Lando is particularly useful for developers who need to quickly run updates on many sites. Once you’ve started using Pantheon’s Lando plugin and experienced its power and convenience, it is hard to go back.
Learn more about the Pantheon Lando Plugin.
3. Terminus Command Line Tool
The Terminus Command Line Tool (CLI), enables you to do anything you could configure in the Pantheon administration dashboard on the command line and in custom scripts. Terminus also provides advanced interaction with all remote environments. Not only does it allow developers to utilize all platform features from the command line, but it also provides additional tools and plugins, and is a method for easily running Drupal-specific CLIs, such as Drush or Drupal Console commands.
We use the CLI to easily execute commands remotely on any Pantheon site. For example, if you need to clear Drupal cache on a test site, you can execute a command from your local environment to do that using Terminus (For example: lando terminus drush site-name.test -- cr) without having to login into the Drupal admin or ssh to the server. Other favorite uses of terminus are creating multidev environments and simplifying access among teams while providing customizable features on a per-site basis.
Terminus has numerous plugins that extend its features. Two of our favorites are Site Clone, which copies the code, database, and files from one Pantheon Site Dashboard to another, and Drupal Console, which runs Drupal console commands on Pantheon sites.
Image 2: Example of Terminus Command Line Interface
Learn more about Terminus CLI.
A real game-changer that we are actively testing is Pantheon Autopilot. Providing outstanding support for Drupal and WordPress websites means applying security patches and code updates to Drupal and WordPress. Applying these updates is laborious, and requires careful testing after the upgrade. This is commonly developers’ least-favorite responsibility, especially when you’re managing 25, 50, or 100+ websites.
Autopilot on Pantheon will automatically detect when new updates are available, perform the updates for your site’s WordPress or Drupal site, plugins, and themes in an isolated Multidev environment. Once the updates are applied, Autopilot will test the updates with its automated visual regression testing tool. Once testing is complete, Autopilot will either notify you that updates are ready for deployment, or will automatically deploy the updates for you.
Image 3: Example of the Autopilot visual regression testing tool
Learn more about Autopilot.
With these WebOps tools from Pantheon, Urban Insight’s development productivity continued to increase to better serve our clients.
Special thanks to the Urban Insight developers who nominated and discussed their favorite tools: Ron Golan, Ki Kim, Kyle Levitan, and Walter Velasquez.