Skip to content

Laravel DevOps for HeadChannel

HeadChannel, a software development company, was in need of assistance in on-boarding a Laravel version 8 codebase for a project they were working on. They reached out to Adhoc DevOps, a team of experts in DevOps, to help them achieve their goals. The HeadChannel team had specific requirements including providing a local development environment, setting up a new server, and creating a Bitbucket deployment pipeline. Adhoc DevOps took on the challenge and implemented a number of solutions to ensure consistency and reliability in the development process, including the use of DDEV, Bitbucket, and Ansible. Through our expertise, Adhoc DevOps was able to successfully transition the project from a single developer project to one that can easily support multiple developers, regardless of the type of workstation they are using. The project is now equipped to scale quickly and accommodate more developers with a streamlined and consistent deployment process for both codebase and server maintenance related changes.

The brief

The requirements for the projects were:

  • Provide a local development environment
  • New server setup
  • Bitbucket deployment pipeline

Our approach

Experience has led us to understand how important a consistent and reliable local development environment is for the ongoing success and productivity in a development project. Developers can lose days getting the local development environment working which, ultimately, has a knock on effect to delivery time-frames.

DDEV

Our first step was to get the Laravel 8 project running in DDEV. DDEV provides a consistent cross-platform development experience. In other words, it doesn't matter is the developer is using a Windows, Linux or Mac workstation the steps for running the project in DDEV are the save for all the developers. We also needed to customise DDEV to support the Laravel Hot mix feature which allows developers to make CSS or Javascript changes and watch those changes take effect in real-time without needing to reload the browser and wait for the change to take effect.

Bitbucket

With the local development environment documented and ready for the developers to start working on we next set about creating a CI/CD pipeline in Bitbucket. Secrets were parameterised and saved as variables in Bitbucket, pipeline parallelisation was used where possible, minimalist Docker images were selected for the relevant stage of the build and caching was enabled to improve performance.

Ansible

The last part of the project was the server setup. Best practice calls for the server setup to be scripted and repeatable. Using Ansible we created a playbook that could be used to either setup a server from scratch, add a new instance of the application to an existing server or simply perform a deployment. The Ansible playbook was attached to the Bitbucket pipeline so that a single commit then deploy process could be used for multiple possible actions.

The outcome

Through the changes applied by Adhoc DevOps the project has transitioned from a single developer project to one that can quickly support several developer regardless of the workstation type (Windows, Linux or Mac) that they are using. Deployments and server maintenance tasks have transitioned from a single person process initiated from the server to Bitbucket CI/CD pipeline managed process. The outcome is that the project is now in a position where it can scale quickly to accommodate more developers with a streamlined and consistent deployment process for both codebase and server maintenance related changes.

"The solutions provided by Adhoc DevOps have transformed our project, making it scalable and developer-friendly. We appreciate their dedication and would recommend their services to any organization in need of efficient DevOps solutions."

Andy Green, Managing Director, 15th May 2023