For this project, we created a real-life, fully-functional Drupal 9 "base" installation upon which two phases of work were based; 1. Local development workflow and detailed guidelines with Confluence wiki documentation and 2. A continuous integration / continuous deployment workflow (cd/cd) workflow, detailed guidelines and Confluence wiki documentation.
The client approached ORION with a unique project in mind. A growing amount of technical debt was causing the organisation to spend increasing amounts of time and resources on repairing bugs as well as recurring and duplicate tasks and processes. In an effort to get the maximum benefit possible, CEPR needed a streamlined process for web development and deployment that could also be used as a “template” for all their upcoming Drupal upgrade website projects.
During the initial discovery phase for this project, we explored, captured and analysed the current infrastructure and setup in order to gain solid understanding of what the exact deliverables should look like.
One of the challenges of this project was the need to successfully combine the requirements of the following two main axes:
Audit the organisation’s websites (codebase, development practices, deployment workflow, local development methodology etc.) and create a map of shared requirements for all upcoming Drupal upgrades.
Create a fully functional local development environment tied to a fully functional ci/cd deployment workflow, including an up-to-date Drupal CMS installation with all the basic modules a modern application needs, as well as a fully functional Bootstrap SASS theme to be used as a base theme for the upgraded Drupal websites of the organisation.
The (mostly linear) nature of the project also made it clear that, in order to prevent spending additional time on correcting regressions or enhancing the functionality during the implementation phase, communication channels that would enable frequent feedback from the client were essential.
We also kept sharing our feedback on incoming requirements and also analysed possible consequences related to certain directions the project could take (e.g. technology stack to be used for local development in the organisation’s team based on the current and projected future experience of team members, making sure that the combination of local development practices and the deployment workflow we would need to build work together seamlessly, factoring in the lifespan of selected technologies and the need for updates before, during and after the delivery of the full project etc.).
A hard requirement for this project was to maintain the current hosting provider, as most of the organisation’s websites were hosted on the platform already. As a result, the deployment workflow phase of the project included a fully configured hosting environments setup on the existing hosting platform, including three non-production environments, DEV, TEST and STAGE and the main production environment, PROD. A challenge here was that the hosting platform is not extremely popular and bespoke logic had to be written from scratch to handle the deployment pipelines on Ansible and Jenkins. The logic allowed for automatically triggered deployments on environments based on repository actions. For example, GIT commits to the development branch automatically triggered a deployment on the DEV environment with the latest code updates. Similar triggers and variations of them ensured a fully functional ci/cd (continuous integration/continuous deployment) workflow, also catering for Drupal idiosyncrasies (e.g. performing updates upon deployment, importing configuration etc.).
All of the above, as well as utilising the experience of our Senior Cloud/DevOps engineer (for the highly complicated deployment phase of the project), ensured that we remained within the initially estimated budget.
We will soon share more details about the deliverables for this project. In the meantime, you can contact ORION to schedule a free discovery session for your project.