Hello All,
Good day.
I am working as a Linux admin(SLES, RHEL). I have 5 years of experience.
I am trying to move in devops team.
I have knowledge about AWS, git, ansible and basics about terraform.
To become a devops engineer, what and all I need to learn.
I know shell scripting. is it mandatory to have java programming knowledge to become a devops engineer.
I am about to learn jenkins next. what devops engineer will do in jenkin.. Is groovy mandatory to work on jenkins.
I have not started to learn about kubernets/docker. If I get an understanding about the devops engineer role on kubernets then it will be easy to prepare.
Kindly guide me to prepare well.
Thanks in advance.
The first thing to understand, is that DevOps in nature is more of a culture/framework that became very popular with the growth of public clouds. DevOps has been around for many years, but only recently, we started to see more and more folks getting into this area of IT.
For the most part, you can use different tooling, there isnt a one tool that you have to learn to do DevOps. There are also many jobs that say they need a DevOps engineer, but they list things like Javascript, Python, PHP, etc as a required skill. There are also different types of jobs in the DevOps realm, such as automation engineers, cloud engineers, platform engineers, etc. All these jobs have some DevOps practices integrated into their workflow.
What is important to understand, is that you need to master some skills when it comes to Cloud, Scripting, Monitoring, etc... What I recommend, is that you at very least, get comfortable with Cloud, so in your case, it could be AWS, Linux knowledge is a huge plus because a lot of DevOps tooling relies on Linux more so than Windows. Knowing either Bash, PowerShell, Ansible, Terraform is a big plus for automation, although if you learn Bash, you can learn anything! And then there's also tools like Prometheus, Splunk, etc that are also important to know. This is not to say that you have to do all these, but at least knowing one cloud, one scripting language, and one operating system really well will set you on a good path to be working in a DevOps environment.
There's also the concept of GitOps that you should get yourself familiarized, GitOps is basically working with Git in your workflows, for example, committing/merging your code base with a VCS, doing things like pull requests, and just building out a CI/CD pipeline in general is really important.
When it comes to orchestrators like Kuberentes/Docker Swam or containers like Docker/Podman, these are good solutions to learn, but usually, Kuberenetes in itself is a full time job, if you dont spend a lot of time with K8s, it will be hard to get good at it, it is a very complex solution and also the reason why a lot of customers look at Kubernetes managed service vs doing it themselves. K8s is a good skill to have, even if you dont know it completely, but it does take a lot of time to master.
I know this is a lot of info, but I feel that if you start with Linux, AWS, Bash, and Git, you'll be in a good spot to develop more skills as time goes on.
P.S I work in the DevOps realm, just basing this on my experience.