  Middleboxes have become a vital part of modern networks by providing service
functions such as content filtering, load balancing and optimization of network
traffic. An ordered sequence of middleboxes composing a logical service is
called service chain. Service Function Chaining (SFC) enables us to define
these service chains. Recent optimization models of SFCs assume that the
functionality of a middlebox is provided by a single software appliance,
commonly known as Virtual Network Function (VNF). This assumption limits SFCs
to the throughput of an individual VNF and resources of a physical machine
hosting the VNF instance. Moreover, typical service providers offer VNFs with
heterogeneous throughput and resource configurations. Thus, deploying a service
chain with custom throughput can become a tedious process of stitching
heterogeneous VNF instances. In this paper, we describe how we can overcome
these limitations without worrying about underlying VNF configurations and
resource constraints. This prospect is achieved by distributed deploying
multiple VNF instances providing the functionality of a middlebox and modeling
the optimal deployment of a service chain as a mixed integer programming
problem. The proposed model optimizes host and bandwidth resources allocation,
and determines the optimal placement of VNF instances, while balancing workload
and routing traffic among these VNF instances. We show that this problem is
NP-Hard and propose a heuristic solution called Kariz. Kariz utilizes a tuning
parameter to control the trade-off between speed and accuracy of the solution.
Finally, our solution is evaluated using simulations in data-center networks.
