Submitted By Jenkins User Ant Kenworthy
This UK government project involved migrating a legacy system to the cloud. And, of course, it needed to be done at an accelerated pace.
Organization: UK organization
Programming Language: PHP, Bash
Platform: Docker or Kubernetes, Linux
Version Control System: GitHub, GitLab, gitea
Build Tool: FPM, Docker
Community Support: Jenkins Users Google Group, IRC Chat, Jenkins.io websites & blogs, Networking at Jenkins event
Migrating to the cloud without a hitch, and with great results.
Background: Working on a UK government project involved dealing with overburdened legacy systems. It was time for a cloud migration. A number of existing scripts and processes had to be gathered into jobs and prepared for their new life in the cloud. With limited time available and firm deadlines to adhere to, the work needed to be completed swiftly. There was also a need for future enhancements to migrate these singular jobs into an improved pipeline.
Goals: Bring old systems to new platforms.
Solution & Results: To migrate to the cloud, a new Jenkins install was quickly stood up — in a container no less. This was done with a basic Jenkins install via docker. It all went quite smoothly as we imported existing scripts into the system while still being able to maintain our current processes. Best of all, we continued to function with minimal disruption to the release cycle.
Once the migration was complete, there was room to maneuver to new and improved processes. For that, we used the Jenkins job DSL plugins and the Git plugin to get app code. Tasks were migrated away from singular scripts into a pipeline job where software builds would occur only once instead of multiple iterations for each environment. The code for these jobs was migrated to its own repository, where changes can now be monitored separately.
For simple deployments, Jenkins is easy to pick up and get going. It rocks for complex stuff, too, as it’s there for you further down the line. This migration to the cloud yielded great improvements, including:
- shorter testing cycles
- builds follow a set process every time
- build processes are consistently logged