How I Automated Deployments
And Saved 200 Hours of Work per Year.
Context
In 2020, while working in the eForms and eSignature Center Of Excellence (EECOE), we began to work remotely due to the COVID-19 pandemic. Soon afterwards, I noticed that it not only took a long time to deploy large Quadient Inspire Content Manager (ICM) code packages - think over 200MB - it also would cause significant performance degradation on my work laptops due to the significant bandwidth usage. To export or deploy a 200MB ICM package, it would take about 10 minutes.
In the EECOE, there are multiple in-flight projects at any given time - which means dozens of ICM packages are exported and deployed each week. Therefore, the time developers would spend deploying ICM packages would amount to a few hours per week.
The Build
I thought: instead of using our own laptops to deploy ICM packages, is there a way to deploy these packages in the backend? There was.
Using Quadient Inspire Scaler (a backend workflow orchestration platform), I developed two core backend APIs:
- ICM package export - which exports files and folders recursively from a specified ICM path to an ICM package on the filesystem
- ICM package import - which imports an ICM package from the filesystem
The above workflows were deployed to all environments so they could be called on each server.
Next, I developed a Scaler orchestration workflow that took in a set of instructions (i.e. what to export - if anything - and from which environment; and where to deploy). This deployment orchestration workflow handled everything from determining the naming convention to transferring the package to other servers.
Finally, after all the core backend APIs and workflows were in place, I developed a web app and backend API that tied it all together. The web app allowed users to select which environment to deploy from, what to deploy, where to deploy, package settings, and import settings. As with the rest of the EECOE Web Apps, the deployment app came complete with an authentication system and roles which determined who could deploy ICM packages.
The Result
Now that deployments could be done through a web app with a few clicks, the time required to deploy ICM packages was cut back dramatically. The new deployment process provides key benefits:
- Fast ICM package deployments - most are complete in under 30s
- No performance degradation due to large ICM packages
- Real-time updates on deployment status
- Automatic documentation created for each deployment, including space for notes about what changed
- Standardized package naming
On average, the new process saves 5 minutes per package export, 5 minutes per package import, and 1 minute per deployment for updating documentation. In the 2022 fiscal year, there was:
- 1,190 deployments
- 1,600 packages deployed
- 531 packages exported
As a result of the new deployment process, I saved my team 200 hours per year and enhanced our deployment documentation.