soCloud: distributed multi-cloud platform for deploying, executing and managing distributed applications