Conf42 Kube Native 2022 - Online

How Did I Become Devops Engineer!

Video size:

Abstract

A story about a girl, who moved to Bengaluru to explore her career. That landed her into DevOps world. Yes, that’s me. I started as electronics engineer where I was managing an entire production floor that manufactures electronics product. With no prior experience in IT firm, I quit my current electronics job and started discovering options to join IT firm. That’s when I got to know about DevOps world that made me curious and wanted to know more about this world and how it actually works. I started searching about DevOps lifecycle, slowly I got to know about various DevOps tools that are used. My talk is all about my journey towards DevOps. Also I would like to share some insights on things to know before starting your DevOps career.

Summary

  • Megha Kadur will be presenting at Kube native 2022. Her talk is all about her journey into DevOps world. She will talk about things that you should know before starting your DevOps career.
  • DevOps in simple term is an integration of development and operation team. It tries to improve the collaboration and productivity. Next concept is DevOps automation with code infrastructure. Top most demanding cloud platform are AWS, GCP and Azure.
  • Containers are packages of software with all its dependencies and libraries together to run in any environment. Kubernetes is popularly known as container orchestration tool. It manages the availability, scaling and networking of containers.
  • CI CD is the backbone of DevOps continuous integration and deployment. It helps in improving the developer efficiency, faster software build, easy to find bugs and improve collaboration. Here are some things I wish I knew before starting my DevOps career.

Transcript

