Content area
User-facing cloud applications are increasingly moving away from traditional monolithic services to a model comprising numerous single-purpose and looselycoupled microservices. The microservice model is intended to provide improved application modularity and error isolation, facilitate parallel development and deployment, simplify application updates, and scale quickly and at fine granularity to meet changing demand. However, these applications raise challenges in resource management due to the fine-grained services, complex application topologies, and the large, unpredictable spikes seen in current deployments. These challenges cause significant resource underutilization resulting in increased deployment and ownership costs.
This thesis explores multiple dimensions and causes of datacenter underutilization and identifies several gaps in prior work. We then present several solutions for efficiently managing datacenter utilization both during request spikes and at steady state. Towards this, we design novel techniques for rapid detection and root causes analysis of violations, effective management of microsecond scale bursts, and for improving steady state utilization of complex applications consisting of many fine-grained microservices. We exhaustively evaluate our solutions to demonstrate they are generalizable, scalable and easily deployable on existing cloud environments.