A method for balancing backup assignments and active workload assignments for a group of service units in a system, the method comprising: distributing (702; 1300) the backup assignments for each service unit substantially equally among other service units in said group; and balancing (704; 1302) the active workload assignments among said service units in said group by: - filling an assignment table (800, 900) with assignments which associates backup assignments to active workload assignments among the service units, wherein the assignment table further comprises: -- one row and one column for each SU; -- an additional row summarizing a total number of said active workload assignments values computed with: Actj = SUM i = 1: n SUij, and -- an additional column containing a value of the total backup assignments for each SU computed with: Backupi = SUM j = 1: n SUij -- where j is an index for the columns and i is an index for the rows - wherein at each iteration, numbers shuffle in the assignment table, but the sum Backupi remains the same until the cell of the Act row has a value +/- 1 of an average computed with: Average = number of services instances, SIx × number of active assignments divided by the number of service units, SUs, whereupon said balancing of said active whereupon said balancing of said active assignments is complete. distributing (702; 1300) the backup assignments for each service unit substantially equally among other service units in said group; and balancing (704; 1302) the active workload assignments among said service units in said group by: - filling an assignment table (800, 900) with assignments which associates backup assignments to active workload assignments among the service units, wherein the assignment table further comprises: -- one row and one column for each SU; -- an additional row summarizing a total number of said active workload assignments values computed with: Actj = SUM i = 1: n SUij, and -- an additional column containing a value of the total backup assignments for each SU computed with: Backupi = SUM j = 1: n SUij -- where j is an index for the columns and i is an index for the rows - wherein at each iteration, numbers shuffle in the assignment table, but the sum Backupi remains the same until the cell of the Act row has a value +/- 1 of an average computed with: Average = number of services instances, SIx × number of active assignments divided by the number of service units, SUs, whereupon said balancing of said active whereupon said balancing of said active assignments is complete. - filling an assignment table (800, 900) with assignments which associates backup assignments to active workload assignments among the service units, wherein the assignment table further comprises: -- one row and one column for each SU; -- an additional row summarizing a total number of said active workload assignments values computed with: Actj = SUM i = 1: n SUij, and -- an additional column containing a value of the total backup assignments for each SU computed with: Backupi = SUM j = 1: n SUij -- where j is an index for the columns and i is an index for the rows -- one row and one column for each SU; -- an additional row summarizing a total number of said active workload assignments values computed with: Actj = SUM i = 1: n SUij, and -- an additional column containing a value of the total backup assignments for each SU computed with: Backupi = SUM j = 1: n SUij -- where j is an index for the columns and i is an index for the rows - wherein at each iteration, numbers shuffle in the assignment table, but the sum Backupi remains the same until the cell of the Act row has a value +/- 1 of an average computed with: Average = number of services instances, SIx × number of active assignments divided by the number of service units, SUs, whereupon said balancing of said active whereupon said balancing of said active assignments is complete.