Delivering Applications in Hybrid and Multi-Cloud Environments