Do I need to learn DevOps?
You probably guessed what my
answer to this question would be. It's a YES. The subsequent question that pops
up in our minds is what I should learn or what skills to acquire.
The good news is that you already
know the concepts of DevOps if you have coded something and have gone through
the "processes" of deploying your compiled, tested, accepted code
into a production environment.
These "processes"
typically involve you filling either some forms or entering information in an
in-house or a standard tool. These "filled forms" are then processed
by an "appropriate approver" for your line of business and then the
"deployment/production operations team" will do the migration to the
production region in an "allowed window of time".
If you automate and/or expedite
these "processes" with help of standard tools to result in minimal
human intervention yet achieve the effectiveness of the manual reviews and
checks, that is called DevOps in a nutshell. Now I may have oversimplified this.
However, I am convinced that my DevOps specialist friends will probably agree
with my simplification in the context of explaining it to the developer
community.
The process of this automation or
what we refer to as "implementing DevOps" is not something that
happens over time. As you may now realize, there are multiple "teams"
involved in the "processes" I explained earlier. Each of these teams
will continue to have their presence post DevOps implementation too. However,
they will now make use of the standard toolset. DevOps also brings in a
"unified experience" for Operations and Development teams cutting
across different technologies. The DevOps experience of a Java team, Mainframe
team, .NET team and a cloud-native team would mostly be the same. This results
in promoting the cross-technology movement of team members and can foster the
culture of cross-training inside the organization.
The benefits of implementing
DevOps are well documented by multiple sources. I am not going to list them
down. However, I would like you to think through the "processes"
involved in migrating a "unit tested" code in the DEV region through
multiple "TEST" regions and all the way to the "PROD"
region. Anything and everything you do to automate these steps technically
would fall under DevOps according to me. The DevOps tools are means to achieve
automating these steps. This is what you should learn first before embarking a
journey of learning the DevOps tools.
I have seen several mainframe
implementations over 2 decades where the different lifecycles involved in
development and code migration were automated when the term DevOps was not even
familiar. To me those shops are DevOps enabled already. Whether they follow
Agile methodology is a different question and it does not take away the
excellence achieved by those implementations. My idea of DevOps is not the
"standard tools" involved but the implementation of the idea of
automation for the given technology platform, SDLC used and best practices
already in place.
Note: The idea of automation
should be at all phases of SDLC, code migration across environments and
deployment. There are several tools that specialize in each phase that may
result in setting up complex workflows and sequences required. Evaluating these
tools and their fitment to the organization is a key skill that DevOps
architects provide.
Comments
Post a Comment