Streamlining Development with Our New Dev Deployment Strategy
In the fast-paced world of software development, efficient and reliable deployment processes are crucial. A Logistic software company faced challenges with their existing deployment strategy, particularly when it came to testing service dependencies before deploying to QA. To address these issues and enhance their workflow, we devised a new Dev Deployment Strategy that directly deploys feature branches to the Dev environment. Here’s a breakdown of why we made these changes, what they entail, and how they are implemented.
Why a Change Was Needed
Our client’s previous deployment process often led to failures when deploying directly to the QA environment. This was mainly because service dependencies were not thoroughly tested beforehand. The team wanted a way to test their code in a lower environment before merging it to QA, without the added complexity of merging into the dev branch first. The primary goal was to streamline the testing and deployment process, making it faster and more reliable.
What the New Strategy Involves
After extensive discussions, we established a Dev Deployment Strategy that allows feature branches to be deployed directly to the Dev environment. This approach offers several benefits:
- Risk Reduction: It minimizes the risk of untested code being merged into the QA environment.
- Efficiency: It speeds up the testing process by allowing developers and testers to work on feature branches without needing to merge them into a central dev branch.
- Dependency Testing: It facilitates microservice dependency testing on feature branches, ensuring that any issues are caught early.
- Simplified Merging:By eliminating the need to merge feature branch code into a specific branch for testing, we save valuable time and reduce complexity.
How We Implemented the New Strategy
To set up the Dev deployment workflow quickly, we leveraged GitHub Action reusable workflows. Here’s a step-by-step look at our implementation:
- Java JAR Versioning: We automated the process of changing the Java JAR version from V2 to V1 , ensuring that both JARs remain separate.
- Repository Integration: We integrated the new DEV deploy workflow into over 30 repositories.
- Daily Refresh: Using cron jobs in GitHub Action, we refresh the Dev environment with the latest changes from QA every morning.
This setup ensures that the Dev environment is consistently up-to-date with the latest stable code from QA, while also allowing feature branches to be tested independently.
The Value of Our New Strategy
Implementing this new Dev Deployment Strategy has brought significant improvements:
- Reduced Deployment Failures: By catching issues in the Dev environment before they reach QA, we’ve reduced the risk of deployment failures.
- Faster Testing: The streamlined process speeds up testing, allowing developers and testers to work more efficiently.
- Enhanced Dependency Testing:Feature branches can now be tested with their dependencies in a realistic environment, improving overall code quality.
- Improved Release Process:By reducing the need for frequent merges between the dev and QA branches, we’ve made our release process smoother and more predictable.
- Better Time Utilization:Developers can now test their code directly in the Dev environment, optimizing their time and efforts.