5

Guys, I want to get into a DevOps role.

I'm already looking into Linux, Terraform, Ansible and k8s.
If you are a DevOps Engineer, what kind of tooling or knowledge do I need to know before applying to companies?

Any tip is welcome and I would greatly appreciate it! Thank you!

Comments
  • 3
    Don't do it. It's a trap. 😛 (It's legal slavery, imho)
  • 7
    I am not gonna tell you what you need before applying for a job, but I can tell you what you should know:

    1. If you will manage Linux servers, you really need to spend a lot of time with Linux

    2. Try to understand networking as much as possible. Yes, you can search for stuff on the internet, but it only works if you know exactly where the problem is.

    3. Every Linux distro may be vastly different. Expect to be surprised often if you will manage for example RHEL, but you learned everything on Ubuntu.

    4. Become the master of not giving a fuck. When something bad happens, you are going to be under a lot of pressure from everyone and all the time. Don't give fuck, don't answer every call and you solve the problem much faster without excessive stress.

    5. Docker is nice stuff, especially if you are running RHEL or CentOS and the ancient packages are just too old for you to use in production.

    6. Think thrice while designing infrastructure, twice is not enough.
  • 3
    DevOps is quite broad and varies.
    The stacks and methodology varies. It's your job to see what approach and automation benefits the team/company and implement that.
    Local or remote dev environment for example.

    There are common patterns though like Ci/CD, DTAP, TDD/BDD, feature branch pattern, container based. At least look in to some Ci tools or Git integration like Jenkins, Gitlab, Bitbucket pipelines, GitHub Travis.
  • 1
    @lamka02sk sounds like system admin with another title.
  • 0
    @notSoCoolGuy You are right, but these two positions are very thightly connected imo. I think it is your reponsibility as DevOps to know how the underlaying system works to take advantage of its features.
  • 2
    This about sums it up: https://devrant.com/rants/3327321/...

    More realistically, DevOps :
    - automates every task after a dev commits code to git
    - ensures observability by enabling metrics and log collection
    - manages systems after creation (patch, security, repair) . This is why we automate everything, so when shit breaks we just recreate it from the ground up (I.e Terraform)
    - catches all of the undefined escalation paths (be prepared to answer the most obscure midnight pages about why shit is broke) it’s not about fixing it, but knowing who can.

    What you need to learn depends on where you are, what week it is, and if Mercury is in retrograde. Check out the email list “Devopsish” to see this weeks list of “things you need to know”

    If doing those things sounds fun to you, you’ll do great in DevOps.
  • 0
    I will recommend, be a dev for few month or a year no matter what is the tech stack.
    Read about architectures and microservices.
    Then move into devops.
    Learning Linux and tools are everywhere whether you are a dev or devops engineer. Devops is much more than just automating things. You can't be a devops engineer without being a developer. (however you can get a title from companies)
  • 0
    Create a medium sized pet project (not a hello world, but some backend, frontend, api, database) or use an existing on and automate the crap out of it.

    Get one or multiple old computers or a raspberry pi or buy a VPS to use as a server. Host some infrastructure (Gitlab, Artifactory, Kubernetes, ...). Automate that deployment. Go and recreate your whole infr with those scripts you made.

    Create a CI/CD pipeline, that builds, tests and deploys your app to your infrastructure. Simulate some real world scenarious, database migrations, translation services, automatic dependency updates, the whole nine yards. Make sure everything is reproducible and versioned.

    Deploy Monitoring and Alerting Solutions and simulate Application Failures. Play around with Chaos Engineering.

    Im doing DevOps just as a hobby, but I would say playing around with real software stacks like that will make you well versed, when applying to a DevOps position.
  • 0
    @notSoCoolGuy I am a former sysadmin, current dev, and I do my own DevOps work with my projects. I definitely feel like "DevOps Engineer" = "Sysadmin 2.0". The only difference being that DevOps has to concentrate much more on custom deployment automation whereas sysadmins are doing more break/fix.

    Despite the fact that most employers want a former developer to do the job, it seems like overkill. They need to understand the general concepts, but it's not as though a dev team is waiting for a DevOps Engineer to give them advice as to how to fix a failing test, but rather just that some test is failing.

    Because I know some common DevOps tooling, and have the skills listed in my resume, I often get job offers to do DevOps stuff, but it is infinitely more fun using logic to solve variable use case problems than automating some repetitive support activity. DevOps stuff wouldn't exist without developers, whereas developers can somewhat exist in a vacuum as they have traditionally.
Add Comment