Building a DevOps UI to manage thousands of sites across hundreds of servers
HighWire Press hosts more than 2,000 sites. Tired of manually maintaining our sites, and with technical drupalers in high demand, we knew we had to move to a user-friendly UI-based system for maintaining, auditing, and managaing our fleet of Drupal sites. We looked at hosted solutions like Pantheon and AquiaCloud, but our reliance on backend services made these hosted solution untenable. We decided to build it ourselves.
We spent a year building SMART (Site Management, Auditing and Reporting Tool), and the results have been transformational. SMART is a easy-to-use UI that allows users to add/remove machines from a cluster, clone a site, deploy a site, update code repositories, run drush commands, run site audits, perform content migration, install features, and change settings. SMART also provides an audit trail of when sites are updated and by whom, along with the ability to roll back updates. Our drupal developers are writing code again, instead of being bogged down in support.
In this session, we'll show you how we built SMART (hint: Drupal, Jenkins, Rake, and Capistrano), give you a tour of it's features, and talk about some of the pitfalls we ran into. We'll talk about the challenges of architecting a devops toolkit that can manage thousands of sites across hundreds of servers. We'll also talk about the operational efficiencies that can be gained by easily allowing anyone in the organiztion to clone sites (for development, testing, or demonstration purposes), and how freeing it is to have a user-friendly UI that allows non-technical staff to gain insights into the health and status of sites.
Monitor cluster health