DevOps Online Training
Devops Tools Online Course syllabus
This course is all about Devops tools. Before learning these tools and their practical implementation it is very important to understand what Devops is, why Devops came in and how this is helpful in achieving great quality products. So, let us start why Devops came in to existence.
WHY DEVOPS CAME IN:
As the name says, it is a combination of two teams Development and Operations.
DEVELOPMENT TEAM: In this team people who write programs are called Developers or Programmers. QA (Testing) people are also included in this team. The major task of this team is Coding, Design and Testing.
OPERATIONS TEAM: The team of people who are System Admins, Network Engineers and DBA all these come under Operations team. The major task of Operation team is to manage the servers, to manage the services of those servers, networks, access, logins. All this will be taken care by Operations team. Means in simple we can say Infra management is taken care by Ops team. Similarly Coding, Design, Implementation, Testing, Release and Delivery and Interaction with the customer, all this will be taken care by Development team.
So, these are the major tasks of the both teams. And let’s suppose Developers have to do some Coding or Testing or they need any changes in infrastructure, they request the Ops team, and Ops team will serve the request of Dev team.
Let’s suppose Developers have raised a request to change the infrastructure or else a new service from the infrastructure they request the Ops team and Ops team serves the request of the Dev team. Meanwhile before they serve the request of the Dev team, Ops team will do a lot of checks because if this change is made, is this change is going to affect the infrastructure or any servers going to be affected, any network or any services are going to be down. All these checks will be made by the Ops team before they serve the request of Dev team.
So meanwhile Developers are still waiting for the change they need and Ops team are still making the checks, and even though they do all these checks, if something goes wrong, they should be ready to handle it. So, this is a time taking process and it takes a lot of time. Meanwhile Developers are still waiting for the change they need.
So, Developers think that Operations are taking a lot of time to serve the request. Similarly, Ops team think that Developers always requesting something which may bring some problem to Infrastructure. Hence there is gap between the two teams. And the Development team as always looking for some facilities, some changes in the infrastructure whereas Ops team is looking for stability in the infrastructure. They need’s, the infrastructure should be stable. So, the way they work, the way they think is different. Thus, there is a gap between the teams because there is no proper understanding, and proper communication between the teams. So due to lack of proper communication and collaboration between them, there is a gap between the teams. So, this is one of the reasons why Devops came in. And let’s see the other reasons why Devops came in.
So, let’s first talk about waterfall model to discuss other reasons. We know this is a very typical model which served the industry for decades. And coming to this waterfall model there are different phases or the activities in the waterfall model like Requirement gathering, Design, Implementation, Testing, Deployment and Maintenance. So, these are all the different phases which goes in sequence and it all just goes in a one direction. It all just goes like a waterfall in only one direction. Let’s suppose we were in some Implementation Coding stage client came with new requirements; the new requirements cannot be accommodated. There is no way to go back. Going back is not possible. Feedback is not possible in this model. So, it should go only in a sequence in one direction. So, it is a major drawback. So, with this model there are a lot of challenges for both Dev and Ops teams.
CHALLENGES IN WATERFALL MODEL:
1. It’s a very slow model.
2. It is a very time taking model
3. Bugs fixing is also very slow.
4. Software is delivered only after complete software is ready.
5. It is not flexible to handle new requirements.
6. There is no proper configuration management
7. Monitoring the Infrastructure.
Because this is a time taking process Servers should be maintained for a longer duration. All these are the challenges in waterfall model which are faced by the both Development and Operation teams. So, to overcome all these challenges in waterfall model, there comes something called AGILE methodology.
Before going to AGILE methodology, lets recap the WATERFALL model. If we talk about the major phases of Waterfall, DEVELOPING ->TESTING->DELIVERY->MONITORING. These are the major phases. And also, Development team, Testing team and Ops team all these teams are working in isolation means there is no proper understanding and proper communication between them. Simply we can say there is no proper collaboration between these teams. Let’s suppose Development team does not understand any challenges of Ops team.
similarly the case with every other team and all the phases are going on sequentially one after the other, then only once complete Development is done, Testing begins after Testing it goes for Deployment and so on. So, each phase goes one by one without accepting any changes in between. Hence, it’s a long process, many people should be working, time taking and software delivery may be after two year or three years, by that time business may had changed completely. Client does not need this product any more. So, these are all the challenges faced by the Waterfall model.
So, it overcome these challenges faced in Waterfall model we have got AGILE methodology. Agile overcomes the drawbacks of the Waterfall model to some extent. All the challenges faced by Dev team were overcome in Agile. But challenges for Ops team still remains there. How it can overcome challenges of Development team. It can overcome the challenges of Development team because it will use a concept called continuous development, continuous testing and continuous integration. What is this continuous development, testing and integration?
Here in the AGILE methodology it implements the concept of concert where in development and testing goes in iteratively or continuously, meaning it’s not that after complete development, testing begins? No Development and Testing goes here in hand and hand. Let’s suppose on week 1 there is a requirement, that is Module 1 was developed coding wise done. On week 2 immediately, this Module will go for Testing. And that week 2 Developers will start another Module. Same way Module 2 will be developed. That means Development and Testing here, are going on iteratively i.e., continuously not one after other, they are going on parallel. So, because of this methodology continuous Development, continuous Testing, continuous Integration, Agile methodology were fast. There were faster releases. Every week or every alternative week, there would be a release. Product will be developed in Dickson paths. Not yet complete software will be delivered all at once after three years like in Waterfall.
Here software will be developed in Dickson paths. So that modifications can be taken, new requirements can be accommodated and development and Testing is going on hand in hand parallelly, iteratively. As Development and Testing is going parallel then Developers and Testers work together closely. They understand the challenges of each other. There is a proper collaboration, proper understanding in between this Development and Testing teams and also it implements the concept of continuous integration.
Continuous Integration is whenever any new code changes are made to the system it would be, like any new change would be merged into the system and Tested again, Built and the process executes on every new change. That is called continuous Integration. Integrating every bit of code into the system to make sure we get a quality product and always built in stable. Ready for release. So, these are all the advantages and so it overcomes the challenges of Development teams but challenges of Ops team are still there.
Agility was lagging or Agility is missing in Ops teams because the planning for delivery is still manual. Monitoring is also manual. Only after continuous integration the product will be delivered. And then monitored. So, Ops team were lagging behind. Agility was lagging there. So Agile was successful to some extent and to overcome the challenges faced by the Development team. But it could not successfully overcome the challenges faced by the both teams. So again, to overcome all the challenges i.e., challenges faced by Development team and Ops team, there we had got Devops methodology. Before going to that, let’s have look about Agile. It has got continuous Development, continuous Testing, of course continuous integration, delivering and monitoring. Like here in Agile Development team and Testing (QA team) team were bought together. But Ops team was still left in isolation. Like Ops team does not know and understand any challenges of Developers and Testers. Similarly, Developers and Testers had got no idea of about Ops challenge. So, they were still working in isolation. So there comes Devops into picture. So, the reason why Devops came in are:
1. To overcome the gap between the teams. To make them work together. To help them work in collaboration.
2. To understand and overcome the traditional methodologies like Waterfall and Agile
3. To help you to achieve faster delivery.
4. To get qualitative products with less resources and less cost.
So that’s what organizations are looking for. So that’s why Devops came in. So how this can be implemented and what exactly it is doing, let’s look into snap.
Now we understood why Devops came in. Let’s talk about what exactly Devops is? Devops is all about continuous Development, continuous Testing, continuous Integration and continuous Deployment and Monitoring. So, the term continuous is important here because Development, Testing, Deployment, Monitoring were going continuously, iteratively. So, it would be tested, built and integrated in a system, deployed and monitored. And this complete process from deployment to till goes to production is automated. The complete work flow is automated. And because every change is going through the whole process, we can achieve a qualitative product. So that’s a great advantage of the Devops. Qualitative products with a faster delivery and which eliminates all the hurdles which we have faced in the traditional approach like Waterfall, Agile and so on.
Devops is nothing but a methodology where in Development team, QA team and Ops team, all these three teams work together as a single team with a proper collaboration, better communication and proper understanding. So, there by qualitative products are possible. So, this is how Devops helps in today’s world to extend the business to grow the heights. And so, summarizing the things, if we talk a typical Waterfall model, we have got the main phases like Development, testing, Deploying and Monitoring, there with where each phase goes one after the other. Only after completing Development, Testing begins, only after completing Testing, Deployment starts and so on. As there came Agile in which they implemented a concept of continuous Development, continuous Testing, continuous Integration, so they were at the reverse Agility in all this development process. But Deployment, Monitoring are still manual, where Agility was lagging.
So, to overcome even these problems to make the complete process Agile, to make the complete work flow automated, there came Devops. So, which is continuous Development, continuous testing, continuous Integration and continuous Deployment, continuous Monitoring, where the whole process automated and any change made to the system would go through the whole process thereby promising qualitative products. So, this is what is Devops.
So Devops is a cultural change, a methodology, so which can automate the complete work flow. So how can we automate this work flow by integration of different Devops tools. By integrating different Devops Tools, thus automation is possible. Also, by collaborating the teams, teams work in proper collaboration, proper understanding. And so Devops is a methodology, it’s a cultural change but it’s not a language or it’s not a tool or it’s not a technology, It’s a methodology, a cultural change where a mindset of people should change and they should work as a single team and also, it’s not a simple set of tools.
Whenever we say devops generally a stack of tools comes in our mind. It’s not just simply a set of tools or a stack of tools it’s all about achieving this methodology like an achieving qualitative with a faster delivery rate and within the budget and which should be easy. With Development the Product Deployment should be simple. So, this is the main agenda of Devops. And there were so many tools which helps us to implement this Devops methodology life.
If we talk about
Version Control System: there was so many Tools like Git, SVN, TFS, Perforce and so on.
Build Automation Tools: like Maven, Ant, Gradle and if you take Dotnet Applications you have something like Microsoft Build Engine and Ant and so on.
Continuous Integration Tools: like Jenkins, Bamboo, Hudson.
Continuous Testing Tools: like Selenium, Junit, TestNG.
Containerization Tools: like Docker, RKT.
Configuration Management Tools: like Puppet, Ansible, Chef, Salt, Stack and so on and
Continuous Monitoring Tools: like Splunk, ELK, Nagios and so on.
And in this course, we are going to cover these tools.
Git: It’s a Version Control System
Maven: Build Automation Tool
Jenkins: Continuous Integration Tool
Docker: It’s a Containerization Tool. And Docker Machine, Docker Swarm will be covered.
And we are planning to release other Tools I am planning to cover Ansible, Puppet, Selenium and Kubernetes. So, this is brief about the course and we are going to see now.