English | 2019 | ISBN: 1484250181 | 290 Pages | True PDF, EPUB | 10 MB
Turn your projects from a weekend hack to a long-living creation! Loosely drawing from the field known in large software companies as Site Reliability Engineering (SRE), this book distills from these disciplines and addresses issues that matter to makers: keeping projects up and running, and providing means to control, monitor, and troubleshoot them.
Most examples use the Raspberry Pi, but the techniques discussed apply to other platforms as well. This book is all about breadth, and in the spirit of making, it visits different technologies as needed. However, the big goal in this book is to create a shift in the reader’s mindset, where weekend hacks are pushed to the next level and are treated as products to be deployed. In that regard, this book can be a stepping stone for hobbyist makers into developing a broader, professional skill set.
First, the book describes techniques for creating web-browser based dashboards for projects. These allow project creators to monitor, control, and troubleshoot their projects in real-time. Project Reliability Engineering discusses various aspects of the process of creating a web dashboard, such as network communication protocols, multithreading, and web design, and data visualization.
Later chapters cover configuration of the project and the machine it’s running on, and additional techniques for project monitoring and diagnosis. These include good logging practices; automatic log and metrics monitoring; and alerting via email and text messages;
A mixture of advanced concepts forms the last chapter of the book, touching on topics such as usage of microservices in complex projects; debugging techniques for object-oriented projects; and fail-safing the project’s software and hardware.
What You’ll Learn
- Monitor and control projects, keep them up and running, and troubleshoot them efficiently
- Get acquainted with available tools and libraries, and learn how to make your own tools
- Develop deeper understanding of web technologies
- Design robust and complex systems