Currently, we have two active threads with multiple research projects ongoing. One is related to rethink availability and fault tolerance in cloud systems. The other is on defensive operating systems for IoT devices.
Cloud scale provides the vast resources necessary to replace failed components, but this is useful only if those failures can be detected. For this reason, the major availability breakdowns and performance anomalies we see in cloud environments tend to be caused by subtle underlying faults, i.e., gray failure.
In this project, we present real-world gray failure examples to understand their characteristics and the risks they pose to cloud systems. Drawing from these data points, we make the first attempt to characterize gray failure with a generic model.
Misconfigurations remain a major cause of unavailability in large systems despite the large amount of work put into detecting, diagnosing and repairing them. In part, this is because many of the solutions are either post-mortem or too expensive to use in production cloud-scale systems.
The ConfValley project aims to improve the practices of the configuration validation process for proactively preventing misconfiguration from production. ConfValley consists of a declarative language for practitioners to express configuration specifications, an inference engine that automatically generates specifications, and a checker that determines if a given configuration obeys its specifications.
Nowadays there's an app for almost anything. Unfortunately, mobile apps are in general weaker in terms of quality compared to traditional software because of developer inexperiences and limited resources. Many apps, despite having useful features, exhibit immature behaviors, e.g., fast battery drain, agressive updates, excessive cellular data usage, notifications.
In the DefDroid project, we explore OS-level solutions to address the Disruptive App Behavior (DAB). DefDroid is designed to defensively re-act to app misbehavior by taking corrective actions at runtime without compromising app usability.