1. A method for assigning an assignable task in a cloud, wherein the cloud comprises at least a first resource and a second resource, the method comprising: receiving, at a first processor, a task request relating to the assignable task; determining, at the first processor, service related data relating to the assignable task based on the task request; receiving, at a second processor, resource data relating to the first and second resource, wherein the resource data relates to hardware effective to handle the assignable task; receiving, at a third processor, the service related data and the resource data; determining, at the third processor, a first correlation value between the assignable task and the first resource, wherein the first correlation value is based on a second and third correlation value, wherein the second correlation value is between the assignable task and tasks assigned to the first resource, and the third correlation value is between the assignable task and assigned tasks of a current task set, wherein the current task set includes tasks assigned to at least one of the first resource, the second resource and other resources in the cloud; determining, at the third processor, a fourth correlation value between the assignable task and the second resource, wherein the fourth correlation value is based on the third correlation value and a fifth correlation value, wherein the fifth correlation value is between the assignable task and tasks assigned to the second resource; and assigning, by the third processor, the assignable task to the first resource based on the first correlation value and the fourth correlation value.