1. A method, comprising: converting, with a processor, a plurality of constraints and a goal for a cloud deployment into a constraint optimization problem; calculating, with the processor, a solution for the constraint optimization problem; and generating instructions to perform cloud resource orchestration for the cloud deployment based on the solution of the constraint optimization problem.