A system for optimizing allocation of service instances (102A, 102B, 102C, 108A 320, 420, 520), the system comprising: an allocator component configured for: identifying packing quality metrics associated with candidate nodes (302, 304, 306, 308, 402, 404, 406, 408, 410, 412), each of the packing quality metrics indicating an extent to which a service instance to be allocated utilizes resources within a candidate node including an extent to which the service instance fits with the candidate node based on remaining resources of the candidate node; selecting a first subset of nodes of the candidate nodes based on the packing quality metrics, wherein selecting the first subset of nodes includes selecting all candidate nodes having a greatest packing quality or selecting candidate nodes exceeding a packing quality threshold; reducing the first subset of nodes to a second subset of nodes of the candidate nodes based on eviction cost metrics associated with allocating the service instance to candidate nodes in the first subset of nodes, each of the eviction cost metrics indicating cost to evict another service instance from a node such that the service instance can be allocated to that node, wherein the selection of the second subset of nodes includes selecting nodes having a lowest eviction cost or an eviction cost that exceeds an eviction cost threshold; reducing the second subset of nodes to a third subset of one or more nodes of the candidate nodes based on survival metrics associated with candidate nodes in the second subset of nodes, wherein a survival metric indicates a likelihood that the service instance will not be evicted from a corresponding node within a time frame if deployed to the corresponding node, wherein the selection of the third subset of the one or more nodes includes selecting a node that is likely to survive the longest or one or more nodes likely to survive beyond a survival threshold; and allocating the service instance to one node within the third subset of nodes in accordance with the packing quality, eviction cost, and survival metrics. identifying packing quality metrics associated with candidate nodes (302, 304, 306, 308, 402, 404, 406, 408, 410, 412), each of the packing quality metrics indicating an extent to which a service instance to be allocated utilizes resources within a candidate node including an extent to which the service instance fits with the candidate node based on remaining resources of the candidate node; selecting a first subset of nodes of the candidate nodes based on the packing quality metrics, wherein selecting the first subset of nodes includes selecting all candidate nodes having a greatest packing quality or selecting candidate nodes exceeding a packing quality threshold; reducing the first subset of nodes to a second subset of nodes of the candidate nodes based on eviction cost metrics associated with allocating the service instance to candidate nodes in the first subset of nodes, each of the eviction cost metrics indicating cost to evict another service instance from a node such that the service instance can be allocated to that node, wherein the selection of the second subset of nodes includes selecting nodes having a lowest eviction cost or an eviction cost that exceeds an eviction cost threshold; reducing the second subset of nodes to a third subset of one or more nodes of the candidate nodes based on survival metrics associated with candidate nodes in the second subset of nodes, wherein a survival metric indicates a likelihood that the service instance will not be evicted from a corresponding node within a time frame if deployed to the corresponding node, wherein the selection of the third subset of the one or more nodes includes selecting a node that is likely to survive the longest or one or more nodes likely to survive beyond a survival threshold; and allocating the service instance to one node within the third subset of nodes in accordance with the packing quality, eviction cost, and survival metrics.