Abstract
Microservices have become a popular way to develop and operate complex (mostly web-based) applications by decomposing software into small loosely coupled services communicating over well-defined APIs. It offers several benefits, including manageability, flexibility and scalability to name a few. However, the orchestration of microservices also becomes more complex and challenging. One of the critical problems is the placement of services which can greatly affect the communication cost and application performance. Especially, with the growing trend of multi-cloud adaptation for enterprise companies, the scale and impact of the placement problem also grows significantly. To tackle the problem, we conduct experiments on public cloud (AWS) to analyze and model the performance impact of placement decision. Then we propose a Hierarchical Placement algorithm (HPA), combining genetic algorithm and spectral clustering technique, to achieve fast and accurate placement decision. Our evaluation results reveal that HPA reduces the service request turn-around time of random placement by up to 44.66%, and only 16% slower than the optimal solution obtained by an ILP solver.