As my job search progresses, I find that the recruiters have little knowledge of what is involved in the DevOps revolution that is taking place in the software development shops. It’s understandable that they have very little knowledge of what these tools are, much less what each tool accomplishes in the DevOps CI/CD circle.
Clients are requesting prospective job applicants to have specific DevOps tools experience (Docker, Jenkins, etc.). In today’s job market it is important that the recruiter be knowledgeable in his/her understanding of the client needs and queries the client as to whether these specific tools are a “must have” or can the candidate have an equivalent knowledge in a similar tool?
In my desire to have the recruiter be as knowledgeable as possible, I am going to outline some terminology, which hopefully answers some questions – and encourages the recruiter in finding the candidate with the best fit for the opportunity.
CI/CD – An acronym that defines the process of Continuous Integration / Continuous Delivery. This focuses on constantly building the software and speeding the deployment of software fixes & enhancements to the customers servers, has driven software development shops to adopt tools that automate the process as much as possible.
DevOps – Development Operations, the close cooperation or marriage of IT network administration staff and the development group. The group was formed to closely integrate the new tools into the domain traditionally owned by IT admin group. Many of the tools are Unix/Linux based that requires a new group of personnel with skills traditionally not held in high esteem by Windows development teams.
Continuous Integration – Software process where the development team checks in code to the Source Management tool. This allows for a completion of a full build and applications are built and deployed for QA testing. Done frequently this allows for frequent testing of program interfaces and application interactions.
Using Agile processes, the team breaks down large projects into small manageable tasks, which allow for early testing by QA. This can be accomplished by either with automated testing or ramped up regression tests.
DevOps attempts to minimize the time it takes from source check-in to QA testing to a “golden hour” accros the CI/CD cycle. Obviously this attempt requires adoption of automation tools and potentially redesign of the source structure to accomplish it. No small feat!
Continuous Deployment – is a strategy for software releases wherein any code commit that passes the automated testing phase is automatically released into the production. This is accomplished by delivering every change to a production-like environment, ensuring business applications function correctly through automated testing. I hear that some large development centers employ Continuous Deployment in their shop. They also may result in misspellings that potentially could take the east coast network down…
Continuous Delivery – is a step gap towards Continuous Deployment employed by most software development shops. We recognize that every change is not necessarily deployed to the customers once it’s completed rigorous automated testing. It does mean that every change is deployable, and as a consequence is eligible for delivery to the customers as a “HotFix. Imagine never having to gear up a team for working over the weekend to get a fix in order to a customer in distress? Now imagine your normal code check-in, build, deployment process having the capability to ready an application fix in an hour!
My next discussion topic will outline the various tools that DevOps is employing, breaking them down into groups based on their similar functions.
Hope this helps.