How To Become A DevOps Engineer in 2023? | Skills To Learn

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
what's up everybody it's Travis here from Travis dot media no quirky intros no gimmicks today we're going straight to the content actually quick note in a lot of my old videos I used to do these intros these amazing grammy-nominated intros I had the PHP discs I had the covet lockdown add all these great intros and you guys in the comments killed me you were like Travis these intros suck Travis please skip the intros these are horrible they have nothing to do with the video so like always I listen to you guys I took them out never to do them again we're going straight to the content so what are we talking about today today we're talking about devops engineering specifically how you can become one in 2023 what is a devops engineer and what skill set do you have to learn and I'm targeting two groups of people today number one those who are already developers those already in the industry they have an interest in devops and they want to know how can I shift from a developer from an application developer over to devops engineering that's one group but we're also going to talk about this second group this second group of people are the people who are like I'm either now learning to code or I'm thinking about learning to code and I don't want to go this traditional web development route I don't want to do HTML I don't want to do CSS I don't want to manipulate web pages I don't want a front end I just want to learn a coding language do some cloud computing some Automation and get right into devops I don't like the applications I don't want to go that route I want to learn very specific things and go straight into devops we're going to talk about that group too in whether that's been doable in this video so let's get started so first let's talk about devops itself what is devops and when you ask this you get 50 different answers well I'm going to give you a traditional answer the way I see it I know now people are like well we got site reliability engineering we got platform engineering we got all this stuff I'm going to give you my traditional definition the way I see it and the way I still see it so imagine you have a group of devs you have these developers and you have this operations team so you have these developers writing the code you have the operations guys managing the servers so the developer writes the code he pushes to GitHub he takes all of his changes pushes it to a server gets over to the server and it breaks and he's like hey my application isn't working his server guys my application isn't working and the server guys are like so the servers are fine and the developer guys like well they worked on my machine why is it not working over there operations guys like I don't know that's your problem developers I know that's your problem because it's your system and there's this big debate over whose problem it is so these developers are sending stuff to the server things are not working properly whose problem so devops arose to fix this problem to come up in between the two groups and enable both of them to work together by automating the process so that it works every time so if you're currently a developer the key here is that you're enabling developers in enabling operations to do their job better if you become a devops engineer you're no longer an application developer okay you can't can't think in code bases and front ends and applications and guise and all that stuff your job is actually enabling those people making the job for those people easier and you do so by automating What's called the software development life cycle so I looked online and I found this chart here you can find them everywhere in all different Fashions but this one looked pretty good to me and what you have here is this continuous flow note the infinity symbol a continuous flow between development and operations and this is basically your blueprint as a devops engineer you're going to sit in between development in operations and you're going to automate the whole process so that everything runs smoothly between the two via this software development life cycle so let me explain this chart real quick so you have planning and all of this is continuous you can put the word continuous in front of everything because it just continues so let's start out with this plan part of the chart so planning planning is just agile practices so think scrum and we're going to talk about that in a minute but basically you're planning your work you're breaking it into smaller pieces and assigning it out for people to do that's your planning then you move on to the code section which is your developer's writing code and pushing that code to GitHub or wherever some code repository and there's many Engineers doing that so this group of developers is working together they're coding the application or whatever it is and they're all pushing their code up to this version control then there's the building and testing part of things this is also called CI we'll talk about that in a minute so building and testing you're basically committing your code and git which kicks off a build of your artifact and it runs your tests this might be performance tests bug tests code tests now CI stands for continuous integration so continuous integration allows developers to merge code into the code Branch many times per day each merge triggers a code build which is like compiling in a testing sequence of some sort and the goal of this testing is to produce an artifact that's safe to deploy and that artifact may be a binary a container or some kind of a website build it's making sure this version of code that I'm pushing is safe to be deployed so you're building you're testing the CI portion of this and then you move on to the release in deployment now the release and deployment part of it is the CD so you hear in a lot of devops CI CD continuous integration and then CD which is continuous delivery or continuous deployment there's a small difference between the two so you've compiled your code you've tested it you've determined that it's safe to be deployed in the cd part of it is the deployment or release of that code out to the server and a lot of times this hits a gate which some team lead or something is going to have to manually accept it to move it down the pipeline but just think code is now deployed the next section is this operate and monitor so in this operate monitor section applications are being maintained they're being monitored problems are being noted Engineers are ensuring High availability all of these things so there's the operate and monitor part of it and this all leads to some kind of feedback so here's the problems here's the limitations the things we ran into that goes right back into planning and that's the cycle we plan we code we build and tested CI we release and deploy it CD there's the operated monitor part where we're seeing how it works making sure it's fine noting the problems and all of that feedback goes back into planning it's a continuous infinity loop that's the software development life cycle so now that we've looked at that and we've talked about what devops is what skill sets should current developers learn so you're already in the in the field you're already a developer what skill sets should you learn to become a devops engineer maybe you like the philosophy maybe you like automating all the things and you're just interested in becoming one what skill sets should you learn so here's a few that I've noted number one Version Control but you're already a developer you already know this let's move on number two Linux you can't get by Linux everywhere I go there's Linux all major servers are running Linux I had a comment in a past video where this guy was like I've been in the I.T business 20 years and I've never used Linux mind-blowing to me not saying I don't believe you I just can't believe that's the thing but maybe you're in a window shop or work for some company that just deals with windows I don't know but in my experience you need to be comfortable in Linux number three coding you got to know at least one major coding language like python or JavaScript or c-sharp or golang or something like that which you already know because you're a developer so let's move on number four you need to understand on the surface Agile development now Agile development is just incremental time-based lean approaches to the delivery of projects so you have this window of time called a Sprint so let's say two weeks is your Sprint that's what I'm used to so what happens at the beginning of those two weeks you have the Sprint planning where all the work all the things you need to do comes in and you go over it and you assign it out to all of your engineers on the team and then you have these daily stand-ups every single day you have the stand up in each person on the team gives a report on what they're working on and how their status is going and then at the end to the two weeks all of the code that's on development or staging or whatever gets pushed out to prod or maybe you push it sooner than that it can depend but the point is you got two weeks you got all the work comes into the beginning you divvy out the work and then at the end you push everything out you sit down see where the problems went have the new problems come in and then you go back you plan for the next two weeks and it's this continuous cycle and it keeps you in this cycle of delivering the work actually I got a picture here uh yeah here's a here's a here's a good idea it's by edu Rika I'm not stealing your picture here I'm just using it it's very good but basically here's the first iteration this will be the first Sprint you discover the problems you design what to do and you develop it that swirls into the second iteration so your first iteration we did this we need to make it better the second time second time you discover what makes it better what the problems are you design it you develop it you go into the third iteration in Sprint after Sprint you're meeting goals you're making the application or whatever better you're fixing the problems and it's this ongoing betterment of the project and you can Google it and get get a better explanation than what I'm trying to say but make sure you have a base understanding of Agile development or scrum whatever you want to call it I think agile is a subset of scrum oh and there's a scrum master all right number five operations you need to understand the operation side of things this is probably the biggest thing with developers is they're busy writing the code and stuff a lot of them don't know the operation side they don't know servers they don't know the maintenance of servers and networking and all of that stuff that the operations team is good at in my cheat here to get good at operations is just get Cloud certified somewhere go to AWS learn AWS and pass these certified Solutions architect associate certification that'll teach you lots about operations in networking and servers you'll learn a bunch of stuff on that side of things if you want to take it a step further look into the associate sysops certification that one's a bit hard but if you pass that one you'll have a really good understanding of operations I mean everybody's moving to the cloud or already in the cloud I would just do that number six you got to learn kubernetes in Docker well Docker than kubernetes one of the big problems with developers is it works on my machine but it doesn't work on his machine or he gave me this code and I can't get it to run well Docker makes it so you have this Docker image that you can build and it's the same on every computer it builds this container on your computer it builds a container his computer builds a container and it all runs the same you don't have any problem works on his machine it works on my machine then kubernetes is a container orchestration platform where you deploy that container and you set up networking and all this stuff in all of your containers run there they're self-healing if they crash and other want to come up it's like the industry standard for devops engineers so learn Docker then learn kubernetes I have a YouTube video I'll link it above you can learn Docker in an hour I'll explain it to you in one hour make sure you check that out I got another one where I kind of go over kubernetes but it's surface level and you should probably get a course to go deeper into kubernetes because that one's a little bit more complex number seven understand infrastructure as code just go learn terraform infrastructure's code is just a way of saying I have this infrastructure these servers this private Network these disks and all this other stuff and all of that is being represented in this yaml file this code and what I can do is I can just run this code and it'll build all the stuff for me so here's my configuration here's all of my infrastructure in a yaml file I can run it and it'll build all of that infrastructure and then I can run a destroy command it'll destroy all the infrastructure so if my environment gets wiped out I can run this file and build it all back again or if I make changes I can just make changes to the file and run the difference that's all infrastructure's code is so for this just learn terraform or if you're going to cloud computing route you're going to get AWS certified just go over cloud formation cloud formation is aws's infrastructures code solution just learn that number eight just learn ansible you got to know some kind of configuration Management in ansible is kind of the standard for that people might say learn Chef or puppet just learn ansible on all the devops applications out there they just want you to know ansible and that's basically all I'm doing here on the devops applications they'll be like you got to know Linux you got to know scrum you got to know some operations you got to know kubernetes Docker ansible and whatever else I'm going to tell you that's all I'm doing here but just learn ansible you can be learned pretty quick probably probably a YouTube video and then some practice on your computer you'll get the gist of ansible but it's configuration management it's a way to send out some configuration change to hundreds of servers or whatever in one one command all right number nine and there's only two more left this is nine out of ten number nine is learn Jenkins okay Jenkins is everywhere I think a lot of people now just hate it because it's Java but you can't get by it everybody uses Jenkins still and it's because it's compatible with everything it just works and it's been out there for a long time now Jenkins is a tool that can automate your entire testing phase using tools like selenium or junit these are tools that integrate with Jenkins so they can automate your whole testing phase it can compile your code every time you push it test it and deploy it and like I said it integrates with everything it's CI it's CD all in one package so do some kind of course out there on Jenkins and get to know that now again if you're going to cloud computing certification route you can learn aws's tools they have a suite of devops tools called code commit code build and code pipeline that cover the Version Control testing building and deployment part of things so you can learn that as well and then finally you got to learn some kind of monitoring solution and see here I'm kind of going through this devops lifecycle I'm just giving you one or two of the main apps that match with each section on this life cycle so the last one would be monitor you got to learn a monitoring tool funny story when I got hired as a site reliability engineer they asked me hey Travis are you familiar with elk and I was like not really because most are out west I live in Virginia and they were like and I was like they were talking about the elk stack not the animal so elk elasticsearch log stash and Cabana and I think most people are using grafana now but you got to learn these monitoring tools as well because monitoring is a big part of devops engineering you can also learn something like Splunk that's another popular monitoring tool so those are 10 tools you got to learn for current developers these are the skill sets you should go through you don't have to master all of them just get familiar with each one and then try to automate things on your own try and develop an automation mindset when you're at work and you're coding and stuff try to think about ways to automate repetitive tasks or if somebody's having trouble with something they're always having trouble with this one thing help them automate it if you have time try to develop this automation mindset practice with these tools and you'll do well you're already a developer it's just a matter of adding these skills to your repertoire now before I move on to the new developer section how new developers can go straight to devops I want to talk about how you can actually learn these skills whatever Camp you're in if you're a developer looking to add on the devops skills or if you're brand new looking to learn it all I think I found a good resource for you now of course you can go to YouTube you can go to udemy there's a bunch of places you can learn devops you can learn all of these skills one by one but a lot of people have been telling me about zero to Mastery and I checked their website out and they have a career path called become a devops engineer and it literally covers everything that I've mentioned here so what you'll learn look here learn about Linux CI CD back-end infrastructures databases which I forgot AWS Cloud monitoring and logging and infrastructures code this is the whole package combine Knowledge from different fields to become a well-rounded devops engineer for many years to come now the career path starts with learning Linux and become a Linux sysadmin and then there's like a Blog then there's AWS certified Cloud practitioner which is like the intro certification so that's good there's terraform we mentioned that here's bash scripting which is very important too I mentioned python which is the key language but bash is something you also gotta know but if You Learn Python picking up bash is pretty easy and you'll probably learn it by way of python then it moves on to AWS certified Solutions architect that's the second certification that's the one that I recommended then there's the complete python developer so you're learning python then there's the master of the coding interview system design and architecture part one this is really interesting this will be really helpful to the infrastructure side of things in your devops journey then there's the SQL and databases bootcamp then there's some soft skills and finally there's a node.js developer which I don't think you would need and then some other courses here but essentially it covers most of the skills minus the ansible and Jenkins unless it's covered somewhere and actually this terraform course will get you terraform certified so that's neat too and like I said bash scripting is very important so I'm not saying go take this course but I think it covers everything and I think it's a good structured path to becoming a devops engineer wanted to mention that now the section we've been waiting for what about your new developers is it possible to go from Zero to Hero nah is it possible though to go from a brand new developer either just thinking about getting started or one that just got started learning the code is it possible to go from that straight through to devops engineering skipping the whole web development route my answer is yes but it's going to be hard but I think it's doable and here's why when you go to the web development route the traditional web development route you're learning HTML you're learning CSS you're learning JavaScript you're probably learning like node.js or PHP or something like that if you go this route you don't have to learn any of that you don't have to worry about making things work on the web page using CSS you don't have to learn about Dom manipulation you don't have to learn those so being able to skip that whole section makes your goals shorter so that you have in replacement of those sections you skipped devops stuff and a couple of months ago I released this python AWS blueprint and essentially You Learn Python you don't do the web development route you don't do that You Learn Python well while you're learning AWS in preparing for the solutions architect associate certification and in that blueprint you also learn Linux so if you look at these 10 we just looked at Linux has covered a coding language python is covered cloud computing covered and you'll probably learn about the AWS devops tools and you'll probably learn about cloud formation that's five of the ten in that blueprint so that's an option there'll be a link below to that but ultimately here's what you would need to learn so forget about HTML CSS JavaScript forget about all that here's what you would learn if you're trying to go straight to devops you got to learn one coding language which of course you're going to choose python because python is the most used in devops okay what anybody says you can say go you can say JavaScript I don't care it's always python Learn Python well learn Linux get a cloud computing certification learn kubernetes and Docker that's going to be a tough one learn ansible and Jenkins learn terraform or cloud formation if you're in AWS and learn these monitoring tools that I mentioned before now that may seem like a lot and it is a lot and that's why I said it's not easy and that's largely because a devops engineer has the dev skill and the op skill that's why usually traditionally the devops engineer was once a developer or once an operations guy and you're trying to do it from scratch so it's going to be hard work but you're not going to go the web developer route you're going to go this alternative route and you're going to be very specific about what you take you're going to learn these skills you're going to start building pipelines you're going to go in AWS or Azure or gcp you're going to start building pipelines you're going to start thinking automation you're going to start automating all the things you're going to save all of this configuration and all of this stuff in GitHub you're going to be focused intentional and you're going to go out there and try to become a devops engineer the rest is you put in the work prove to people you know the work that's all it takes and that's devops engineering that's my video today I hope it was helpful if it was give it a thumbs up consider subscribing to the channel and I'll see you in the next video
Info
Channel: Travis Media
Views: 268,919
Rating: undefined out of 5
Keywords: devops engineer, devops roadmap, devops engineer in 2023, how to become a devops engineer, devops tools, devops skills, devops career, devops career path, become devops engineer, devops career roadmap, how to become a devops engineer without experience, devops from scratch, aws devops, jenkins, ansible, ci cd, software development lifecycle, how to become devops engineer, devops engineer skills required, devops engineer skills and tools, travis media
Id: IiuWlqabx9M
Channel Id: undefined
Length: 20min 34sec (1234 seconds)
Published: Sun Feb 05 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.