Continuous Integration & Continuous Development (CI/CD) tools have become popular as organizations have adopted agile development methodologies and recognized the many benefits of implementing such tools as part of this process. These benefits include reducing risk, improving code quality, automating manual tasks, and accelerating the application development lifecycle. This leads to higher quality applications that are released more frequently which directly increases revenue generated from such applications.
However, what most people don’t realize is that there are many CI/CD tools out there, designed for specific steps of the application development lifecycle process. Let’s walk through the various steps and list some examples of the more popular tools available.
Step 1: Code version management
What happens when you have multiple developers working on an application? They’re all checking in code at various times from various places, which could be a recipe for disaster in a large environment. The first tool that an organization will need for CI/CD is a code version management tool. This tool ensures that all code checked into the shared repository is verified as well as enables code review, version comparisons, and the ability to merge changes. The benefit here is enhanced code quality, as well as automation to ensure consistent, accurate builds. Popular code version management tools are Git, GitHub, and ServiceNow.
Step 2: Platform provisioning
Your code quality and the build process is now automated – now what? Certainly you’d like a machine to begin testing that new code on, right? But how? The traditional method of submitting a ticket to IT and then waiting for the various admins to build your machine can take days or even weeks. This can severely disrupt the application lifecycle process, lengthening it unnecessarily. Therefore, the second tool an organization will need for CI/CD is a platform provisioning tool. This tool enables developers and testers to provision the test environment – bypassing the time-wasting IT ticket process. The test environment will mimic the OS, patches, and app binaries exactly the same as production to ensure consistency. Popular platform provisioning tools are Maven, Jenkins, and UrbanCode.
Step 3: Build automation
Ok, we’ve got new build ready. We’ve got the test environment ready. Now, how do we get the new build on our new test machines? This is where a build automation tool comes into play. This tool enables developers and testers to deploy the latest build onto the test machines. Once again this self-service automation will speed up the application lifecycle process while reducing risk. Popular build automation tools are Puppet, Chef, Ansible, and SaltStack.
Perfect – we’ve got the new build deployed on our test machines. We’re all set, right? But what about the data? How will we get a copy of production data onto the test machines? For example, say it’s a database. Will we need to log ANOTHER ticket to IT so the DBA can copy a subset of the production database to our machines? Is this copy process automated? How long will this take? Wouldn’t it be great if the developers and testers had a self-service portal to provision a full copy of the database to their multiple test machines – in parallel?
That’s where Actifio can help. Actifio enables developers and testers to provision full copies of production data in a self-service manner. This severely reduces the amount of time required, while increasing quality since the tests are run on the full data set.
If you want to learn more, check out Actifio for Test Data Management.