Hi I am new here

Discussion in 'New Members Introduction' started by NevraDev, Dec 23, 2019.

  1. NevraDev

    NevraDev Bit Poster

    11
    1
    8
    I am new to this forum and have questions about Certifications and want to develop to leter get into DevOps.
     
  2. FlashDangerpants

    FlashDangerpants Byte Poster

    187
    57
    64
    Hi. There's not a huge amount of devops action here, but the guys on the devops subreddit maintain a monthly how to get into devops thread. https://www.reddit.com/r/devops/comments/e4pt90/monthly_getting_into_devops_thread_201912/ One of the links contained is to this - somewhat insane - devops learning roadmap. https://github.com/kamranahmedse/developer-roadmap#devops-roadmap

    In real life, every devops guy I know either already worked as a programmer or a sysadmin. So you probably need to be at one of those levels first. Either that or massively committed.

    From there, you would want to start with a scripted language suitable for sysadmins (Python, Go, Ruby... Posh + C# if you are a Windows dude), and some decent linux chops. You don't actually have to be great at either to gain entry to the field. You really would need to have working experience in one or other field though, so try to get into a sysadmin role somewhere with linux in the mix if you aren't a code monkey already.

    Learn the programming language far enough to do something useful with it. Making some sort of web service will give you something to put into labs later on. You do want to learn how to test your code as you deploy it. But do remember, you will read 10 times more code than you will write, so don't get too hung up on this stuff.

    Don't go overboard certifying for linux unless you are really good at it, or have no experience at all. In the latter case, the entry level LPI certs cover the tools and commands you really need to know, get a Linux Academy trial and look at the lpic-1 and lpic-2. Do the exams if you really want to. Don't certify for any programming language, entry level multiple choice answer tests ( I'm looking at you "Python Institute" ¬_¬ ) are quite a dumb idea imho.

    Use Git religiously as you learn the python or whatever. Git is the most important tool in this field. Become medium proficient. Use the free book Pro Git by Scott Chacon and Ben Straub. You need to be able to branch and rebase, and webhooks. When those make sense, you have probably learned enough to devop at some rational level. Extra credit if you also run your own local git server, triple credit if you use etckeeper to track all the config changes you make to your servers as you go.

    Go get a junior devop sort of job now if you can. Interview questions are likely to include simple stuff like connecting to a web API and returning some data, if they are harder than that, the job wasn't junior enough. Your Git repo should be public, and should have some relevant code in there, you will be judged mostly on that, and you will need to be able to talk about the choices you made in there, if it's not well commented, your application will not progress further.

    If you can't find a junior devop sort of job yet, this lot, in no particular order, should help...

    You want to have real world experience with some of the tooling for generic devops jobs. Those are listed in excessive detail in that roadmap above. You can easily make use of Jenkins in your life before devops, and the same goes for Ansible/Salt. These are the devops tools that any sysadmin can find a decent excuse to use (including in Windows environments, which can totally be managed with Salt or Ansible. Look into Chocolatey for Business with Ansible for extra credit). If you have Cisco/Juniper or any other managed switches in your current office, consider using Ansible just to back up their configurations or something just to get started.

    You definitely need to learn one of the clouds in some detail. Hopefully you can do this in your day job, but learn AWS or GCP anyway. Partly that's because Google and Amazon have rational certification paths for you, and Microsoft doesn't. These certifications are worth getting, but their value is declining as is alwys the way wiht these things. Don't go for the top end devops engineer cert until you have actual devops experience, it won't count for much until then, and the difficulty will make you feel bad.

    If you study for AWS, they will teach you a tool called Cloud Formation, which isn't the best thing they make. Work out how to use Terraform instead. Try to do this sort of thing for every tool they show you. This way you will know their cloud better, and be able to work on any of the other clouds any employer shows you.

    You do need to have some experience in containers as well, so learn some Docker, just because everyone knows some of that. I wouldn't go overboard on Docker, just spend a few hours learning the basics and then try to make use of containers in some labs. Do be aware that Docker is just the default container that everyone uses if they don't care, if you are learning linux, try and get the basics of LXC containers down as well (LXC/LXD is a fat container with a full root file system, its use case is very different from Docker. Learning resources are comparatively scarce though, and overwhelmingly out of date, getting to grips with LXC 3 demonstrates some Google fu!).

    The other thing that makes any sense to learn before you are actually in the business is telemetry/alrets/reports and whatnot. Zabbix and Nagios are fairly friendly and easy to use. Whatever IT environment you work in now can probably make some use of these today. Doing stuff like this will fill in the blanks in your linux learning. Do it all on Ubuntu server, deploying via Ansible to LCX containers to save money and earn extra credit.

    By the time you are halfway down that list you should already have elbowed your way into a suitable role. If not, double down on something you already learned. If you really like to suffer, go ahead and check out Kubernetes, ISTIO, serverless functions, etc, but those are less prevalent than you might suppose from the hype, and they are harder to learn, especially if you have no code to deploy to them yet.

    If you enjoyed the coding, perhaps you will have added postgres and/or Mongo to your repetoir, along with Nginx to serve something up. If you didn't enjoy it, you need some basics on two of those to get through a more advanced linux cert so check them out.

    There are certification programs available for most of this stuff. Once you are aready, the big boy linux certs RHCA and RHCSE are both super relevant (LFCSA and LFCE if you are on Ubuntu). Ansible isn't really a thing you would get a specific cert in afaik but you will get tested on that for the above. There are certs for Docker but Docker is a component of the linux exams (LXC might be an alternative, but which version I couldn't say, so learn some Docker)

    Assocaite level Linux and AWS plus a bit of admin experience should be enough to get you where you want to be. But...

    SaltStack certified engineer looks like a really cool course, I use Ansible so I can't say if it's worth doing, but I probably would. In fact I probably will!
    Certified Jenkins Engineer is a good looking syllabus too - I have no idea about the test, I promise I will try it out one day, however there's a lof of Java shenanigans, your mileage may vary.
    There is a Docker cert path available. When you hit Kubernetes you will probably see why I personally don't think it's as important.
    Kubernetes is too difficult to consider certifying prior to real world experience though, and Docker is not, it's really pretty easy.

    Consider certifying in Mongo, it's a really popular product, but everybody just wings it until they bust it. Also it's sort of been ripped off by all the cloud vendors, so the experience is relevant even if you never use the actual db. I have no Mongo skills, so I try to pretend that there is none in my environment. I should probably do something about that myself :(
     
    Certifications: MCITP Exchange 2010, MCSA Svr 2012
    WIP: Exchange 2013
    JK2447, Sparky and NevraDev like this.
  3. NevraDev

    NevraDev Bit Poster

    11
    1
    8
    In real life, every devops guy I know either already worked as a programmer or a sysadmin. So you probably need to be at one of those levels first. Either that or massively committed.

    From there, you would want to start with a scripted language suitable for sysadmins (Python, Go, Ruby... Posh + C# if you are a Windows dude), and some decent linux chops. You don't actually have to be great at either to gain entry to the field. You really would need to have working experience in one or other field though, so try to get into a sysadmin role somewhere with linux in the mix if you aren't a code monkey already.

    Learn the programming language far enough to do something useful with it. Making some sort of web service will give you something to put into labs later on. You do want to learn how to test your code as you deploy it. But do remember, you will read 10 times more code than you will write, so don't get too hung up on this stuff.

    Don't go overboard certifying for linux unless you are really good at it, or have no experience at all. In the latter case, the entry level LPI certs cover the tools and commands you really need to know, get a Linux Academy trial and look at the lpic-1 and lpic-2. Do the exams if you really want to. Don't certify for any programming language, entry level multiple choice answer tests ( I'm looking at you "Python Institute" ¬_¬ ) are quite a dumb idea imho.

    Use Git religiously as you learn the python or whatever. Git is the most important tool in this field. Become medium proficient. Use the free book Pro Git by Scott Chacon and Ben Straub. You need to be able to branch and rebase, and webhooks. When those make sense, you have probably learned enough to devop at some rational level. Extra credit if you also run your own local git server, triple credit if you use etckeeper to track all the config changes you make to your servers as you go.

    Go get a junior devop sort of job now if you can. Interview questions are likely to include simple stuff like connecting to a web API and returning some data, if they are harder than that, the job wasn't junior enough. Your Git repo should be public, and should have some relevant code in there, you will be judged mostly on that, and you will need to be able to talk about the choices you made in there, if it's not well commented, your application will not progress further.

    If you can't find a junior devop sort of job yet, this lot, in no particular order, should help...

    You want to have real world experience with some of the tooling for generic devops jobs. Those are listed in excessive detail in that roadmap above. You can easily make use of Jenkins in your life before devops, and the same goes for Ansible/Salt. These are the devops tools that any sysadmin can find a decent excuse to use (including in Windows environments, which can totally be managed with Salt or Ansible. Look into Chocolatey for Business with Ansible for extra credit). If you have Cisco/Juniper or any other managed switches in your current office, consider using Ansible just to back up their configurations or something just to get started.

    You definitely need to learn one of the clouds in some detail. Hopefully you can do this in your day job, but learn AWS or GCP anyway. Partly that's because Google and Amazon have rational certification paths for you, and Microsoft doesn't. These certifications are worth getting, but their value is declining as is alwys the way wiht these things. Don't go for the top end devops engineer cert until you have actual devops experience, it won't count for much until then, and the difficulty will make you feel bad.

    If you study for AWS, they will teach you a tool called Cloud Formation, which isn't the best thing they make. Work out how to use Terraform instead. Try to do this sort of thing for every tool they show you. This way you will know their cloud better, and be able to work on any of the other clouds any employer shows you.

    You do need to have some experience in containers as well, so learn some Docker, just because everyone knows some of that. I wouldn't go overboard on Docker, just spend a few hours learning the basics and then try to make use of containers in some labs. Do be aware that Docker is just the default container that everyone uses if they don't care, if you are learning linux, try and get the basics of LXC containers down as well (LXC/LXD is a fat container with a full root file system, its use case is very different from Docker. Learning resources are comparatively scarce though, and overwhelmingly out of date, getting to grips with LXC 3 demonstrates some Google fu!).

    The other thing that makes any sense to learn before you are actually in the business is telemetry/alrets/reports and whatnot. Zabbix and Nagios are fairly friendly and easy to use. Whatever IT environment you work in now can probably make some use of these today. Doing stuff like this will fill in the blanks in your linux learning. Do it all on Ubuntu server, deploying via Ansible to LCX containers to save money and earn extra credit.

    By the time you are halfway down that list you should already have elbowed your way into a suitable role. If not, double down on something you already learned. If you really like to suffer, go ahead and check out Kubernetes, ISTIO, serverless functions, etc, but those are less prevalent than you might suppose from the hype, and they are harder to learn, especially if you have no code to deploy to them yet.

    If you enjoyed the coding, perhaps you will have added postgres and/or Mongo to your repetoir, along with Nginx to serve something up. If you didn't enjoy it, you need some basics on two of those to get through a more advanced linux cert so check them out.

    There are certification programs available for most of this stuff. Once you are aready, the big boy linux certs RHCA and RHCSE are both super relevant (LFCSA and LFCE if you are on Ubuntu). Ansible isn't really a thing you would get a specific cert in afaik but you will get tested on that for the above. There are certs for Docker but Docker is a component of the linux exams (LXC might be an alternative, but which version I couldn't say, so learn some Docker)

    Assocaite level Linux and AWS plus a bit of admin experience should be enough to get you where you want to be. But...

    SaltStack certified engineer looks like a really cool course, I use Ansible so I can't say if it's worth doing, but I probably would. In fact I probably will!
    Certified Jenkins Engineer is a good looking syllabus too - I have no idea about the test, I promise I will try it out one day, however there's a lof of Java shenanigans, your mileage may vary.
    There is a Docker cert path available. When you hit Kubernetes you will probably see why I personally don't think it's as important.
    Kubernetes is too difficult to consider certifying prior to real world experience though, and Docker is not, it's really pretty easy.

    Consider certifying in Mongo, it's a really popular product, but everybody just wings it until they bust it. Also it's sort of been ripped off by all the cloud vendors, so the experience is relevant even if you never use the actual db. I have no Mongo skills, so I try to pretend that there is none in my environment. I should probably do something about that myself :([/QUOTE]
    -----------------------------------------------------------------------


    Massive thanks for this post and detailed roadmap. I will have to print it and organize it to make it my goal to follow for the future.

    I wish somebody would have been as kind as you and explained what to do and how to get there like you did for me FlashDangerpants
     

Share This Page

Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.