For Quack Hack 2014, ‘Team Served’ took the chance to conceive and develop Caddie: an internal web app to streamline how we manage Cyber-Duck’s servers. Caddie’s dashboard aimed to monitor and configure servers, so developers can quickly create and deploy beta websites, used to demo projects before launch.
The Problem: Managing multiple domains
Ben, Andrew and Cynthia – or ‘Team Served’ – were inspired to conceive and develop a handy server management tool, to pull data about each server from multiple sources (such as Rackspace) and compare via a single dashboard, with an attractive user interface.
This is an especially important task, given how often we create beta websites, which are used to demo projects privately to clients before launch. At the moment, creating these demo websites, updating the DNS records and deploying to servers can be a lengthy task, as data must be collated from different places. The collation of data and automation of some tasks via the ‘Caddie’ dashboard would help us to further optimise how we manage and monitor Cyber-Duck’s servers.
Team Served combed through the vast amount of data they could pull for each server, carefully defining the key stats to display on the Caddie dashboard, which developers would need to see at a glance for each server; ideas included load average, memory use and uptime. They quickly put together a mock-up of the main ‘Server List’ page, aiming to get an idea of the final product they were working towards, and to begin developing in the browser as soon as possible.
From this, Ben worked hard on the tricky task of integrating the back-end with our hosting partner Rackspace’s Cloud API, aiming to pull data from the Server and Monitoring APIs for the dashboard. Integrating with such a high volume of APIs was one of the trickier aspects of the project. The DNS API was used to list and create new demo domain entries, to help automate some of the tasks involved when creating a new beta website to showcase projects before launch. Ben enjoyed the opportunity to contribute to the ongoing Rackspace PHP API Github project, by submitting a pull request and reporting a few issues.
Meanwhile, Andrew created the design of the final dashboard; his main priority was to distill the complex, technical data so the status of each server could be understood at a glance, even in comparison to others. He used a clean, simple style for graphics and typography across the dashboard, with key data in the ‘Server List’ overview. Further detail could be found in the individual pages for each server, domains/hosted domains, and DNS page. Cynthia flexed her front-end skills, fully coding all of these designs.
Although Team Served were happy to achieve their MVP for Caddie in just 24 hours, as the server management tool has such a high potential for internal use, they already have an ambitious list of ideas for future development. Beyond Caddie’s current collation of server data, the next step would be to integrate with our puppet configuration, so new site deployments can be pushed out to live servers at the click of a button within the app.