This transcript was autogenerated. To make changes, submit a PR.
Hi everyone, my name is Megha Kadur and it's a great pleasure to be presenting at Kube native 2022. So today my talk is all about my journey into DevOps world. How it all started actually. So before beginning the presentation, let me give you an overview about the things that I will be talking today. I'll start with my background and then I'll talk about how I got introduced to DevOps World. Then what is this DevOps? What is its roles and responsibility? What DevOps is actually trying to solve in this it world. And then I'll talk about things that you should know before starting your DevOps career because I started from a non it background and there were many things like I was unaware about. But in my DevOps journey I got the opportunity to learn those things. So then I thought okay, if I would have known these things beforehand, it would have actually helped me in fast tracking my career. So I'll be sharing those things with you and the resources that actually helped me. So let's begin with the presentation talking about my background. I have done ECE, electronics and communication engineering and I have worked for almost three years in this domain. I started off as a testing engineer where I was testing the specification of the products and components. Later on I wasn't happy with the job role that I was performing, so I started exploring different career options. So that's when I got to know about DevOps and then I wanted to know how it works and what are the things. So I started searching in Google like what is DevOps, how it works, what are the skills required for that and many more. There was plenty of information available about DevOps regarding its lifecycle and its tools. Information like what tools can be used like dockers, Jenkins, kubernetes, various other cloud providers like AWS, Azure, GCP and many more. So it was a lot of information for me to grasp at that time. So I took one step back to understand what DevOps is and why are we implementing DevOps culture and what are the challenges thats DevOps is trying to solve. So let's try to understand what DevOps is. Actually. DevOps in simple term is an integration of development and operation team. It tries to improve the collaboration and productivity. Let us understand a simple software release cycle. So in order to develop any application, it starts with the idea, gathering the information. Later on we plan it, plan the features that needs to be included in the application. Then the developer writes the code, testing of the code is done. Then we package the application so that it can be deployed in the production environment. And finally we monitor the application. So that's what a simple software release cycle looks like. So while developing the application, we might face challenges and problems such as managing and tracking the changes in the code is difficult. Manually testing of various components or modules of the project takes a lot of time. Incremental builds are difficult to manage, test and deploy, ensuring consistency, adaptability and scalability across the environment becomes difficult. Also, due to lack of collaboration and miscommunication between various teams that are working in a project, there is an uncertainty that whether the code will work perfectly fine in the production environment or not. We may also encounter issues such as blame game where the dev team tells that the code is working perfectly fine in their system, whereas the operation team on the other hand tells that the environment is configured perfectly fine. There must be some issue in your code. So this is a kind of blame game that goes on. We may encounter unpredictable issues in the production environment that had to be fixed at an early stage. There will be release and deployment mismatch happening and there will be lack of monitoring and feedback. There comes DevOps, which is one solution for all problems. DevOps is not a particular team nor a person. It's the state of mind and we work in collaboration to solve the issues and deliver the product on time. It's a culture and implementation of best practices with the help of DevOps tools. So I took an online course to understand how we can implement the DevOps. And then in my DevOps journey I started using many DevOps tools, but I had to still figure out why am I using these tools. Then I started to understand the concepts like version control. What is CI CD pipeline concept? What is infrastructure was code concept and started relating these tools with the concept. What is version control? Version control allows you to take snapshot of your project. It allows multiple users to manage multiple revision of the same unit of information. Git is one of the famous version control tool and we have GitHub.com was the code hosting platform for collaboration and version control. Git records the changes that are made to the file. So I started familiarizing myself with these various git commands and this is one of the tool thats you will require your entire DevOps journey. So do learn git top most demanding cloud platform are AWS, GCP and Azure. We can start learning with any one of this cloud platform. I started my cloud journey with Azure, so all of these cloud providers have similar concept. It's just that the naming and interfaces are little bit different. Next concept is DevOps automation with infrastructure as code infrastructure was code provides us a way to define our resources in a declarative manner and put them together in a single unit called as configuration file. Most of the cloud providers have their own infrastructure. Automation like AWS is having cloud formation, GCP is having Google deployment manager, and similarly Azure is having Azure resource manager. So let's move on to some benefits speed. It allows us to set up a complete infrastructure by just running the scripts and we can do it for any environment like dev to prod to QA. The next benefit is low cost. It helps in lowering the cost of infrastructure management. We won't have to spend money on hardware or even rent any physical spaces to store them. The next is increase efficiency. You can deploy your infrastructure architecture in many stages which makes the whole software development cycle efficient tracing and increase the team production. So the next benefit is consistency. Manual process results in mistakes. So these tool helps us in solving these issues by allowing us to write the configuration files that can be deployed again and again without any discrepancy. Let's move on to next concept that is containers. Containers are packages of software with all its dependencies and libraries together to run in any environment. Docker is the famous containerization tool. It helps us to build the code at developer side and finally ship the code and run it in any environment. No matter it is dev, QA or prior environment, it will for sure run seamlessly. Let's move on to next concept that is container orchestration. Kubernetes is popularly known as container orchestration tool. It manages the availability, scaling and networking of containers, monitoring the clusters and managing the timing of the container creation. Consider this rectangular space as Kubernetes cluster. So what is a Kubernetes cluster? Cluster are considered to be a set of nodes that run containerized application and each cluster will have at least one worker node. So what are nodes? Nodes are machine. They can be physical, on prem or virtual. A node can have multiple pods running in it. So what are pods? Pods are the smallest unit of kubernetes. We can run single container or multiple containers inside a pod and each worker node will have multiple pods running and if a container stops or dies inside a pod, it will automatically get restarted. So let's move on to one other concept that is configuration management. Once we have our infrastructure provisioned the next step is to make sure thats everything is configured so we can use various configuration tools such as Ansible, chef, puppet, saw stack and many more. Now we have CI CD concept. CI CD is the backbone of DevOps continuous integration and deployment is a series of steps that must be performed in order to deliver a new version of software. It helps in improving the developer efficiency, faster software build, easy to find bugs and improve collaboration. There are plenty of CI CD tools available such as Jenkins Circle, CI drone, Azure pipelines, GitHub actions and many more. So I started my DevOps journey from Jenkins and then I started using Azure build and release pipelines and many more. Nowadays IT companies are adapting more of proper data analytics and log management. So Grafana, Prometheus, Ilk, Stack, Splunk, all these are examples of monitoring and log management. Let me share few things I wish I knew before starting my DevOps career. Since I'm coming from a non IT background, there were many things that I was unaware about. So then I thought that if these things, if I would have known before, it would have actually helped me in fast tracking my career. So the first thing is learning a programming language. So I'll share one of my scenario, like where I face challenges. So I was assigned to a project and I was creating this build and release pipeline. So at that time what happened is the pipeline used to fail with different kinds of error and since I was not much aware about the programming language, it was difficult for me to distinguish between the error. Is it because of the code issue or is because of the configuration of the pipeline that I have done? So in this way programming language will actually help you. If I would have known those programming languages beforehand, it would have actually helped me in identifying those issues. So I prefer that in your DevOps journey, learning a programming language is actually a benefit and a plus point for us. So the other thing is understanding the concepts. So usually when people say that we want to change our career to DevOps or some other career, we just think about the first thing thats comes into our mind is like what are the tools that we need to learn in order to get the job? But that's important. But that's not the first thing. The first thing is that we need to understand the concept so thats we can relate those tools with the concept and try to implement the DevOps culture in our project. So I also had the same kind of issues. So then I started learning what DevOps is and how it actually solves the problem, how it is solving the problems and what are the roles and responsibilities. So that's how I started learning DevOps and I continued to work in DevOps domain. The other things is learn any scripting language. So this will actually help you in automating different tasks. So when I was creating different build pipelines and release pipeline. There were few steps where we had to write the script and automate it. And at that time, as I said, I wasn't aware about the scripting and since I'm coming from a non it background, so I had to learn the scripting language and then create the script and add it in the pipeline. So scripting language is a kind of benefit. If you know it, it will help you to automate your task. So the other thing is communication and collaboration. So we feel communication and collaboration is not important. But as much as learning DevOps tools is important, communication and collaboration is equally important because if we have technical knowledge and if we are not able to convey that, then it's very difficult to survive in this DevOps world. So initially when I started my DevOps journey, I was facing issues with communication also. So then slowly I started to communicate with people, collaborate with people trying to understand stand the different technologies and concepts. So it's a kind of like collaboration and we were able to solve the issues. So that's what communication and collaboration is equally important. Thank you for joining my session and I hope it's beneficial for you all. You can connect with me on LinkedIn, Twitter or on my YouTube channel. Thank you, have a nice day.
...

Megha Kadur

Tech YouTuber @ TechWithMegha

Megha Kadur's LinkedIn account



Awesome tech events for

Priority access to all content

Video hallway track

Community chat

Exclusive promotions and giveaways