Is Coding a requirement for DevOps?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
so coding is one word that freaks out everybody whoever is planning to get into devops or whoever wants to switch to devops role i have read lot of comments on how much of coding is required i don't have lot of experience in coding can i get into devops engineer so today what i'm going to do is i'm going to replace that scary word coding and call it more like an automation now the reason why i'm doing this is because coding is a generic term that is used as a software engineer and when you go for interviews you might be worried that you will be asked about algorithms or you know the backend engineers usually are asked or a software engineer questions that you might get as a devops engineer so that's why i'm going to call this as an automation so from here on you will be hearing about an automation tasks that are required as a devops engineer so end of this video i am going to explain to you where this automation is actually applicable and how much of automation slash little bit coding that you have to do as a devops engineer and what programming languages that you might have to learn to become a good devops engineer and in the last part of the video i am going to share an amazing news you all are waiting for where if you want to get all the tasks that are that a devops new year would do and me along with my team have come up with the common tasks that we have been doing for last few years and we're going to share everything and you have to wait till end of that video for that news the first things first which i have addressed in my previous video as well is automation required as a devops engineer the answer is yes so the expectation from the devops engineer is that you have to automate heck out of everything so automation is very important as a devops engineer now when you go for interview it depends on the job description obviously but you will expect a questions you'll expect a lot of questions on the shell scripting and the python scripting or the python programming or integration of the tools or specific dsls that you would usually use in that tool or in that platform but essentially when you go for an interview so they will definitely ask you about what automation you have done or how much automation you know with respect to tools or what you have automated in past as a devops engineer so then the question is where does this automation fits into the devops engineer world now as a devops engineer when you are working on continuous integration or continuous delivery process so you have to automate every part of this whole ci cd process so let's start with the simple thing now let's say developer has committed the code now your role as a devops engineer is to take that code and deploy that code to the production or to the non-production or staging so till that point wherever automation is applicable you would do that and if that automation requires to write a simple shell script or if automation requires you to write a simple python script or a complex python script or using some argo cd or terraform scripts so it has variety of automation but your role is that you have to automate those things from end to end now starting from the ci process let's say developer has committed the code now you as a devops engineer when you're using jenkins let's say or gitlab ci or github actions so your role would be to take the code to integrate the unit test and you might have to explain how to indicate the unit test and then run the unit test and then if the unit tests are successful you would send in you know you would pass the build and proceed to the next step or if this fails you would inform the developer that the unit test has failed or a static code analysis test has failed that is done in the sonar cube and then the developer has to fix it so this whole ci process is part of the automation so you as a devops engineer has to automate that process whether you are using a simple groovy script in jenkins or you're using you know dsl of gitlab ci or github actions sometimes the tools will help you to write them very easily but sometimes if the tool doesn't support that you might have to write a shell script or a python script based on that and this is what is asked in interviews as well now after the ci process is done now you have an artifact let's say you got a jar file so the next step is how you can automate to put the jar file in an artifactory or an access repository how can you make api calls to the artifactory apis or a nexus api to authenticate using you know oauth basis instead of hard-coding the passwords and then having this jar file or putting this jar file into the artifactory securely and here you have to make sure that you know you're not using any developers usernames or passwords or you might have to write a python script to use the sso based authentication and now once you have the jar file in artifactory the next step is how can you take the jar file and how can you deploy that into the cloud or into an on-premise server or into a into a kubernetes cluster now here the devops engineer role will become little complex but i would not call it as complex but here you have to know how to you know provision the infrastructure whether it is on-prem infrastructure you might have to use ansible so in ansible again you can use the default modules or sensible way you don't have to code a lot because you just have to consume the modules and you have to know how to use them but let's say most of the time the modules are sufficient enough but let us say the modules that are given or the default modules that are there in the ansible are not sufficient then you might have to write the modules in python the same applies with puppet i guess you might have to write in ruby in puppets case or something else in chef's case but basically this is what is expected here for the countries for the configuration management or if you're trying to provision infrastructure on-premise now when it comes to cloud now if you have to take the jar file and deploy that to cloud obviously you have to use terraform or cloud formation and straight away you know it's very easy to use terraform you have modules again there you have to know terraform dsl but there are situations where you might have to write your own modules in there also and same with cloudformation and you would use them and then you would automate that part to deploy that or you would automate how to create the launch configurations in aws how to use the aws apis like for example 103 apis using python or how would you use you know gcps apis gcloud sdks and then provision the infrastructure sometimes if it is automatically scalable then you might have to create an image how to use the packer tool to create an image how can you create this whole chain process of taking the jar file creating a docker image out of it or creating an ami out of it in aws terms and then making the dam as part of the launch configuration and deploying that into the aws cloud or deploying that into gcp or azure so after the ci process is done most of the time you would be involved into this part like how to write the terraform scripts or how to write the helm charts if you are using kubernetes or how to configure argo cd and how this integration would actually work so this is where you are tested so what you would do is before you go for an interview you try to see how you can create this whole cicd process using automation then how can you make sure that once the code is committed how can you take that code right from you know your git lab or github repository and all the way to kubernetes or you know if you're using kubernetes that's even better because kubernetes there are a lot of jobs or how to take the code to the aws like if it's a sample spring java application or something like that or even to the gcp now after you have deployed let's say you have come this far into you know automating or creating this continuous continuous integration process or cicd process so the next part is also important because as a devops engineer these days your role is also important to maintain the servers or to make sure that the servers are healthy or you know to make sure that they are able to scale properly the scaling and scale out is working and how can you use the capacity planning whenever there is going to be a spike in the load and these are some of the sre and devops roles that are important now there as well your tasks or your automation scripts would be like how can you get the logs out of the cloud watch let's say in aws and analyze the logs or put that into s3 bucket and this is where you have to use python let's say you're part of an team where you have to find all the ec2 instances and tag them and you have to use again python using cloud functions or using lambda functions so again you have to automate that part in interviews most commonly they would ask you more about awk set so these two are commonly used in a shell scripting now you might have to write a cron job most commonly used in linux so how would you write a cron job how can you write a shell script to go through a files go through the log files sort them and find the strings inside a log file and then cad them into a different file or how would you rotate the log files if you're using a platform like cloud watch or something else then that is fine if not you still have to automate this part and let's say you're using a monitoring tool now how can you use the aps of the monitoring tool to gather some stats and then and then put that into a different dashboard if you're having your own grafana dashboard how would you display those stats into the graph on a dashboard and now you must have got some idea about how automation applies into your daily devops role or a devops job but the good news here is it is not like your normal coding as a software engineer because you don't have to think through the algorithms to code here you have to use your basic logical sense to automate the things and then come up with a decent script that would help you to complete the task which you are which you are doing manually wherever there is an opportunity that you are doing manually today which is also called as toil in sre terms so you are expected to automate those tasks as a devops engineer and that's why it is important that don't worry too much about the coding if somebody says to you that coding is requirement it is not that you know they would be asking you about how to write a software or how to code a software but they would ask you about how can you integrate certain things how can you deploy certain things how can you automate those things now how can you learn this python or shell or you know go or any such basic programming language so my suggestion is don't go to udemy master class that has 20 years 20 hours or 30 hours of course rather whatever task that i'm going to share with you see how you can automate those things by yourself so let's say you have to tag all the instances there are 300 instances in aws you know you have to tag immediately whenever the instance is whenever an instance is up or you have to shut down an instance or start an instance based on the cron job or scheduler or you have to gather some logs using cloud watch or you have to automate certain terraform scripts so what you will do is you will write down all these tasks or scripts that you have to prepare and then you straight away would use google and stack overflow to learn how to automate those things so that way unconsciously you will be learning python how to use python basic stuff and as well as how to automate these things because the moment you start learning or start going into these udemy classes where they're going to teach you for 20 hours you would be bogged down first you'll you will think that you know it's very complex and you lose the confidence of getting into a devops neighborhood now to the last part of the video where i said i'm going to share an amazing news for you all is that you don't have to write whatever i have said as part of the tasks i'm going to share all the tasks so me along with my friends what we're doing is we are trying to collate everything that we are doing that we have been doing in past as a devops engineer we want to create each and every task at a high level and then what programming language that's been used so your next job is to see how you can automate that task don't expect us to write a script and give it to you you have to do your due diligence as an engineer and that's expected from you as a devops engineer and do your research and see how you can how you can automate that task and the best thing is i'm going to put it in the i'm going to put this in github page you can also contribute based on your experiences or if there are if anybody who is watching this video who have very good devops experience please contribute to that github page so that it will be helpful for the whole devops community and i'm going to share this link in my instagram post first and then i'm also going to share this in my other social channels or in the community post but if you haven't followed my instagram please do follow there so that i can easily share the updates now i hope that this video gave you some confidence getting into a devops engineer role or preparing for a devops engineer role so don't worry too much about coding think this as an automation task that you have to do as a devops engineer role or any any engineer these days thank you again for watching this video i hope this was a helpful video so let me know in the comment section if you like this video and do share it with your friends and let me know in the comment section if you want me to share any such content thank you all take care bye you
Info
Channel: Cloud Advocate
Views: 61,678
Rating: undefined out of 5
Keywords: Google Cloud, Cloud Computing, Cloud Technologies, Cloud Engineer, DevOps specialist, AWS Cloud, Amazon Cloud, Cloud Career tips, cloud advocate, devops coding, is coding needed for devops, devops tasks, devops automation projects, devops engineer, how to become devops engineer, how to learn devops, where to learn devops
Id: yDGCzbMbnhM
Channel Id: undefined
Length: 14min 7sec (847 seconds)
Published: Tue May 17 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.