Seagull: An Infrastructure for Load Prediction and Optimized Resource
  Allocation
  Microsoft Azure is dedicated to guarantee high quality of service to its
customers, in particular, during periods of high customer activity, while
controlling cost. We employ a Data Science (DS) driven solution to predict user
load and leverage these predictions to optimize resource allocation. To this
end, we built the Seagull infrastructure that processes per-server telemetry,
validates the data, trains and deploys ML models. The models are used to
predict customer load per server (24h into the future), and optimize service
operations. Seagull continually re-evaluates accuracy of predictions, fallback
to previously known good models and triggers alerts as appropriate. We deployed
this infrastructure in production for PostgreSQL and MySQL servers across all
Azure regions, and applied it to the problem of scheduling server backups
during low-load time. This minimizes interference with user-induced load and
improves customer experience.
