Hi readers, whenever a newbie thinks of switching his career in DevOps, the first thing usually come in their mind is coding.
People start thinking whether he/she needs to code, whether the things will go smooth or not if I fail in doing coding, how will I manage, from where to start.
Let’s dig into these questions and will find the answer.
What is DevOps?
This is one the question, which has lots of answer in its own way. If you will search this question on Google, you will come across lots of answers and explanation which will sometime makes you confuse or clear your doubts on some extent.
Let me give a try too, I hope will not make you confuse and clear all your doubts and questions I have mentioned above.
Whenever you think of cooking, few of the things will instantly strike your mind to achieve your goal.
For preparing tasty and delicious food, you need to choose:
- What do you want to eat? (Take the example of simple burger)
- What are the steps you need to follow to prepare a tasty and delicious burger?
- What are the ingredients you required?
- What are the utensils or cooking materials you required to cook?
- What will be the final results?
- How much time taken by you to achieve the delicious result?
Try answering the above questions?
In each question, you will have one thing common “Burger Bun” on which everything is going to apply.
So, now let’s discuss it technically.
Suppose Burger Bun is a software created by developers, no matter in whatever language the software is created, you just need to make it accessible to the world in the following ways,
- Less time, so that any company has better and effective productivity.
- Secure and safe to prevent it from any type of cyber attack.
- Efficient and smooth process.
- Zero downtime.
- Disaster recovery.
Now the thing is if you want to achieve the above goal in less time and the most efficient way, what you need to do?
Pretty simple, you need to automate, once you will achieve the above goal through your simple automation you can call yourself DevOps Engineer.
Do I need to code?
Off-course, but not like a developer.
What do you need to understand in coding?
You just need to understand the three things mainly for starting your career in DevOps.
The above three points are itself self-explanatory, for the person who hates coding but eager to learn can learn it in not more than two days.
The simplest and most powerful language for any DevOps to automate their tasks is,
- Bash Shell Script.
# this is the example of shell script
if this_is right; then
elif this_is_right; then
# use of while is required to run loop infinitely or until your assumption will not turn into true/false
while true/false; then
# use to run the logic in the loop until the task gets completed.
declare -a nikhil = [ 'a' 'b' 'c' 'd' ] #declare -a is array synatx
for i in nikhil; do
# same thing you can do in Python too and syntax is too easy to learn.
The above knowledge is sufficient enough to start your career in DevOps.
The most important thing in a DevOps is the knowledge of Linux.
The day when you will start thinking of becoming a DevOps engineer, the first thing you must do is start using Linux(Ubuntu/Redhat/Centos).
Do whatever you want to destroy your OS.
Check each and every filesystem, take the help of Google, reinstall it, and again destroy it until you don’t find the reason why and from where the things are happening.
Debug as much as you can.
Learn to deploy the website on your system manually with the help of google.
Once you’re done with doing the things manually, It’s time to automate.
How will you Automate things?
Don’t worry, everything is already cooked for you just need to eat and declare you result whether it is tasty or not.😋
For automating the stuff, most companies prefer using opensource tools available in the market like Ansible, Terraform, Chef, Puppet, etc.
Whatever the tools available and are currently in use, uses the same logic for doing the thing in their own syntax.
Logic will we be always the same in whatever scenarios you have.
If you need to install any software on the server, you just need to find their module which will do installations.
All the modules are already created for you in almost all the tools available in the market, you just need to learn how to use those modules.
How will you learn to use the modules?
No DevOps engineer has that capacity to learn all the modules available in any particular tools, but they are doing their work efficiently why, because of experience and repeating the same thing again and again.
What do you need to do to achieve these things, whatever normal DevOps engineer performs in their day to day activity?
- The first thing is to fix your goal ( for example, I need to deploy a website ).
- The things require in achieving the goal ( like instance, web server, etc ).
- Learn to use Google ( for example I need to install any server on the instance using Ansible, start searching it on google, How to do that with particular tools ? ).
- Learn whatever software you required in the implementation of the website on a server with the help of modules of a particular tool.
That’s it, you’re ready to start your career in DevOps field.