DevOps and Terminology every Novice must know.

DevOps and Terminology every Novice must know.

"DevOps" does this term looks familiar to you guys ? You may have heard it from one person or another in IT Industry. In mind you would have many question how does that work ? How is DevOps related to that of the SDLC ? and many more. Some people do found it very compelling how they can get started with DevOps. Trust me it is not and the changes can be managed and inculcated very easily if you are willing to give yourself the necessary time to adapt.

devops_cover.png

Enough with the talk so lets get started with the topic.

What is DevOps ?

DevOps is meant to be a cultural practice in an organisation by Development team and Operations team such that they can share the tools, transfer knowledge among the team to smooth out the process of Software Delivery.

What do we need to implement DevOps in the Organisation ?

There are some sets of values which we need to keep focus when trying to implement the DevOps in the Organisation. Core Values , Core Ideas and Methods to Implement they are generally prioritised. Whereas the Practices to follow and Tools to use carry a lower priority.

Why should I learn DevOps ?

If the organisation is implementing DevOps then every team member is at-least have an idea that what are the crucial steps followed which leads to greater transparency between the team. Due to which following things happens.

  • Deployment becomes faster.
  • There is less chance of failure.
  • It gives us Better Recovery Time.

Major Ways to implement DevOps ?

a. Flow Thinking :

Scenario : In this Developer ships out the code to the Ops team but the Ops team could not directly push that onto Production as they are currently not in their Release Cycle. We can say that there is only one way of communication if followed from Developer to Ops team.

Flow Thinking not generally followed.

b. Amplify feedback :

Scenario : In this Developer ships out the code to the Ops team but the Ops team could not directly push that onto Production as they are currently not in their Release Cycle but here the Ops team communicates with the Development Team so that they can resolve the issue.

Here the two way communication is followed i.e. Constant communication is followed among teams.

Amplify feedback widely followed in the industry.

c. Experiment and Learn :

Scenario : In this Developer ships out the code to the Ops team but the Ops team could not directly push that onto Production as they are currently not in their Release Cycle also there are some special practices needs to be performed which could not be done by the current set of tools. So the Ops team introduces the new tools for implementing the special practices.

Here the two way communication is followed i.e. Constant communication is followed among teams but due to the newly introduced tools it can create a steep learning curve among the team.

Experiment and Learn is NOT widely followed.

The Divide We can see in the IT world there is a general set of divide among the mindsets of the two core participants of the team.

Developer : They have mindset to deliver Fast and Deploy Quick Virtue. Ops: They try to go keeping the System Stable and try to keep Up Servers all the time (To keep the server running no matter what).

DevOps actually tries to breach the divide so that no matter Software Delivery could not get affected by any means.

DevOps Terminology DevOps terms aka Devops Jargons which are generally followed in the Industry. No need to get overwhelmed. I would try to distil that as much as possible.

morpheus.png

Provisioning: It generally means that the Servers are ready with the respective Operating System , Software's and the Networking Setup.

  1. Deployment: It roughly translates to adding / upgrading the software on the Server.

  2. Orchestration: I am sure you have 100% heard this term when going through the DevOps.(If not you are lying ;) ) So it translates to Coordinating the Operations on the multiple system.

Consider when we want to push a small patch to the Server but there are many servers and we do not want to manually update the patch onto each server so here we must use some system to manage all the updates to all the server of website and they are all coordinated.

  1. Configuration Management: In the layman's terms it acts like a file in which all the configuration are mentioned such files contains the meta about the ram, space used and list of dependency software's etc.

  2. Imperative (Procedural): It means that commands required to produce the Desired State in simple terms we need to put the certain commands to achieve certain things.

  3. Declarative (Procedural): Desired state is defined and the tools must do anything they can do so that they can achieve desired state.

A tool which generally uses it and widely used is Terraform.

  1. Blue Green Deployment: It is the identical deployment and can be used as Switch.

Let us the consider two servers S1 and S2 with equal configurations and whenever some updates are pushed they are firstly pushed onto the S1 first and it is fully tested out there and after full proof testing the build then only it is pushed on to the Server 2 this type of switching mechanism is generally followed in the Blue Green Deployment.

  1. Continuous Integration: It roughly translates to the build and unit test at every checking.

  2. Continuous Delivery: It means after unit testing deploy the changes to the production in the small batches.

  3. Idempotent: In DevOps culture it means to repeat the execution and get the same results.

Phew, long read ain't it ? But that is not all I have also something more which I hope you would like the content.

BONUS

DevOps CAMS

The CAMS model was invented by Damon Edwards and John Willis, authors of the famous Podcast DevOps Cafe.

CAMS stands for C- Culture, A- Automation, M-Measurement, S- Sharing

Let us know in brief what do they stand for

Culture :

Talk to each other meaning All the teams should be in sync with each other. In the DevOps culture we should always prioritise the People -> Process -> Tools. Where the People carries out the highest priority among all i.e. People over Process over Tools.

Automation:

Automation is not just about using the tools like Chef or Puppet etc. There is always a need to implement the automation in such a way that we can replicate the automation? We also need to ask ourselves the questions like do we really need to have X number of Servers? Do we really need Automation for it ?

Measurement:

Measure to Improve it means we need to constantly monitor our resources applied but it doesn't stop on this. We can also monitor the changes like. a. If there is certain % activity increase and do we need extra resources i.e. any Infrastructure. b. Due to increase in the Infrastructure then how it is affecting our billing cycle ? c. Sometimes we do have to look on the client activity and need to track why some services are consuming and need to enhance monitoring there. Measurements or monitoring is not only limited to the Servers but also help the Developers are they able to ship them properly or not.

Sharing:

Share the GOAL (whole TEAM), share responsibilities, share ownership and there should be no escape goat. In this the feedback loop plays an important role.

Still confused about How to get started with DevOps ? For getting a good gist I would recommend you to go through the article below so that you could have a clear mind-map that how the things should progress to get started with your DevOps Journey.

DevOps RoadMap

Did you find this article valuable?

Support Code my World by becoming a sponsor. Any amount is appreciated!