In this course, we introduce you to the DevOps Playbook Part 2.
The DevOps Playbook Part 2 course continues with Books 8 through to 12, covering the topics, Infrastructure as Code, Configuration Management, Continuous Delivery, Continuous Deployment, and Continuous Monitoring, where each book documents a required DevOps competency, one in which you’ll need to adopt and establish skills in to be effective in DevOps.
- Book 8 - Infrastructure as Code
- Book 9 - Configuration Management
- Book 10 - Continuous Delivery
- Book 11 - Continuous Deployment
- Book 12 - Continuous Monitoring
The DevOps Playbook Part 2 course includes 2 demonstrations where we put into practice some of the DevOps theory presented.
- Atlassian BitBucket Pipelines and Terraform
- Atlassian BitBucket Pipelines Promoting Staging to Production
Note: the source code as used within these demonstrations is available at:
- [Instructor] Welcome back! In this lecture, we'll introduce you to monitoring, and how it is considered a vital component for any DevOps practice.
A successful DevOps practice needs to be able to deal with failures. Failures can happen anywhere, and often happen when you least expect them. To be able to find and fix any failures as quickly as possible, you will need monitoring. Applications nowadays are more business-critical than ever. Applications need to be constantly managed and maintained to ensure that they are always online, available and fast. Doing so is often impacted by the trend towards architecting highly distributed microservice-based applications, where there are many moving parts.
To be able to comprehend the full picture when something goes wrong, you'll need to ensure that you have monitoring in place. Something that can give you the big-picture view yet enable you to drill down into the detail. Monitoring across both your entire software-development life cycle within applications, and on infrastructure systems, will ensure that both development and operations teams have the necessary feedback loops to allow them to continuously fix bugs and optimize the functionality, performance, and overall user experience. Monitoring can be accomplished using various tools and techniques, and is a broad subject space, but increasingly a common approach to this requirement is to use an application performance management solution, or APM for short. An APM solution provides you with the ability to detect and diagnose complex application performance problems.
The benefits of using an APM solution for monitoring are it enables end user experience monitoring. It provides application runtime architecture discovery and modeling. It provides user-defined transaction profile. And finally, it provides reporting and application data analytics.
Some challenges associated with using an APM solution are interpretation and reporting of collected data points and being able to filter and search within those collected data points.
Big players in the APM space are products like Dynatrace and AppDynamics. Other monitoring vendors to mention include DataDog, BigPanda, Ganglia, New Relic, Nagios, and Splunk.
In the following monitoring screenshots, AppDynamics has been used to automatically discover the topology of a distributed system, resulting in a unified monitoring view. The connectivity between the various components is rendered within the dashboard, and reports metrics such as number of messages passed between components, latency of message calling, component types, performance and load, and health status of various components.
Without any existing benchmarks or metrics available to you, will likely result in you being blinded and not know whether any tuning you perform makes a positive difference. Ensure that you can monitor and measure your applications and infrastructure. In doing so, you will be able to continually improve your systems and ensure that all issues are quickly resolved.
Okay, that completes this lecture on monitoring, go ahead and close this lecture and we'll see you shortly in the next one.
Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.
Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).