We currently use Managed Solr (Solr 7.2.1) service from SearchStax and needed to put some...
The Value of Continuous Integration and Continuous Deployment with inriver PIM
The need for efficient and reliable deployment processes has never been more critical. Leveraging Continuous Integration and Continuous Deployment (CI/CD) can significantly enhance development workflow, reduce errors, and improve collaboration among team members – making it an essential component to delivering fast, high quality implementations of inriver and other software platforms.
Without setting up CI/CD for inriver projects, deployments are manual and the deployment team must remember everything that needs to be deployed (code updates, settings, etc.) and every extension that requires updating after a code change. Needless to say, this complicates deployment and leaves a lot of room for human error.
The team at Aperture Labs aims to deliver efficient digital solutions that maximize our client’s budget, are easy to adopt, and can be maintained with ease. Leveraging CI/CD during implementation is one of the many ways we make this commitment come to life for our clients.
If you’re curious about how CI/CD is leveraged to make implementation more streamlined, read on!
Implementation
The time it takes to set up CI/CD for inriver implementations is worth the effort every time. Feature branches are created and pipelines are configured in Azure DevOps to watch these branches, set them up for release, and sync extension settings.
Creating Environment Branches
In our implementation of CI/CD below we have set up an environment for each of the inriver environments we wish to automate our deployments to. Your team can then work using your normal branching strategy and, once you are ready to deploy to inriver, merge into the environment branch.
The pipeline will then ensure that everything builds and is ready to be deployed. This also allows you to pull these branches down and ensure you’re working the exact code that is deploying to inriver.
Configuring Pipelines in Azure DevOps
Once the branching strategy is in place, the next step is to configure the Build pipelines in Azure DevOps. These pipelines are responsible for building the project and preparing the package for deployment to inriver.
At a high-level, the steps of the pipeline configuration are:
- Setup trigger for the branch. Upon code being committed to DEV branch, the DEV pipeline runs
- Install Nuget to get the inriver nuget package and any other dependencies
- Perform environment specific extension settings transformations (optional)
- Build the solution to compile all .dlls needed for deployment
- Create a zip file with the output of the build
- Ready the Build artifacts for release
At the end of the pipeline running, we should have an auto-built package zip ready for deployment to inriver. We’ve also included a powershell script responsible for the publish of this zip file into the Build artifacts.
Setting Up Release Pipelines
With the Build pipeline in place, the next step is to set up release pipelines for each branch to deploy the package to inriver using its REST API. This can be configured to release automatically or manually.
The release pipeline:
- Grab the last Build artifacts from the Build pipeline
- Execute the included powershell script using the environment specific parameters (environment name, zip file name, rest api key, etc.)
The included powershell script will execute the following:
- Call inriver’s rest API to upload the zip package file
- Call inriver’s rest API to restart service
- Call inriver’s rest API to execute a custom scheduled extension to update extension settings (optional)
- Call inriver’s rest API to restart service again after settings update (optional)
Benefits
Implementing CI/CD with Azure DevOps for inriver projects offers numerous advantages:
- Faster deployment cycles: Automated pipelines enable quicker releases, reducing time-to-market
- Improved reliability and consistency: Automated builds and deployments ensure consistent results, minimizing the risk of human error
- Enhanced collaboration: Clear branching strategies and automated processes foster better collaboration among team members
- Reduced manual errors and overhead: Automation reduces the need for manual interventions, decreasing the likelihood of errors and the associated overhead
Conclusion
In summary, setting up CI/CD for inriver implementations using Azure DevOps is a game-changer. It accelerates deployment cycles, enhances reliability, fosters collaboration, and reduces manual errors. By implementing something similar to the steps outlined above, you can streamline your inriver PIM projects and achieve greater efficiency.
Stay tuned for our upcoming article that dives deeper into the specifics of automating updates to extension settings, including the transformation of settings for environment-specific settings.
We're here to help you navigate the path to a high-value, high-ROI implementation of inriver. If you want to learn more about the specifics of setting up CI/CD, we're be happy to connect!