Unlike the work Four Kitchens does on most new systems, this was not a “greenfield” infrastructure project. Yale has established systems for deployment and monitoring, as well as shared database resources. Four Kitchens worked with Yale to decide, on a case-by-case basis, whether it was possible and well-advised to use existing tools and systems. In some cases, there was no choice: certain management tools were mandatory.
Given the department’s extensive Java experience, we developed a deployment strategy using Ant and Hudson, two tools extensively supported for their other projects. We also worked with ITS to integrate required configuration into their cfengine repository, properly configure their F5 firewall to support Drupal, and integrate deployment tools with their shared MySQL infrastructure. We developed documentation of all procedures and organized the content on their internal wiki.
Yale uses an internally developed single sign-on tool called “CAS.” Four Kitchens audited the security of the existing Drupal CAS module, made improvements, and configured the tool to work with Yale’s CAS servers. Additionally, Four Kitchens worked with Yale to identify where Active Directory integration would be sensible and where it would be better to build custom privilege-management tools.
After initial system delivery, Four Kitchens worked with Yale to identify tools for packaging configuration and module selections as “features” that could survive the development, staging, and deployment workflow. We developed a base set of features using the Features module and trained their internal team to do the same.
Finally, Four Kitchens designed workflows allowing themes developed outside of ITS to be tested and merged back into the main tree with minimal administrative overhead. Using distributed version control, non-ITS departments work independently and deliver their content to ITS for review.