Summary of what we learned in 4 in-depth DevOps Video Tutorial:
We learned all about Application Performance Monitoring in DevOps in our last tutorial.
Finally, after understanding such a huge and important topic, it is very essential to recap and recollect what we have studied in the entire tutorial, what are the key learning and take away.
Read Through => Entire DevOps Tutorial Series
VIDEO Part 5: DevOps Training Series Closure – 24 minutes 34 seconds
Before actually getting on to the recap part, I would like to quickly brief about the purpose of this video.
Well, DevOps is the latest practice in the software industry and is an enhanced way of delivering the software to the customers, especially for cloud-based solutions, where software deliveries are expected to happen rapidly.
I know that few of the advanced organizations have already embraced the DevOps adoption in their deliveries and have started reaping its benefits. And more and more organizations are soon adopting this practice.
Also, maximized automation and implementing 100% DevOps culture and mindset, definitely requires its own time and depends on the organization, especially on the team and the team members who want to adopt it.
Unless everyone in the team takes DevOps goal into their mind and heart and start dedicatedly thinking on those aspects and implementing it in practice, mere adoption of automation, sophisticated processes and tools alone definitely don’t help.
This being the reason, many of the IT companies who are practicing Agile methodology of software delivery are still not there in adopting DevOps Practice. So, it is important for everyone in the IT industry to know about DevOps practice to march towards its implementation.
It is also important to understand how the DevOps practice is bringing the difference, in the way they work and the way the deliveries are happening, before starting to implement it.
So, keeping this thinking in mind, I thought it would be better to give an introduction about the entire topic, in layman terms, so that people can understand it better and more importantly can relate to what actually they are currently doing in their deliveries.
So, I’ve made my small attempt, with my simple words through this tutorial to reach out to the audience in creating a basic understanding of the DevOps topic and letting them explore further.
With this brief about my intention of creating this tutorial, I would like to express my grateful thanks to the founder of ‘Software Testing Help.com’ Mr. Vijay Shinde, for continuously supporting me in providing feedback in getting this out over a period of 3 months with all ups and downs.
I also thank him for giving me a wonderful platform to reach this video to the wider community through his highly motivating, knowledge abundant portal, software testing help.com
I thank, each one of you for going through this portal and especially this video and making my effort successful in reaching out to you and explain about DevOps.
Well, coming back to the topic, Here, we covered,
- Everything about DevOps.
- What is collaboration and how to bring collaboration between Dev and Ops?
- Key processes of DevOps, Continuous Integration, continuous testing, and continuous deployment. And
- Key concepts of DevOps, release management, configuration management, and application monitoring.
Now, briefly talking about this video,
I’ve structured this video into 4 parts, part1, part2, part3, and part4.
And have further subdivided each of these parts into blocks of smaller videos with the intention that, it becomes easy for everyone to understand well. In each of these videos, I’ve given a recap on what has been covered in the previous video and what is going to be covered in the next video.
I’ve tried to make this video as simple as possible, with simple spoken language and powerpoint slides with some useful drawings to explain the basics. Every video is independent by itself to understand its concept and need not have to refer to any other videos. But it makes sense to go in the order from part1 to part4 for the better understanding of the topic.
Well, coming to the coverage part of it,
In Part 1, we’ve covered the introduction part of DevOps. Its background, definition, value, benefits, habits and best practices of DevOps.
In Part 2 we have understood how DevOps practices are developed based on the agile manifesto and the importance of key processes like source control and Automation and how it is applied to DevOps.
In Part 3 we understood the importance of a few more key processes of DevOps like Continuous Integration, continuous testing, and continuous deployment.
In the last part, that is Part 4, we understood the importance of a few more key processes of DevOps which includes configuration Management, Release management and the application performance monitoring in Live.
So, with this brief on the structure and coverage of the video, I would like to do a quick review and recap of the entire DevOps tutorial, so that you can better relate what you have learned throughout this series.
Let's start with Part 1.
In Part 1, we understood the background of DevOps and the key drivers for the introduction of DevOps practice.
Inadequate quality and poor performance, increasing customer demands, poor customer experience, the need of faster release to market, need to support multiple platforms, more and more cloud-based and complex solutions, and complex IT infrastructures are the key drivers for the introduction of DevOps practice.
We learned, What is the aim of the DevOps?
DevOps practice basically aims at creating a culture and environment that fosters the process of building, testing and releasing software rapidly, frequently and more reliably. That’s the aim of the DevOps practice.
We understood that there is no single definition to DevOps. So, anyone can define DevOps in their own way.
So, DevOps is a
- Collaboration between Dev and Ops.
- DevOps is a culture of delivering frequent, smaller and reliable value to customers.
- DevOps is a mindset to focus on customers.
- DevOps is coming together as a team to solve the problem.
- DevOps is a hypothesis-driven development.
- DevOps is a Live site culture.
- DevOps is working as a single team.
- DevOps is proactively monitoring the live environment.
- DevOps is automation, Continuous Integration, Continuous testing, continuous Delivery, delivering infrastructure and configuration as a code etc.
So, as I said, one can define DevOps in many ways.
We also understood,
- What is not DevOps
- DevOps is Not a tool
- It is Not a standard specification
- Not a rule book or a Law
- And Not any kind of certification
- Flashpoint: Values
We learned that,
- Improved communication.
- Delivering high-quality software, more frequently,
- Improved lead time.
- More no of deployments and lesser failures in production.
Are the values that DevOps practice brings on to the table.
Now the Benefits of DevOps:
- Customer satisfaction leading to an increased customer base.
- Improved quality and performance.
- Increased collaboration.
- Faster to market, more and frequent releases.
- Releases across multiple platforms.
- Lesser failure rates, a lesser time taken to fix issues.
These are the few benefits of adopting DevOps practices.
Configuration management, release management, continuous integration, continuous testing, continuous deployment, test automation, infrastructure as code, application performance monitoring are few important practices of DevOps.
Management of technical debt, continuous focus on value to the customers, hypothesis-driven development, the measurement from deployment, live site culture, delivering infrastructure as a flexible resource, team collaboration are various other important habits of DevOps team members.
Agility metrics and Reliability metrics are two important metrics of the DevOps practice which focuses on gathering Development and deployment-related metrics.
No. of deployments over a period of time, the time taken to deploy changes are the development metrics. Whereas Failure rate of the releases, time to detect and fix issues are the deployment metrics.
Now let us revise Part 2.
Part2 is divided into 6 blocks.
In part2 block 1, we mainly learned about,
- What are the practices of DevOps which are based on the agile principles and how are the objectives of DevOps achieved through the agile principles?
- Constant interaction and collaboration with the stakeholders.
- Managing the technical debt efficiently.
- Continuous attention to details and excellence, and focus on customer needs.
- Focus on best architecture, design, requirements, testing etc.,
- Gathering metrics from the live constantly and focusing on always improving them.
These are few of the DevOps practices which are based on the agile manifesto.
So in the later part of the block, we started studying the importance of key elements of DevOps.
In block 2, we studied about source control/ version control and its importance in DevOps and how version control has brought both development and operations team together and helped in bringing transparency and collaboration between the two teams and how every single item of software development which undergoes changes are version controlled in DevOps.
Thus, source code, automation scripts, all test cases, deployment scripts, environment definitions, infrastructure configurations and all project documents are version controlled. Here we understood that, in addition to development artifacts, even Operations team uses version control to control the changes to their artifacts.
Transparency in the team, bringing the development and operations team under a single tool, single umbrella, standardizing the coding practices, carrying out development activity in parallel, removing the dependency, are the key benefits of source control.
In block3, we learned about the details of automation, its significance, and the benefits of DevOps.
We learned how automation is embedded in each and every step of the DevOps release cycle from the coding to the code being delivered into the production, across continuous delivery pipeline and Continuous integration, continuous testing, continuous deployment, including performance monitoring in production.
We understood, how the success of DevOps is heavily dependent on automation, selection of right automation framework and tools in order to make deliveries over a period of few hours and to make frequent deliveries across multiple platforms simultaneously.
We understood how automation fosters speed, greater accuracy, consistency, reliability and increases the no of deliveries. So, we concluded that building, deploying & monitoring, and everything is automated in DevOps.
In the block4 of part2, we understood how small increments of delivering value to customers in DevOps practice increases customer satisfaction and keeps the customer cool every time without any surprises.
We clearly understood that small deliveries are easy to develop, build, deploy and monitor.
They are quite faster and takes very less time to deploy, without taking any downtime in the production and hence poses a lower risk of failure in the live, even in case of failure, it is easy to roll back and debug. So, small and frequent deliveries help the team to boost their confidence in the production deployments and is one of the key aspects of DevOps.
What is actually the meaning of collaboration between Dev and Ops in the DevOps context?
We understood the real meaning of collaboration in the software development context by going through a couple of instances where collaboration helped the team in overcoming the issues together as a team.
So, ultimately we learned that collaboration is, the entire team, working constantly together to solve the problems to achieve the program goals, keeping customer focus in mind and owning every problem of the program as their own and working together to resolve them as quickly as possible, without bothering, who created the problem.
We also learned, what practices of DevOps facilitates the team to achieve collaboration amongst them.
Involving each other in their respective meetings, discussions, understanding each others task, and dependency, maintaining transparency, learning from each other, having common thinking and goal in the team and ultimately stopping the blame game and owing every problem as their own, are few practices to achieve collaboration.
Thus, we learned that the real value of DevOps is to, Value people and collaboration than anything else.
In order to inculcate a production mindset in the team version control and automate everything create small and frequent deployments, monitor the production proactively, together as a team.
Now let us move on to Part 3.
In part3 block1, we studied the details about a few more key elements of DevOps practice.
First one is continuous integration.
We learned what is CI and how important CI is in DevOps. Continuously merging all the developer's code to a central location and validating each merge with an automated build and test is a ‘Continuous Integration’.
CI pipeline includes code check-in by developers – triggering the automated build by carrying out automated unit testing.
We learnt that Continuous Integration is an automated process, which allows multiple check-ins per day, allows the team to carry out parallel development, and its quite quicker and faster in providing the feedback to developers about the quality of their code and also there is NO possibility of missing any ones code through the automated CI pipeline.
In block2, we learned about continuous delivery, which is nothing but an automated deployment pipeline.
The continuous delivery process, includes Continuous Integration, Continuous testing, and continuous deployment.
We understood the benefits of Continuous Delivery which include Increased no of deliveries, Lower risk of failures in production, increased confidence in the team, faster feedback on the delivery, improved quality and faster time to market etc.
In block3, we learned about continuous deployment and the difference between continuous delivery and continuous deployment.
Continuous delivery is an automated delivery pipeline with both automated and manual gates in between.
Whereas, Continuous deployment is also a continuous delivery pipeline but with no manual gates in between. So, continuous deployment need not be essentially a release to production, but with the feature toggles enabled.
In block4, we learned about continuous testing and CT pipeline.
We understood the continuous testing pipeline activities within the delivery pipeline, the various phases and types of testing as part of the continuous testing, how the depth of testing increases as the testing phases approaches the production, with the increasing complexity of the infrastructure.
We understood the necessity of continuous testing in order to achieve DevOps objective of continuous delivery, quality and speed to market. We also studied how continuous testing boosts the confidence in the team members towards their deliveries.
Now let's move on to Part 4:
In Part 4, initially, we touched upon configuration management in the DevOps practice.
We understood, how DevOps practice embedded Operational activities under configuration management system for managing the infrastructure.
Managing the infrastructure and its configurations as a script or code and managing the changes to the operational artifacts under a common version control tool is the key highlight of DevOps practice, where the infrastructure set up is completely automated and managed under version control.
This unique practice of DevOps brings error free set up of infrastructure. Anyone can independently set up the environment in the DevOps practice.
Configuration Management practice also removes the configuration drift, enables automated scaling of the infrastructure resources and also contributes to collaboration within the team managed under the single tool.
Then In block2, we studied, release management aspects of DevOps and its benefits.
Release management in DevOps is not just the activity of the release management team but the responsibility of the entire team too.
The release management activity in DevOps is automatically embedded into the continuous delivery pipeline. Logging and auditing carried out through the delivery pipeline help to monitor the changes to the code base.
Release management is again an automated process in the DevOps practice, which eliminates
- The manual process of managing the changes and maintaining the releases,
- Helps in making the release management activity a less stressful one.
- And has completely eliminated the downtime during the deployments, which was causing a lot of inconvenience to the users.
So, version control coupled with configuration management makes the entire release management process in DevOps.
In the Block3, as part of part4, we studied the application performance monitoring in the live environment, and its importance in DevOps practice. As against earlier way of working, software development is incomplete in DevOps unless the software is functional in the live environment.
So, APM's responsibility in DevOps is not just the responsibility of Operations team but the entire team.
We also understood the various metrics that are gathered through the APM tools from the production.
Any failures, errors, warnings, usage pattern, performance metrics, availability, scalability, custom telemetry are few of the metrics that are collected during the application performance monitoring.
Ideally, the issues recorded from the live help the team to learn from the mistakes and take preventive action in the future. These issues reported from the production sometimes also gets translated into a product roadmap.
APM enables the hypothesis-driven development, which is the key aspect of DevOps practice. Collection of metrics also helps in implementing innovative ideas by learning from the customer behavior in the live system.
So, this completes the recap of Part4
- You are clearly able to define what is DevOps.
- You Understood why an Organization needs DevOps.
- You understood, How one can get started with DevOps.
- And How to get both Development and Operations team together and bring in collaboration.
Hope you all enjoyed the range of video tutorials in the series of ‘Demystifying DevOps’. And I'm sure that these tutorials would have given you a great insight into the DevOps Concept.
Next, we will cover more DevOps Tutorials in text format to cover some important concepts like hands-on usage of DevOps tools, DevOps interview questions and DevOps service provider companies.