Security-by-design in multi-cloud applications: An optimization approach