Continuous Integration & Deployment
With build processes ever growing in complexity, continuous integration and automated deployment has become an essential role in today's development cycles. As the build requirements for geico.com increased in complexity with the addition of pre-compilers, CDN refreshes, and security code scans, a more automated system was needed to handle all these tasks.
My work with the CI/CD system included the creation of a completely new process for team members to learn and become familiar with. Shell scripts were created and triggered via cron schedules which would build, integrate, and deploy code on a daily basis. This procedure was applied to several geico.com web properties and drastically cut down on the need to request new builds for various sites and test environments. Additional tasks such as security code scans and CDN refreshes were also integrated into the scripts to avoid having developers perform manual work.
In addition to a standard biweekly release cycle, the opportunity for daily code deployments emerged with the new automated system. Minor code changes that didn’t necessitate a full release cycle could now be delivered on a daily basis, completing business goals at a much more rapid pace. The newly devised process continually integrated daily production changes into the longer biweekly release cycle, ensuring that all code remained up to date for each upcoming deployment.
The project was a massive undertaking and a considerable paradigm shift from the current process that team members were familiar with. With the ever growing complexity of geico.com's code integration and deployment, an automated process drastically reduced human error while benefitting from a substantial boost in productivity.