摘要
基于微服务特性和其在Docker容器中的应用,提出了基于请求频次和响应时间的容器自动扩缩容策略.不同于传统基于阈值扩容策略中使用单一系统指标,通过对微服务REST API访问的监控,使用应用级指标请求频次和响应时间,定量描述应用特征.通过测试得到不同大小容器规格与服务请求频次、响应时间的关系数据.在应用部署时,可根据服务所需请求频次选择合适的容器资源配置,在应用扩容时,可将响应时间作为扩容阈值.实验验证,该扩容策略可在满足服务SLA(响应时间等)的同时,在应用部署与扩容过程中最大化地利用计算资源.
Based on the microservice characteristics and the Docker container, a container auto-scaling strategy is proposed by using service request frequency and response time. Different with traditional threshold-based autoscaling using single system-level index, we apply the application-level characteristics,the request frequency and the response time,to describe an application quantitatively by monitoring the micro-service REST API. We can measure the relationship between container-size, service request frequency and response time. According to the relationship data, we can select the appropriate container-size by the different required service request frequency when deploy an application and we can take the response time as auto-scaling threshold when scale. The experiments results prove that our auto-scaling strategy could make the application maximizing the usage of computing resources while satisfy the service SLA, no matter deploying or scaling.
引文
[1]Amazon AWS Services[EB/OL].[2017-05-20].https://aws.amazon.com/.
[2]Google Cloud Platform[EB/OL].[2017-05-20].https://cloud.google.com/.
[3]Microsoft Azure[EB/OL].[2017-05-20].https://azure.microsoft.com/enus/?b=16.48/.
[4]阿里云[EB/OL].[2017-05-20].https://www.aliyun.com/.
[5]腾讯云[EB/OL].[2017-05-20].https://www.qcloud.com/.
[6]华为云[EB/OL].[2017-05-20].http://www.hwclouds.com/.
[7]网易云[EB/OL].[2017-05-20].https://c.163.com/.
[8]Merkel D.Docker:lightweight Linux containers for consistent development and deployment[J].Linux Journal,2014,2014(239):76-91.
[9]Richardson C.Building microservices:inter-process communication in a microservices architecture[EB/OL].[2015-07-24].https://www.nginx.com/blog/building-microservices-inter-process-communication/.
[10]Lorido-Botran T,Miguel-Alonso J,Lozano J A.Areview of auto-scaling techniques for elastic applications in cloud environments[J].Journal of Grid Computing,2014,12(4):559-592.
[11]Dutreilh X,Moreau A,Malenfant J,et al.From data center resource allocation to control theory and back[C]//IEEE International Conference on Cloud Computing,IEEE,2010:410-417.
[12]Han R,Guo L,Ghanem M M,et al.Lightweight resource scaling for cloud applications[C]//IEEEInternational Symposium on Cluster,Cloud and Grid Computing,2012:644-651.
[13]Hasan M Z,Magana E,Clemm A,et al.Integrated and autonomic cloud resource scaling[C]//IEEENetwork Operations and Management Symposium,IEEE,2012:1327-1334.
[14]Koperek P,Funika W Odzimierz.Dynamic business metrics-driven resource provisioning in cloud environments[C]//International Conference on Parallel Processing and Applied Mathematics.SpringerVerlag,2011:171-180.
[15]Chieu T C,Mohindra A,Karve A A,et al.Dynamic scaling of web applications in a virtualized cloud computing environment[C]//IEEE International Conference on e-Business Engineering,IEEE,2009:281-286.
[16]Chieu T C,Mohindra A,Karve A A,et al.Scalability and performance of web applications in a compute cloud[C]//IEEE International Conference on e-Business Engineering,IEEE,2011:317-323
[17]RightScale[EB/OL].[2017-05-20].http://www.rightscale.com/.
[18]Simmons B,Ghanbari H,Litoiu M,et al.Managing a SaaS application in the cloud using PaaS policy sets and a strategy-tree[C]//International Conference on Network and Service Management,IEEE,2011:1-5.
[19]Lorido-Botran T,Miguel-Alonso J,Lozano J A.Comparison of auto-scaling techniques for cloud environments[R].Technical Report EHU-KAT-IK,2012:1-44.
[20]Docker:What is Docker[EB/OL].[2017-05-20]https://www.Docker.com/what-Docker/.
[21]Xavier M G,Neves M V,Rose C A F D.Aperformance comparison of container-Based virtualization systems for MapReduce clusters[C]//Euromicro International Conference on Parallel,Distributed,and Network-Based Processing,IEEEComputer Society,2014:299-306.
[22]Dua R,Raja A R,Kakadia D.Virtualization vs containerization to support PaaS[C]//IEEEInternational Conference on Cloud Engineering,IEEE,2014:610-614.
[23]Felter W,Ferreira A,Rajamony R,et al.An updated performance comparison of virtual machines and Linux containers[C]//IEEE International Symposium on Performance Analysis of Systems and Software(ISPASS),IEEE,2015:171-172.
[24]Joy A M.Performance comparison between Linux containers and virtual machines[C]//Computer Engineering and Applications,IEEE,2015:342-346.
[25]Seo K T,Hwang H S,Moon I Y,et al.Performance comparison analysis of Linux container and virtual machine for building cloud[J].Advanced Science and Technology Letters,2014,66(25):105-111.
[26]Scheepers M J.Virtualization and containerization of application infrastructure:A comparison[C]//21st Twente Student Conference on IT,2014:1-7.
[27]Barham P,Dragovic B,Fraser K,et al.Xen and the art of virtualization[J].ACM SIGOPS Operating Systems Review,2003,37(5):164-177.
[28]Qumranet A K,Qumranet Y K,Qumranet D L,et al.KVM:the Linux virtual machine monitor[C]//Proc Linux Symposium,2007:225-230
[29]Lewis J,Fowler M.Microservices:a definition of this new architectural term[EB/OL].[2017-05-20].https://martinfowler.com/articles/microservices.html/.
[30]Richardson C.Introduction to microservices[EB/OL].[2015-05-19].https://www.nginx.com/blog/introduction-to-microservices/.
[31]Richardson C.Choosing a microservices deployment strategy[EB/OL].[2016-02-10].https://www.nginx.com/blog/deploying-microservices/.