This document proposes a system for optimally migrating content distribution services between a private cloud and public clouds to minimize costs over time while meeting quality of service constraints. It involves jointly optimizing content placement across clouds and distributing user requests. The system is modeled as a hybrid cloud with a private cloud and geo-distributed public clouds. A dynamic algorithm is designed using Lyapunov optimization to optimally place content and route requests to minimize long-term operational costs subject to response time constraints. Analysis shows the algorithm guarantees costs are near-optimal and response times are within targets, even with unknown future requests.