Project Reliability Engineering: Pro Skills for Next Level Maker Projects

Project Reliability Engineering: Pro Skills for Next Level Maker Projects

by Eyal Shahar

Paperback(1st ed.)

Members save with free shipping everyday! 
See details


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 prools, 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
• Expand your knowledge in Python, JavaScript and Linux
• Develop deeper understanding of web technologies
• Design robust and complex systems

Who This Book Is For

Members of the maker community with some development skills.

Product Details

ISBN-13: 9781484250181
Publisher: Apress
Publication date: 09/29/2019
Edition description: 1st ed.
Pages: 290
Product dimensions: 6.10(w) x 9.25(h) x (d)

About the Author

Eyal Shahar is currently based in San Francisco, where he works as an exhibit developer in the New Media Department at the Exploratorium. Eyal started his career as a professional musician, working with some of Israel's most prominent artists for over a decade. His software and hardware engineering experience includes positions in music and art related startups in Tel Aviv, Paris, and San Francisco. Eyal has a B.Sc. in Electrical Engineering from the Tel Aviv University and a Master's in Media, Arts and Sciences from the MIT Media Lab.

The exhibits Eyal makes are strange hybrids: like a maker’s project, they are usually one-offs, often consisting of patches of software written in haste, skipping over industry standards such as passing unit-tests and following design documents. On the other hand, because they live on a museum floor, they must be rock solid. As he developed techniques to monitor and stabilize his exhibits, Eyal realized he was also applying these methods on his personal projects. Eyal is excited at the prospect of making these available to the rest of the maker community.

Table of Contents

Chapter 1: Introduction
What DevOps means and why it came to be; Reflecting on the needs of makers and defining key terms and subfields of the topic.
• Origins: DevOps and SRE
• Philosophy of Project Reliability Engineering

Chapter 2: Our first dashboard: the status page
First steps in integrating monitoring code into a project; Getting familiar with key frameworks.
• Everything is a server
• Python and Flask
• JavaScript and ExpressJS
• UI Libraries roundup

Chapter 3: The live dashboard
Making a dashboard that communicates with the project in real time
• Websockets
• Dashboard design
• Working with HTTP requests
• TCP and UDP
• Inter-process communication design

Chapter 4: Make it real: A physical dashboard
Making project reliability fun and flashy
• Physical design
• Components and circuitry
• Software design and programming

Chapter 5: Logging
Best Practices of logging, what tools are out there and DIY solutions
• The good old “print”
• Where do logs go?
• Log Design
• Logging libraries

Chapter 6: Alerts
Techniques that allow projects to announce their failures
• You’ve got mail!
• Getting alerts by mobile
• IoT alerts

Chapter 7: Staying alive
Reviewing methods to start programs on startup, keeping them running after crashing, and avoiding crashes all together
• Booting up
• Crash recovery
• Error handling

Chapter 8: Troubleshooting and debugging
Putting all that hard work to use, and developing good debugging skills
• Divide and conquer
• Using your tools
• Tips and tricks
• Examples

Chapter 9: One machine to rule them all
Examining the advantages of a main server, while comparing deployment options and configurations.
• Working from home: DDNS and router settings
• Living in the cloud
• Web server frameworks

Chapter 10: Storage
Providing reliable storage solutions to data-driven projects
• Self-storage: relying on the OS
• Network Attached Storage
• Database basics

Chapter 11: A window to professional DevOps
Advanced topics for the prolific maker
• Philosophy
• Version control
• Testing
• Package managers
• Build tools

Customer Reviews