Is DevOps right for you? 13 points to consider

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
You all know that devops is already very popular  and highly demanded. You see organizations   adopting it worldwide and it seems like a great  career choice with lots of job opportunities,   high salary and generally a very rewarding  work, but maybe devops is not for everyone.   It takes a specific type of person to be  interested in devops, so the question is:   "is devops profession right for you?" And in  order to answer this question in this video I will   explain what are the qualities and characteristics  you should have if you want to get into devops,   what kind of thinking and approach is required  in devops with soft skills as well as technical   skills you need to have and finally what are  some challenges of being a devops engineer.   And if at the end of the video you do find  out and decide that devops is indeed for you,   I will also show what next steps you can take  to get into devops. So let's get into it! First of all, you need to be a generalist  rather than a specialist. What does that   mean? In devops you don't just learn one  tool or one concept and then specialize in   it. Instead you need to master combining many  tools. Some people love focusing on one area   of expertise and deepening their knowledge  in it, like if you learn JavaScript you can   master it on an advanced level and become an  expert JavaScript developer, but in devops   you can't just learn Docker or Terraform and  become an expert Docker or Terraform engineer,   you need to have a tool set of various tools you  combine in order to build devops processes. Even   as a junior devops engineer just knowing  two or three tools won't help you here,   so you should like learning many different  things and building a wide skill set. Because you need many tools you also need to  develop a skill to compare, quickly assess and   decide on which tools and concepts you will use  in your projects. Like "do we need GitOps or is   it just over engineering for our specific  use case and project". "This tool is great,   but is it ready and mature enough to be used  in this project?" "Should you use Terraform   or Pulumi ?" It's a strategic decision, right?  Use Terraform which is an industry standard or   Pulumi which is more developer friendly and  developer centric. And for those decisions   you need to be able to evaluate and test  various tools, you also need to consider   many aspects and make efficient comparisons  between different technologies to decide   which tools and concepts match to your specific  use case and will work best for your project. In order to make those strategic decisions on  which tools are best for your specific project   and use case, you need to have a good high level  overview and end-to-end understanding of DevOps   processes. You need to understand which tool  fits into which part of those processes and why   you're using them. You need to zoom out to see the  connections between the tools and different roles   in your team, the bottlenecks, possible issues  and improvement opportunities. So the scale of   high level thinking is one of the most important  ones when you're getting into DevOps. For example,   when you're building a CI CD release pipeline you  need to understand the whole software development   life cycle, you need to understand which roles  it affects, what steps need to be combined in   which order, which systems are affected and who  is responsible for what. Just like an architect,   who designs the whole house, considering the  size of the lot, size of the house that needs   to be built, the surrounding space, inner space  and all the aspects around it, making a master   plan for building the house. The same way you are  architecting the DevOps processes on a high level. As I already mentioned, when you have a good high  level overview, it's easier to identify issues,   bottlenecks that slow down the process or possible  improvement opportunities in the DevOps processes,   like release pipeline, monitoring  infrastructure management processes   etc. So when you see the whole DevOps process  is one continuous line it's easier to see those.   Identifying issues is the first step in solving  them and considering that many DevOps processes   are pretty complex, it may be challenging to  see those issues and ways to optimize things,   so you need to be constantly observing and  actively looking for ways to improve things   and fix the issues. For example if you identify  that developers always need to manually perform   some tasks, which takes two hours or you notice  that running tasks takes really long, so the CI   pipeline runs are very slow, you should actively  look into it and see how how you can speed up or   automate things. Things can be optimized endlessly  in DevOps. You don't just build a release pipeline   in two months and that's it. It's a continuous  improvement process, just like you don't program   an application in two months and be done with it,  you continue adding features and fixing bugs and   so on. It's the same with DevOps processes.  This means as a DevOps engineer you need to   have a solution oriented approach, constantly  looking for ways to optimize and solve things.   Now coming up with those solutions and improvement  ideas will also require creativity and innovative   thinking. Why is this especially important in  DevOps? Again because in DevOps the processes   are very complex and covers so many parts of  the software development life cycle, things are   often not so straightforward. So for one specific  task there may be 10 different ways of doing it,   so you need to combine things in a creative  way to find solutions. This means most of the   time you need to be creative and think outside  the box when deciding how to solve bottlenecks,   how to speed up DevOps processes, how to  increase the quality of product delivery   etc. This also requires innovative thinking,  because often the issues you have are very   individual for your project. So you need to have a  fresh perspective and approach problems this way.   Often you can't just see how other companies solve  the problems or how your company solved it in the   past, because it's a completely new and unique use  case so you need to find a unique solution for it. When you make a plan and come up with solutions  that affect many people, various roles in your   organization and many team members, of course  those affected people should also be on board   with those solutions. You may get resistance  from engineers or people may be opposed to making   changes to existing processes. So you need a skill  to persuade people that your plans are really good   and will indeed help them in their work and have  positive impact overall on the organization. So   as a DevOps engineer you will need to know how  to communicate your ideas and planned changes,   get people on board and advocate for your ideas.  So another super important skill you need in   DevOps is communication skills. Now let's see  why this one's so crucial. In order to identify   the issues, bottlenecks, improvements  and the respective solutions to those,   you often need input from various people  and various roles in your organization   and good understanding of their work and their  pain points. Once you have identified issues   and come up with solutions and persuaded the  team to implement those, you need to also work   closely with engineers to actually implement  that plan. So communication is the skill that   ties it all together. As a DevOps engineer you  don't work alone. The whole DevOps concept is   based on the collaboration between different  roles and team members and often these are the   roles that have different interests and tasks and  sometimes even conflicting interests. So you need   to enjoy working with people and communicating  with them since this is going to be one of the   major elements of your work as a DevOps engineer.  So being a team player is definitely a must here.   As part of communication skills you also need  to be able to effectively express your ideas   and explain your plans and strategies to the  team members. So this also goes hand in hand   with the persuasion skills. Let's see why? As I  already mentioned, your work affects many people,   you solve problems and bottlenecks for different  roles, which means you need to get people to   work with you but also share your knowledge with  them, explain new concepts and processes and so   on. DevOps engineers are also often the mediators  between different roles. So you need to understand   and communicate efficiently with people, who have  different interests, tasks and responsibilities.   For example let's say you are setting up a CI  CD pipeline. CI/CD pipeline affects developer   workflow first of all. So developers need  to be on board with what you're doing and   how you are designing their workflow, because  they need to work with it. On the other hand,   you need input from them to understand what they  need in order to work efficiently. So you can use   this input to implement the CI CD pipeline.  CI/CD pipeline also affects test engineers,   system administrators, security professionals.  So the same way you need need to understand what   these engineers need in order to do their part of  the job and naturally all their interests need to   be aligned as well. So for example, if security  needs to validate any security issues, test   engineers may write some automated tests to detect  those security issues and this automated tests   will then be integrated into the pipeline or if a  system administrator needs to enforce any policies   for developers before deploying the application  changes to let's say a Kubernetes environment, you   can help them create those automated policy checks  and then integrate them into the pipeline as well.   And if the development fails, help developers  interpret those policies and comply with them.   So you see that as a DevOps engineer you are kind  of in the middle of all those different roles,   connecting them and basically encouraging and  enforcing this collaboration between different   team members. Before moving on I want to give a  shout out to Pulumi who made this video possible.   Pulumi is a modern universal infrastructure  as code tool which is gaining popularity.   With Pulumi you can use your familiar programming  language tools and software engineering practices   to deploy and manage your cloud infrastructure  on any cloud platform. By being able to use   standard languages practices and tools uniformly  across infrastructure development and compliance   teams it brings them closer together to better  deliver and manage modern cloud applications   for example you can deliver infrastructure  and application code through a single CI CD   pipeline rather than separate pipelines for each  one this streamlines versioning building testing   and deploying cloud applications if you want  to learn more about Pulumi, I actually have   a separate video on it where you can see fully  how it works in practice with that let's move on As a DevOps engineer you don't only create  the high level design of the processes like   a solutions architect, but you also implement  things like provisioning the infrastructure,   configuring servers, writing automation  scripts, infrastructure is code or X as   code. So once the high level plan is in place,  the next step is implementation. Now there are   differences across organizations on the role  of a DevOps engineer and what its tasks and   responsibilities are. Originally DevOps was not  even meant as a separate role, but rather as an   overlaying concept. So traditional roles  like developers, system administrators   etc were supposed to take on those tasks that are  now done by DevOps engineers, but in practice it   emerged as a separate role who designs the DevOps  processes and also works hands-on to implement   those processes. So in order to implement  things you need detail oriented thinking,   to consider and pay attention to various details  and actually implement the things that you have   designed. So you need to be able to focus both  on the big picture and small details or in other   words create a zoomed out map with an overview  and then zoom in into specific spots on the map.   When needed you also need detail orientation  when troubleshooting issues especially in   complex systems like Kubernetes clusters on cloud  environments or in complex infrastructure setups Now let's say you design the processes and  workflows, you implement things and so on.   Since these workflows affect other engineers  they need to know how these processes work.   When you create a CI/CD pipeline, developers  need to know how to use it and how to develop,   what to do and what not to do. So that their code  changes actually get released by that pipeline.   Or let's say you have implemented infrastructure  as code concept in your organization. When a new   systems administrator or cloud engineer joins  the team, they need to know how the process   of creating and configuring infrastructure works.  So documenting things and making them transparent   for others in your organization is extremely  important in DevOps. The processes should be   transparent for everyone. This will make work  and collaboration of engineers much easier,   but also make onboarding new engineers way easier  as well. This means you need to be an organized   person, who document things in an organized  and structured way. This could be textual   documentation or also graphics and diagrams for  let's say visualizing architecture, workflows and   different processes in your organization. Making  things transparent, sharing knowledge, making sure   everyone has access to the information they need.  Now apart from personal characteristics you should   also have personal preferences for things that are  essential for the DevOps daily work. First of all,   you should love dynamic, diverse work with  a wide range of tasks, because as I said you   don't just work on one tool but rather your  tasks may range from coding to configuring   infrastructure to monitoring, scripting and so  on. This will also mean doing things outside   your comfort zone instead of doing comfortable  work, like only doing the tasks in your areas   of expertise. In DevOps you keep pushing out of  your comfort zone, constantly working with new   tools you don't know. So you should not be  just open to changes, but love the changes   and actively drive changes and improvements in  your organization. This also means being on the   edge of the technological changes and industry  trends, being the front of your organization   that keeps an eye and observes industry changes  and trends and improvements to implement them and   bring them into your organization. Another  personal preference that's super important   is that you enjoy identifying optimization  opportunities in the existing processes. And   I think this is a very important one. For example  you should have fun and enjoy solving bottleneck,   spitting up things, automating things and seeing  the progress from slow manual tedious work to   smooth streamlined automated processes. Now as  you're probably already thinking DevOps is quite   a challenging job. It is definitely exciting and  rewarding, but it comes with some challenges,   which you may also want to consider when deciding  whether DevOps is really for you. First of all,   constantly learning new technologies and  concepts could be overwhelming for many   people. The responsibility and the challenge in  working with people, who may be opposed to your   ideas and suggestions or generally resistant to  changes can be very difficult as well. And since   you need to communicate with various teams in the  organization, it can be frustrating if they don't   cooperate. Another common challenge is that often  there are unclear requirements about DevOps in   the companies themselves, because some companies  don't know exactly what DevOps is and where the   responsibilities of DevOps actually lie. So you  may get pushed into some role or in doing tasks,   which are not really part of the DevOps area.  Now this may change in the future when DevOps   processes become more standardized and DevOps role  becomes more standardized as well, but currently   this is a common issue across organizations.  Something that may also bother some people is   that most tasks are not visual, but rather in the  background, not directly visible by the end users   or even the team members. Sometimes the fact  that you don't even notice a DevOps process   may in some cases be exactly the purpose of the  DevOps task. Like removing the bottleneck so the   processes become more streamlined and smooth and  generally when working with people, you need to be   a person who is able to cope with that resistance  and be empathetic and don't get frustrated so   easily. So overall being a DevOps engineer is  a bit challenging, but extremely interesting as   well especially for people who love to learn  and are always ready to tackle complicated   issues. Now apart from the personal qualities  and preferences, there are some hard facts that   may be very important and influence your decision  on whether you want to become a DevOps engineer.   Something that speaks very strongly for choosing  this career is that DevOps is currently one of the   most demanded professions in the IT field and is  probably going to become even more demanded in the   next years as DevOps adoption keeps growing. So  if you're someone who takes the market demand into   account, then this will be an important factor  in the decision. If after watching this video   you think that DevOps is indeed right for you,  then check out my other video from Zero to DevOps   engineer, where you see how you can transition to  DevOps with your specific background. Whether you   are a systems engineer, software developer, test  engineer or a complete IT newbie. So be sure to   check that one out. And if you actually decide  to get into DevOps and become a DevOps engineer   and want to commit to learning it, then you  should definitely check out our six month   DevOps bootcamp, where you learn all the tools  and concepts you need to become a DevOps engineer   in a structured step-by-step way. With that, thank  you for watching and see you in the next video! :)
Info
Channel: TechWorld with Nana
Views: 106,951
Rating: undefined out of 5
Keywords: devops engineer, devops, devops engineer skills, is devops stressful, is devops for me, what it takes to be a devops engineer, techworld with nana, devops engineer roles and responsibilities, how to be a devops engineer, what skills you need to be a devops engineer, what characteristics you need as a devops engineer, is devops job stressful, is devops career good for me, is devops right for you, what characteristics as a devops engineer, why devops, become devops engineer
Id: Ms_jTcERvMY
Channel Id: undefined
Length: 19min 27sec (1167 seconds)
Published: Tue Nov 15 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.