In this tutorial, we will learn all about Azure DevOps, so basically this is going to be a complete tutorial of Azure DevOps. and everything we will learn from scratch.
So, If you are a complete beginner to Azure DevOps or you are experienced in Azure DevOps. then you can watch the tutorial and you will learn lots of things. I will say most of the things about Azure DevOps through this tutorial.
This is the first part of this tutorial and in this part, we will learn- What is DevOps in general?
We will not talk about Azure DevOps. I will simply talk about- What is DevOps? Let’s start, First of all, let’s have a look-
What is the agenda of this tutorial?
In this tutorial we will learn-
- What is DevOps?
- What is the need for DevOps?
- Who should learn DevOps?
- What are the benefits of learning DevOps?
These few important questions we are going to cover in this tutorial. Before DevOps let’s have a look at how software development works.
So basically I will be discussing a basic life cycle of software development.
The life cycle of software development
At the start of everything you have to make a plan. once your plan is ready you have to write the code, once you are done with the code then you have to build your code so that you can give it to the testing team.
Then the testing team will test the product. After that, it will be deployed on the server. Once the code is deployed on the server. There are some operations that need to be performed. The last one is the monitor.
Someone from the team has to monitor. what exactly is happening on the server? Does it need the scale up or the scale down or do need to increase the server capacity etc? All these things we need to monitor on the server. so, if you are working in a startup company. or you have very small premises or you have very few numbers of people in your team.
Then all these things are done by the same team. The same team will work on the plan, the development the also on the deployment.
But if you are working in a big organization or even if you are working in a small organization and still your organization follows some process.
Then things are a little bit different. How? All these steps are done by different teams. So, first, he has the plan for the planning of any project we have a different team. We can say this team comes under the business team or the product owner. The product owner sits with the client. And he works on planning part of the product.
Then we have the development team, the development team includes developers and the testers.
The code build and test the product and then at the last we have the operations team. The main work of the operations team is the deployed the code on the server, monitor it and operate it. So, right now we can say that we have three teams working on a particular product development.
Earlier when we were working on the waterfall model then all these teams were working independently.
When agile came in to picture the gap between these two teams was filled. Or business team or PO and the development team were working together on the success of a product.
Now we have one more team which is the operations team. Still, there was a gap in between these two teams. The development team and the operations team.
Now let’s understand, what is DevOps. DevOps is something where the developments and the operations work together. So, we have the Dev from the development and Ops from the operations.
Hence we have a new word which is DevOps. So, from this slide, you will understand that DevOps is something related to the development team and the operations team. And there is a plus symbol in between them. It means they will work together. Basically, DevOps fills the gap between development and operations.
Just like Agile did to the business team the PO and the development team. The same thing is done by DevOps for development and operation.
Let’s have a look at a few points, What is DevOps? DevOps is a culture or practice. Okay,
This is very important to understand. “DevOps is culture or practice”. Which fills the gap between the development team and the operations team.
DevOps is a tool?
If you are thinking DevOps is a tool, a process, or a methodology. Or any technique then this is not true. DevOps is basically a culture. It is a practice. both teams work together in the entire software development life cycle to ensure the quality of the product. The ability of the product to work in different environments.
Let me tell you a very general statement from the development team. So, what happens when a particular developer develops something? and he gives it to tester for the testing and if something is not working in that environment. Then there is a general excuse or we can say a general statement for the development team. That this is working fine on my system. I do not know, what is happening in the other environment. It means there is some problem related to the environment and this gap is filled by DevOps.
DevOps environment Both teams work together and they focus on the environment and the quality of the product there are different aspects that we will learn in the later part of this tutorial or in this tutorial all these points are taken care of by the DevOps. lots of tools are available in the market to automate this process, to work in DevOps there are multiple tools available in the market. You can choose any one of them. As per your requirement, all tools have their own configuration, and their own price, some of them are free, and some of them are paid. But all of them have a feature to automate your process. Ultimately all these things happen in an automatic way.
DevOps help us to run the life cycle on each commit. Or particular intervals by using an automated process.
What is the meaning of this line?
What is the meaning of this line? if you talk about the overview of the software development life cycle.
what happens initially we plan, we develop and we deploy. but if I say all these processes will happen on each commit you made to your code. so, whenever you are working on a git repository or any other code repository and you commit your code and you simply push it. all the steps happen there automatically.
so whenever you push the code it will build automatically, it will test automatically, it and deploy automatically and other operations which are available here all those operations will happen automatically. so, basically, we are taking care of each commit of the software development to ensure the quality and other aspects of the product that was all about the introduction to DevOps now the question is-
Who should learn DevOps?
This is a very important question. Who should learn DevOps? each person who is working on a software development team. Developer, tester, product owner, scrum master, etc. all the members who are working in the development of the team needs to learn DevOps I am not mentioning any technology. so, if you are working on any technology then you should learn DevOps. DevOps is irrespective of your technology if you are working with .net or java or php or angular or any other technology which is available in the market then DevOps is for your operations team obviously the operations team all the members of the operations team who is responsible for the deployment, management, the monitoring all those things, all the persons from the operations team must learn about the DevOps Individual developers- if you are not working in a team and you are an individual contributor on a particular project. Still, you need to learn about the DevOps. because it is going to improve your process. your speed of development, your speed of deployment, all these things it is going to improve a lot. Freelancers – so if you are a freelancer and you need to manage your code so, sometimes what happens is you write your code into your system. and because of some reason that system got crashed then what will happen? you will lose all your code, all your planning everything will be lost what will happen if you will manage all these things on a particular server then everything will be available to you every time whenever you will access that server from any kind of machine Management- the management team must also learn about DevOps because what is exactly is the development team is doing they can get a clear picture by looking at a few graphs and the details of the work which is going on hence management team should also learn DevOps. The Client- if you are the client of a product and some team is working on your product then you must learn about DevOps. because you can get a clear picture of what is going on in the development you can see the progress with the help of multiple types of graphs. with the help of deployment, how many bugs are there? how many stories are there? etc. these points are taken care of by the DevOps. so, if you are a client, he must learn about DevOps. and the last everyone who is related to the development of something in any way. if you are developing something and you have any connection to that development then you must learn about the DevOps
Benefits of DevOps
Let’s see what are the benefits of DevOps. fast delivery- deploying code from the Dev machine to the server is very fast so, basically, the developer has to commit the code he has to push into the particular repository. And all the processes of deploying in the code will be done automatically. so, it is a very fast deployment on the particular server. Reduce time- lots of things (Like testing, deployment, and rollback) are happening automatically. Obviously, in the beginning, you have to make some setups we have to write some code but once you are done with all those things and everything will happen automatically like the testing, the deployment all you have to do is you have to focus In the development you have to push your code and rest will be taken care by the DevOps. Rollback- any release which you think should not go to the end user(because of any reason,)
you can roll it back easily.
so, what happens is you have pushed the code which has the feature that you do not want to expose the customer simply you can roll it back very easily
if you talk about the other scenario
sometimes a wrong feature it checked in
and that is deployed on the server
still in this scenario also you can roll back your code very easily
Quality- with lots of automatic tools we can get check
the quality of code before deploying it on the server
so, there are several steps you can apply the manual testing
or the automatic testing of all these steps can be
taken care of by DevOps and you can
ensure that the quality work is going on the server
if there is some problem then you will
get to know that this is a problem
you can fix it again
you can push your code and you can again run the
the entire process to make the successful deployment
Collaboration- all teams work together to build a great product.
so, whether you are coming from the management
background or you are coming from the development team
or you are coming from the operation team
all the teams work together in order to build a great product.
More Agility- every commit is treated as final delivery.
so, if you talk about the Agile process
in Agile what happens?
we have to work in the sprints
and at the last of the sprint
you have to give something valuable product
to the customer and what is meaning of the valuable
it should be well developed, it should be well tested.
well deployed all the things
should be there in that code
now if you break it down into very small
part and we say that all these steps will be taken
care whenever you will make a single commit
that’s why we say more agility
means it brings more agility to the development
Easy to use – DevOps is very easy to use
you can learn it very fast it is very simple to use
No maintenance- there is no maintenance cost
if you are working with the DevOps
Reliable – you can trust the DevOps
that you will always get a quality of product
and the quality services from DevOps.
Secure- security is something that is the main concern
we can say DevOps is completely secure
but it depends on the tools you are using
for the DevOps. since in this entire tutorial,
we will work on Azure DevOps
we can say that Azure DevOps is 100% secure.
there is a guarantee of security
there is no doubt in the security of the process
and there are lots of benefits of DevOps
that we will learn whenever we will work on DevOps.