Hello and welcome to learnvern, our today’s topic is DevOps. Now before starting DevOps let us understand what is the meaning of this word,okay. So this word DevOps is made up of two different words developer and operations dev and ops okay, so dev means developer and ops means operations. Now let's assume that there is an IT company in which many developers and people work, so the operations which they will perform for software development, that process will be known as DevOps, okay so if we see the meaning of DevOps, what will it be? that it is a combination of many tools which we will be using for software development and the whole process which we will follow for software development and what is the main function of DevOps?
It is basically used for increasing two things, the first is SPEED, okay to increase the speed of software development. For example, if you want to create a website which sells products like amazon right, if I recruit 5 people for creating this website, will it be easily possible? No, you need to set some guidelines between them, like which person will do which task otherwise what will happen is, if two people might create the same login page, this will be like everyone is working on the same thing, so this should not happen,right. You need to divide the whole work between 5 people so that work will be done fast, right and the process for which we use tools like 5 people can easily work together and the guidelines which will be followed by these 5 people or the work we divide between 5 people, so this whole process is also included in DevOps only.
Now we will understand why we need this? As we know, slowly and gradually, the software which we are using is getting advanced day by day, right, so we can say that the complexity of software making is also increasing, earlier creating software was not that easy but today we can do it easily, and as creation of software became easy, the requirements in that got increased. So, earlier the games which we created were like Mario, it is quite simple but today’s age game like PUBG has AI included in it, even technologies used are also advanced. This is happening because the work of software development is getting complex, okay.
So as the complexities are increasing our older methods of distributing work between 5 people and those people work on it and gives us output and the work is done, so with this, we can imagine our today’s work of software development process is getting complex, the older methods of making our task easy cannot be used today, we need to make modifications in that, means our older methods through which we used to do coding of software development cannot meet our demands in today’s date, right.
So why did this happen? Let’s understand why the demand increased? Earlier the software which were created was with the intention of people using it easily, means any person sitting anywhere can use it as we can see we have gmail google drive so all these are used by many people but what is happening in today’s date is we have tailor made services now, tailor made service means as we have AWS of amazon or we have alexa, right so these services are made for specific audiences only, which means for some specific company or for specific products, am I right? So your customers are very few and their demands are very different and in this, we cannot use our older methods in this and our customers demand keeps on changing and they want different software and we need to create accordingly, right.
I will give you an example: if we don’t meet customer demand then what will happen? You can see yahoo’s example, it is a search engine which was very famous from 2000 to 2005 and after that it was not able to meet customer’s demand and today if you ask any person which search engine do they use they will say Google, right even yahoo is famous but not as Google, why because Google kept up with trend, similarly if we talk about social media then if you don’t know, earlier facebook was not used, it was developed in 2005. Earlier we had orkut, it was a website which worked similarly like facebook, you could send friend requests to make new friends, it was the same like facebook but even it was not able to keep up with trends and today what is famous? Facebook, because it understands users and accordingly changes their software.
Even in the future, you can also notice as we had games like candy crush which was very popular then we had PUBG and in future we will have something else, so what is happening here is the trend is changing gradually. So what is the biggest goal of a software company today? Keep up with the trend, okay so for that they need to change their software again and again. So for that thing we need to understand the mistakes done by the companies which were not able to keep up with trends, okay so this whole process of software development is known as SDLC and its full form is software development life cycle, okay.
So in this SDLC the oldest model is the waterfall model, okay so we will see what we have in the waterfall model? It was quite an easy model in that you can deliver any product in 6 months easily, so first you will take requirement from user and after that based on its requirement you delivered a design to user or client, now if client likes that design then he will accept it and inform you that he wants his software in this design okay after that you will create that software and after that you will again show it to client, and client will see and say yes it is perfect I wanted this only and he will verify it. And after verification, you have to deliver the software, and after delivering, if there are some problems with it, then you will count that in maintenance. right? so our oldest model is the waterfall model, in that you take requirement and based on that you will create design and then implement that design and deliver it to client for verification and after that if any problem occurs in future then you will maintain it, done so this was very simple model known as the waterfall model.
Now after that when our whole process has been completed, client is changing its demand again and again, for example gmail, now Google has created gmail and uploaded it on internet that you can send and receive mails from here that’s it, if you have seen the oldest version of gmail is also available today if you open it in html mode okay if your speed of internet is not good, although which is not possible in today’s time, but still you can open it in normal html mode, okay. If Google also just created gmail and kept it like that only then is it possible to have these many customers on today's date? No, why? The reason behind it was it did not use a waterfall model, it used an Agile model.
In Agile model what happens is you can see here in diagram also here we first took demand from client after that we started planning on it like what we need to do to satisfy client’s demand okay, so after that planning, we created design which we showed to client and after client accepted it we implemented it and after that we reviewed it and after reviewing it we again gave it to client okay but here we have one modification, it is in circular motion means even after delivering it to client our work is still going on software now, what difference does this make? Now apart from this we have one more model called as prototype model, in that if client demands I need such software, then you will not deliver the whole software to client you will first create a prototype and that you will give to client and after that the client will test the prototype or run it and after that it will give you review that these many changes need to be done in this prototype okay, so you will make those changes and again you will give it to client and the client will again review it and say it needs these many more changes so here there is slight difference in prototype model and agile model, prototype model is also similar to agile model ,in agile model you will take requirement, do the whole process and when will you repeat it after reviewing, but in prototype model you don’t give whole software to client you just give prototype and you makes changes in that prototype only while showing it to user so they both have their own advantages and disadvantages which you can see on your own also.
What happens in both models is your client’s requirement is getting satisfied, right so your client will always be happy as you have satisfied its requirement and he will remain connected with your company and through that a software company will grow and this same thing was done by Google, we can say how Google has changed from its initial days to today’s date and still changes are going on in that, okay.
Now after that our next topic is DevOps, so in our Agile methodology means our working method was good, but, even it had its own demerits, for coding we just had to take requirement from our user and give software to him, till here everything was easy but gradually technology increased so the two technologies because of which we needed to generate DevOps, the two technologies behind it is first is cyber security and the other one is internet, now we have kept everything stored on cloud. Okay. So if you keep anything stored on cloud then there is a difference, if you are giving a software to client or user then where will he run his software? On his PC so if any client or user is accessing it through our online website okay so now what will happen? Now we have to do something through which, we can move our software from local PC to cloud online.
Now what problem we faced in the process, as we saw in prototype model and agile model we create a small part, we review it and give it to client, right now, here, if it is online then we need to publish it, now I created a small part of software and then published it online. Now when we publish it online, it is available for everyone, and anyone can use it, but now what was the problem here? If I have not given security then anyone can hack it easily or the software which is running is suddenly not working for some time, so if you remember some time back, both facebook and whatsapp stopped working for some time, and if it stops for even single minute, they face a loss of billions, so they won’t want their software to stop for even one minute or their website stops for even one minute then they need to monitor whatever they are uploading to their source code or if they are updating or changing the software then my website should not stop working even for one minute, okay.
So to avoid these types of problems we need to use DevOps, now what is DevOps? Here you can see in the image the whole process of Agile is changed, here many different modules are added in this, here you can see in image also, first we will start with planning, we will take our client’s requirement and after that we will work on how to satisfy it or how to deliver that website or software to client. okay so after that what will we do? We will directly start coding like prototype model, take requirements from client or user and then make a prototype based on that and deliver it to client and client himself will tell you what changes does he want in that, okay but this was the case earlier today, we are talking about online and we are publishing it on cloud. So first, I will start with planning, and then start coding, and after that I will build it on my local computer, building it means I will compile my code and run it, now after building it, I will test this code on my local PC. Now if I don’t test it before uploading it online, then what will happen? If there is some problem in my coding and I upload it online, then my whole website will go down. So in order to avoid that, we need to include a testing phase in it, so after building it, I tested it and after that we will deploy it, deploy means the code which we have created we will upload that from our local PC to cloud and that is known as deploy.
Deploying it means now our code or software has been uploaded to the cloud. After deploying, the next step is operate, now what does operate mean? Client will use our software, then while he is using the software we will monitor it along with them, we are noticing which thing client is using more, which thing is client favouring and we will take their review, done, now the review which we got or the result which we got by monitoring it we will make a list of things which client requires, and the list which we have created, we will take that list to planning mode again, now here we have one more word release.
Now release and deploy both words sound similar and they are the same but there is a slight difference. So when you deploy, your code will be seen only by a specific client that is called beta testing. So only some specific people can use it but if you release it then it will be publicly available and it will reach your client. In deploy, you are not giving it to client you are keeping it on cloud, as you have created gmail it is working properly on local computer, but you need to check, how it works on server, we will check how it runs on server, you will check whether your mails are going and coming, right, so if your mail is working properly, you will make it publicly available, so the same thing is done here in deployment and release.
So, in deploy we have kept it online, but we have not released it yet, means, you have not given anyone permission of using it. okay. So when you give permission to use it, we will use word release, so this whole process is known as DevOps. So this process of DevOps which I explained to you, in that we have many tools and it has many procedures. Also, starting from planning to release, you can see how many processes we have to follow, this is an infinite process. As we can see here, first we started with planning, then we generated coding, then tested it, deployed it and then after monitoring you got to know what the problems are, and then you will solve it. This process goes on infinitely as the client's demands goes on changing. The coding changes like facebook is doing, google is doing, whatsapp is doing, and they also keep on updating software so the reason behind that is also the same. They also use DevOps.
If you have any queries or comments, then click the discussion button below the video and post there, this way you will be able to connect with fellow learners and discuss the course.
Thank you.
Share a personalized message with your friends.