1. A method for dynamically optimizing workload of a cloud computing system, said method comprising: configuring, by a smart cloud workload balancer (SCWB), the cloud computing system into an operative status by defining a virtual machine (VM) topology representing a respective virtual machine assignment for each physical server of the cloud computing system, wherein the cloud computing system services a workload of the cloud computing system by use of the VM topology, wherein the cloud computing system comprises an objects database (ODB) storing system configuration parameters of: business policies, one or more physical server availability zones, one or more physical server restriction zones, one or more physical server location pools, one or more software license pools, respective available licenses per software application in the software license pools, a respective software cost per said software application, a power cost of the cloud computing system, at least one virtual machine (VM), and one or more installed licenses per VM; determining that the cloud computing system does not perform optimally with respect to a total cost of the cloud computing system based on the system configuration parameters stored in the ODB, wherein said total cost is a sum of the respective software cost and the power cost; and redistributing workload of the cloud computing system pursuant to a new VM topology that has a minimum total cost of the cloud computing system pursuant to said business policies stored in the ODB.