Hello and welcome to LearnVern, I am Nikhil Gupta. Our today’s topic is the importance of DevOps and what we all can learn in this course of DevOps. So let’s start, as we discussed last time, where is DevOps used and by whom? Okay? Now we will understand what we are going to learn in DevOps. We can divide its content in 5 parts, okay. The first is version control, second is deployment, third part is continuous integration, fourth part is continuous deployment. Now you can notice here, I said deployment first, then I said continuous deployment, there is a slight difference between them.
The first deployment means whatever you are creating, you are hosting it online or deploying it online from the client side, but the other one, continuous deployment, in that you don’t have to host it manually, you have to automate it, means, as something is created, means whenever a developer uploads his code or saves it. That should be automatically deployed, you don’t need to build it again or host it again. And the last part is testing, Okay. If you are creating software, then it is very important to test it, if you don’t test it, then it will be prone to vulnerability, and it will cause problems to both, customers and your company also.
Now we will see these five parts again in detail. So the first part is version control, okay. So in version control you must have seen, for any software, if its different versions are released. If any problem arises and it is solved, or if any customer complains then that software’s version is changed, or the software is updated, okay.
So the best example for this can be our android phone. You might have heard the first android which was released, its name was android alpha, which nowadays nobody uses, and after that android beta was released, and after that google, took over android, and started naming android based on sweets. So as you know, android’s third version’s name was cupcake, A B C, as alpha and beta were already used. So to name from C they named it cupcake, and after that D that is, donut and after that, éclair. Hence they planned this way of naming it from A to Z, and every one of them was named based on sweets, okay.
So, this was about the different versions. Now we will understand, what was the need for making different versions? Okay, so if you are working on something, or five developers are working on something together, okay. And while working, many times they feel like the previous code was much better, so at that time, what you will need to do is. Rewrite the code. But if you do this, you might not have saved the code anywhere or had not taken its backup. Then, a problem will be created, right? As you will not be able to find that code. So to avoid that, many companies use version control. In version control what happens is, that code that you have, gets their version. For example, your first code will be named as version 1, and then if you make any changes in it, then you name it version 2, and after that 3 and then 4. And as the changes increase, its name, the version’s name also changes, okay. So as the version increases, that means, you have edited it, that many times. Now it is not necessary, that you have to name your versions as 1.1 or 1.2 or one two three, in numericals. You can also give them names, as I just told you about android. They have given names and also numbers to the different versions, okay. So this was about version control in DevOps.
In DevOps, version control works for giving you tools, you don’t have to manually take a backup, as this is my version 1 and this is my version 2. You can automate it. As you make changes in it, it will be automatically saved, and different versions will also be applied to it. Okay.
Now after that our second point is deployment. Now, what is the meaning of deployment? As I have created something, I need to build it, then after building, I need to send it to my client. So this whole process is known as deployment, okay. Now what is the difference between this and continuous deployment? Sometimes what happens is, you just have to deploy it, and send it to the client, and that’s it. You don’t have to change it afterwards, okay. That deployment is different for every company, some companies have policies, as there are some changes, it should reach to the client, whereas some companies do not directly give the updated version to the customers, they have to buy that different version, okay. Means if there is some company, which has some software, of which version number 13 has been bought by some client. So they will not give the updated version 14 to the client. The client needs to purchase it again, then only they will be able to get that new version, okay.
So in these cases, they use only deployment, means13 will also be with them, and then they will be deploying the 14 version of the code separately, okay. This whole deployment process also keeps on getting complicated, meaning they need to take a server and host it, or give it directly to the client, then they need to configure it. This whole process can also be automated, and this can be done through DevOps tools, okay.
Now the third part is continuous integration, now this continuous integration means, well integration means mixing anything, working together. We had five developers, now if we take an example, I have a company, in which 100 developers are working, and they are all working on a single project. So what will happen here is, we need to integrate everyone's work, and create one software, right? So if we start doing it manually, then we need to check each individual’s work, and then see how this code will merge. And if we start doing this manually, then it will take a lot of time. Now continuous integration means, we have to automate this thing, whatever our code is, will be integrated automatically. Means even if 5 people are working, or even if 100 people are working, their code should be automatically merged, okay. Although there is a problem that occurs, we will discuss it further. For the time being just understand that, in continuous integration, even 100 people can also work together and their data will be merged.
After that we have continuous deployment, the things that I said for continuous integration, the same thing is applied on continuous deployment. Means if 5 people or 100 people are working together, to create something, then after integrating it and building it, we have to keep it online. So, what will happen is, we have 100 people, meaning, someone updated something today, then someone else updated something else tomorrow. So, we will get updates everyday. So if a person is deploying it, then he will need to deploy it every day, as someone makes changes, he will need to deploy it, and it will be a very complicated process. So that’s why continuous deployment is added at such times. And that’s why, when you look online, it is said as CI CD, means continuous integration and continuous deployment, together, because if someone is integrating continuously. Means many people are working and their work is being merged, then that person needs to use continuous deployment. And if he does it manually, then, only his time will be wasted, okay. And thus continuous integration and continuous deployment, both are used together but both are two different topics. Okay.
Last part is testing, now testing has importance in DevOps because if I want to isolate tester means the tester does not know who has written this code and his only work is to check whether there is any problem in this code and if there is any problem he has to just pin out it, okay . sometimes what happens is tester might or might not say something to developer and if it is done manually then developer just refuses that error by saying that this error does not belong to me and someone else so if we use DevOps then this thing can also be handled , if any developer feels that even though my code is pinned out but it is not my problem so he can say that this problem is generated due to this code instead of my code. so it will directly go at proper place and it will be easy for tester also while testing, means he won’t need to follow extra steps as his main duty is to check the code and pin out the problem and if instead of doing that if he is engaged with developer in deciding whose problem is it ,then it will consume more time right, so instead of wasting of that the tester can directly pin out the error and for that also we have DevOps tool and we are going to discuss those tools later okay.
So these were total 5 parts of DevOps i.e. version control, deployment, continuous integration, continuous deployment and testing. Okay. Now we will see how these five parts of DevOps are used in software engineering. Now what does software engineering mean ? as in older days we did not have DevOps many companies followed modules and that modules are known as software engineering ,okay. So software engineering is nothing but it was used to develop software, now different companies can have different modules for developing software and the most common module we will see in the next topic ,okay?
So how is DevOps related to software engineering? So you can say that DevOps is also a kind of software engineering, as it has replaced software engineering, okay. As I told you DevOps is just an idea like if you want to do version control or you want to integrate continuously or deploy then it will be automatically DevOps. Means software engineering and DevOps are almost same and you can say that you are using DevOps inside software engineering or you can also say you are using DevOps instead of software engineering, so both things are almost same.
Next are the advantages. Now the older method of software engineering, what are its advantages? You might have noticed that the tester does not need to visit the developer, so there our time will be reduced and now five people are working together and there is no one to deploy it as it is automatically uploading to the cloud, it is automatically integrating , so here what will happen? Speed will be increased in developing and deploying so both tasks will be done quickly okay.
Next advantage is , you might have noticed here DevOps is continuous part means if customer is saying that I want this software and then he is asking to make some changes in the feature of software or we can take an example let’s say there is a company and client goes over there and says that I want such software on which I can upload photos means as social media app, okay . so the company is making it and suddenly the client says I don’t want just photos I want to include videos also, okay. So here what is happening? His demand is changing but if we are using DevOps then what will happen first we will give him for photos and then in the next version when it will be updated, we will include videos also in that, okay . So you might have noticed in Whatsapp , you could only send messages earlier, then gradually images were added to it, then videos were added. After that contacts and the latest is location and money . So you can use whatsapp also for sending money so gradually things were added to it, so this is also a part of DevOps. So you can use DevOps in this manner also,okay. so this is also an advantage.
Now its main importance is in same company people working at different levels like tester, developer, management, project head they all can remain connected with each other, means if tester faces any problem then he can directly tell it to developer or if management feels that this developer is not working properly then he can directly tell it to project head, means here every person working on all level in IT company if they use DevOps then they can monitor everything and their work will also be efficient and speed will also increase ,so this makes our work easy means they work at different positions but still they are connected to each other, okay.
Now after advantages we will see which tools we will use in DevOps so these version control and all is theory means if I want to perform version control then I will require tools right! so the two famous version tools are subversion and GitHub . So you can use these two tools and you can perform version control . Same is the case with GitHub , now what happens in GitHub is it is used for team management and in that you can keep everything online, okay and after that comes JenKins and it is used for continuous deployment and continuous integration and if you want to create such software then you can install JenKins in your company and then you can give access to all developers and as developers create code then Jenkins will look after it and as new version comes then it will take all the codes from all developers and the it will integrate it and deploy it so to automate this whole process we use JenKins.
After that we have docker and kubernetes, both are open source software. Now both this software work almost the same and what are they used for? The containerization system which we have, that we will learn in detail further ,so both of them work in same manner, docker and kubernetes create that containerized system, containerized system means if any configuration does not match between your computer and software then also you can easily run it, means it will isolate our whole product or software and we will learn about that in detail further when we will learn docker and kubernetes okay.
If you have any comments or questions regarding this course then click on the discussion button given below this video and post it there, and you will be able to discuss the course with learners.ok thank you
Share a personalized message with your friends.