Okay, so DevOps is not any tool. technology. DevOps is a methodology. It's a way of automating your stuff, automating the life cycle of the entire software. Okay, so when I say software life cycle, so software life cycle comprises of various stages. Which is simply called as your SDLC, your software development life cycle. Okay, SDLC. Now, what exactly is this SDLC? Let's talk about that first over here. Okay, SDLC is basically various stages. Like for example, I want to build a product for my customer. up a software. So now, if software, definitely to build that software, I have to go through various stages. Right? Like first, I will be getting some kind of requirement from my customer. Hey, you can you build this? So now, if I want to build a product, I need to ask my customer, okay, what needs to be built, how it what are your problems that you're facing, what is the features that you're looking to inculcate in the product? So basically, the very first stage of my software development is gathering of requirements. We call it as requirement gathering. This is the very first stage of my software building. Now, once I have all the requirements with me, now Now, now next I want to do is I will Once I do show my customer, "Hey, you need to do this. Hey, that. I need this. I need that. " Once I have everything with me, I will start with the planning of the project. A planning phase of the project. Now, this planning phase basically includes your technical planning as well as non-technical planning. Like, if I talk about technical planning, it includes creating a Non-technical basically means creating a hiring people, okay, creating teams who are going to develop, test, who will be the architect, who is going to deploy, okay, so to start building the team, okay. That comes under the non-technical planning, hiring resources, costing, budgeting, okay, if we need to meet the customer, any kind of travels with plan travel plans for the customer. All these things will come under the planning phase. And apart from that, there will also be technical planning. Technical planning will be creating documentations, creating road map for the product. Okay, what we need to deliver in the first 3 months, then in the next 3 months what we need to deliver. That will be your technical planning. Non-technical means we need to create budgets, we need to get the cost approved from the customer
Frankly speaking, as a DevOps engineer, you don't need to work on thousands of tools. You just only need to focus on few of the tools which are very relevant in the market, which are high demanding in the market, and which people are using, which community is using. You get a good support for the tools. Right? So, mastering thousands of DevOps tool is not the key idea. Mastering those tools which are which are industry by the IT professionals and which have a good community support, those tools we need to learn. Okay, so here what are those tools? Let's talk about that. For example, Git. Okay, so now to perform DevOps, we need these tools. As I said, DevOps is not a tool. technology. DevOps is a methodology. It's a process. And to achieve that particular process, we require some set of tools. Okay, and what those tools are that we are going to discuss now. So, the first tool that I'm writing over here is Git. Okay, then we have Jenkins, Maven, Ansible, Terraform, Docker, Kuber, then we have your other tools for monitoring like Prometheus with Grafana, Prometheus and Grafana. These are two different tools, but yes, used very widely. Okay, so over here, what is the use case of these tools? Let's try to understand that. Okay. So, when I talk about Git, Git is a version control system. Guys, now these are not the only tools that are available in the market. As I said, there are many tools. 500 plus tools are there. If you want to see some tools, like only for source code management, see eight tools are available. I have GitHub, Subversion, Perforce, Bitbucket, GitLab, JFrog, Sonatype Nexus, Compuware, ISPW. There are a lot many tools. Right? Then for database automation, we have continuous integration, we have See this, the number of tools. Okay, but again, these are the tools that I have written over here. are very widely used in the IT industry with community support. So that's why we are mainly focusing on those two. I will also talk about the alternatives of Okay, side by side I Like Git. Git is a version control system. Now when I say is that at you lock many things. You do automation on lock many things. Like you're going to compile, test, package, deploy, monitor, secure. Lot many things you're going to do. But the big problem here is that will you do it manually? Will you be compiling manually, testing manually, packaging manually? No, you need quiet tools. You will be writing lot many configuration files. some kind of scripts. Right? And the big problem is that you will be making changes in that script as well on a daily basis. Let's suppose I wrote a script today. I made some changes tomorrow. day after tomorrow. After that I also made some changes. So I'm making changes at a regular interval. So the question is how will I track those changes? What changes I made on what day? How will I track it? Let's suppose I want to revert it. Then I need some tool that helps me in controlling the version of the files. That's where Git come into the picture. So Git will track, okay, on Monday this was done, Tuesday this was done, Wednesday this was done, Thursday this was done. Now you want to go back from Thursday to back to Tuesday, you can do using Git. So Git is nothing but a version control system of VCS. Alternatives of Git if I talk about you have SVN, Mercurial. These are some of the alternatives of Git. Okay, SVN, Mercurial. Okay, GitLab, Bitbucket. There are more. You will see more alternatives of source code management. Subversion, SVN is subversion. Yeah, JFrog Artifactory, Bitbucket. There are a lot many. Okay, but Git is one of the most popular tool. And tools are open source. Whatever tool I have written over here are all open source. This is one of the very big thing. You don't have to pay for licenses. the cost. Understand that. Okay, then Jenkins. Jenkins is nothing but an integration tool. A tool that will be performing from where you will be doing all these automations. Like you need a platform from where you can download the code, where you can compile, where you can build, means test, where you can package, and where you can from where you can deploy. I need a common platform. Right? That particular platform platform That particular tool is nothing but Jenkin tool. A tool that integrates various stages of DevOps. Like I need a platform from where I can do building, compiling, the deployment, all those things. That tool is Jenkins. And those And when I talk about Jenkins, there are a lot, Bamboo, the Circle CI, this a lot many. Let's go into the PPT and let's See, Bamboo, CI, Circle CI, AWS CodeBuild, like on cloud as well you have something AWS CodeBuild. This is one of the tool which is similar to your Jenkins. Okay, which is building your code. Okay? Then we have another These are alternatives. And your periodic table is nothing but a table which includes all these tools. Like what is periodic table, guys? Periodic table anyone says DevOps periodic table, it is nothing but a collection of these tools. Like for example, over here all these tools in the black that you see. See these black tools. What are these? These are your integration tools. Two A tool that integrates various stages stages of DevOps. A tool from where you can perform various stages of DevOps, that is called as integration tool. Jenkins is one of the integration tool very highly used. However, you have other Bamboo is there, CircleCI. Travis. Okay, you have this code What is this CodeShip? TeamCity. VSTS, AWS CodeBuild. See these tools. Okay? The one in the blue. The one in these blue. What are these blue ones? Okay, so I don't know. You can check. In the DevOps table. And you know already what these tools are, but you can check if you don't know. These all are testing tools. Right? What are these red ones? These red ones are nothing but your source code management tools. Right? These are different tools that we are using on a day-to-day basis. Now, as I said, you don't need to master all these tools. No. Just one tool is fine. Which is very popularly used in the industry and Jenkins is that tool. So, it's good to learn Jenkins definitely. Understood? So, here get is coming on to Maven. Maven is nothing but it's a build tool. We compile the code base, test the code base and that package the code base. This that is Maven. Now, if I talk about Maven alternative, you have ant, you have Gradle. You have g r a d l e. These are the alter Maven. Right? Again, you can see all these tools. Then, we have Ansible. Ansible is a con management tool. And Terraform is a infra as a code tool. Structure What do I mean by that? Let's try to understand. About the coming up package. And that package Java my application the Java file. Now, I will find 100 The question is will you do this manually? Will you go and deploy this 100 servers? You need to deploy this application on 100 servers. So, there are two questions. How you will create 100 servers? How will you create servers? That is a question. Okay. And second, how will you deploy? So, okay. I have the simple answer. I can create all those 100 servers manually. I can do it, but the problem is if I'm doing it manually, it is time consuming and chances are I can make mistakes. There are chances that I may make some mistakes. Okay. Apart from that, I can also deploy manually on those 100 servers. But again, time-consuming and chances are I can make mistakes. So, how are you going to put it deploy these 100 servers? Manually? Time-consuming. Chances you got you are making mistakes. So, here I will be using tools like Terraform. Terraform is nothing but a IAC tool. We call that IAC infrastructure as a code tool, IAC tool. And the main use of this tool is to provision your infrastructure. To automate your infrastructure provisionings. Okay, I want to create 100 servers. I will write a script. Terraform script. I will execute that Terraform script. The entire infrastructure is ready in like 15 minutes, 20 minutes. If I'm doing it manually, creating 100 servers will take me 1 week of time. Let's suppose I'm just creating 15 or 20 servers a day. So, 1 week of time it will take. Within 20 to 30 minutes using Terraform, you can do the entire infrastructure deployment. Right? And that's where Terraform come into the picture. And if you talk about the alternatives of Terraform, AWS CloudFormation. You have Crossplane. You have Pulumi. Okay, you have Azure Resource Manager. These are some of the alternatives of Terraform. Terraform provides infrastructure provisioning. Now, once servers are created, let's suppose you have all servers 1 2 3 Okay, once these servers are created using Terraform, I want to deploy the application application. jar file on these servers. How will you do? Will you deploy this manually? Will I go and deploy these application manually? Answer is yes, I can do. Time consuming and chances are I make mistakes. So, how will you automate application deployment? Any configuration deployment, I want to automate configuration deployment. This is configuration. Here, I will be leveraging Ansible. Ansible is nothing but a config management tool. A tool that allows us to create any to deploy to execute any configurations or to deploy or any applications to de- deploy any settings on our servers on