So you want to become a DevOps Engineer?

Swapnasagar Pradhan
5 min readAug 15, 2022

It’s been a while since I’ve done DevOps, but the term is trending, so I thought I’d share what I think about it, what has helped me, and how I can become from Ops > DevOps.

You can find anything you need to know about something on the Internet. Everything there is, with the possible exception of Experience.

Before you start...

Everybody will choose a different path. The path is often bent with many detours and barriers, in my experience, and I’m no different from it. I began my career as a production support engineer before switching to L2, and finally L3 support.

This has aided in my experience on the operations/production side of the project because, in production, you must constantly be alert. numerous firefighting calls, late-night calls, and on-call duties. By doing so, you add value and demonstrate that you are knowledgeable about managing a production organization.

So, since I understand that people come to our company from different jobs and all have different scopes of competencies and levels of knowledge, I decided to create a list of skills and competencies needed to be a successful DevOps engineer. So here is my list or checklist for Road to DevOps.

Linux System Administration:

  • Able to manage Linux servers.
  • Linux kernel, subsystems, and utilities.
  • Processes, devices, disk partitions, lvm, file systems, and networking.
  • Startup process, systems, iptables, firewalld, network protocols.
  • Virtualization -KVM and qemu
  • bash scripting.
  • Good at troubleshooting.

Experience working for a company where you’re the one responsible for fixing the servers will be good starting point.

Version control system

  • Git is an open-source distributed version control system. It is very lightweight and works on almost all operating systems.
  • Design and develop CI/CD pipelines which include Branching strategy, Release versioning.
  • Gitops — git acts as a source of truth for all the infrastructure configurations.

The git repositories are owned and managed by DevOps engineers in the majority of enterprises. There is no one standard for git branching and workflows, I can say from my experience working in several firms. Thus, you could pick this up on the job.

Containers: Things to be known

  • namespace and cgroups.
  • docker “≠" containers.
  • Differences between containerization and virtualization.
  • Docker Architecture.
  • what is docker-compose and how you can speed up your local Environment?
  • What is container orchestration and why do we need it?

Look for a company that is moving from Vms to containers. There, you’ll have the freedom to play around and learn how things work.

Cloud (AWS, Azure, GCP):

  • A crucial skill in the cloud is managing environments.
  • How to set up a network: this may include services such as VPC, Security groups, and ACLs, topology, and subnets, peerings, VPN, etc;
  • Storages: block and object storages;
  • Container deployment services: ECS, AppRunner, Beanstalk, AppEngine, Web Apps, etc;
  • Database services (both relational and NoSQL);
  • Managed Kubernetes cluster services;
  • Load Balancers, CDNs, WAFs
  • Cloudflare and DNS.
  • Understand the difference between PaaS, IaaS, and SaaS.
  • Cost optimization and cost reduction practices.

Look for a job in a company as a operations person supporting their internal systems in the cloud.

IaC

  • People use different tools, and there are a lot of them on the market. I tried out cfengine, puppet, and ansible before writing in chef. These are mostly called “configuration management tools,” and they do a great job if you are in charge of your infrastructure.
  • There are a lot of tools (like Pulumi, Cloudformation, AWS CDK, etc.) that help make the IaC (Infrastructure as Code) approach more accessible to the public. But Terraform is the main tool being used in most of the org to create immutable/self-destructive Environments.
  • There are four potential types of issues that you could experience with Terraform: language, state, core, and provider errors.

Look for a job in a company as a operations person supporting their internal systems in the cloud and mostly you will end up wrting all the tf code.

CI/CD

  • Jenkins,circleci, Jenkins X, and Gitlab.
  • Understanding of the CI, CD, and CD concepts and branching strategy
  • Ability to transfer the development flow to the CI / CD pipeline, which may include complex logic:
    - rollbacks,
    - manual steps,
    - trigger other jobs, services,
    - notifications.
  • Pipeline optimization.
  • Knowledge of various strategies for rolling out a new release and the ability to implement them:
    - Rolling update,
    - Blue/Green;
    - Canary;
  • GitOps

One should look for Release Enggenering or Configuration management team.

Kubernetes

  • Understand, able to work and debug the main objects: Pod, Deployment, Replicaset, Jobs/Cron Jobs, DaemonSet, Statefulset.
  • Types of services and what ingress is and how does it benefit?
  • Implement ServiceMesh where needed.
  • Deployment strategies.
  • Use opa/kyverno if necessary.
  • Basic understanding of the architecture: what are the components, what are they responsible for, and how are they interconnected?
  • Why is helm is needed in k8s?

One should look for a team which is tranforming to devops and betting their tech on containers and Kubernetes.

Light programming skills

  • You don't have to be a developer, where you need to develop a business logic, But at least knowledge of SDLC.
  • People who start on the operations side move through scripting and domain-specific languages (DSLs) on their way to making APIs and self-service tools.
  • If you starting to hate Jira and the agile process, then my friend you are on the right path :)

one should look for a job that lets you grow into a role in development as part of their “DevOps transformation.”

Soft Skills

  • Because we are the ones who bridge the gap and possess the personal qualities that help to effectively connect and synchronize the work of all participants and departments into a single whole, a good DevOps engineer needs to have both a broad technical perspective and a wide range of automation skills.
A Diagram which explains all the components and works Together.

In conclusion, it is difficult to build a single list of specialized competencies because the concept of DevOps-engineer varies from company to company. There are so many potential paths and hazards in a profession that even ten years is not enough time to explore them all.

Not all businesses use the same services; some rely on cloud computing, while others employ in-house or outsourced IT departments and deploy their infrastructure. Therefore, the skills necessary to succeed in your chosen field will vary from firm to company.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Swapnasagar Pradhan
Swapnasagar Pradhan

Written by Swapnasagar Pradhan

Husband | Father |Engineer | Sysadmin by choice | Ops by trade | love with NFT

No responses yet

Write a response