智能计算新技术

微服务技术:体系结构、通信和挑战

展开
  • 1. 西南林业大学 大数据与智能工程学院, 昆明 650224;
    2. 云南林业职业技术学院 继续教育与国际交流学院, 昆明 650224;
    3. 云南大学 软件学院, 昆明 650091;
    4. 云南农业大学 大数据学院, 昆明 650201

收稿日期: 2020-06-17

  网络出版日期: 2020-10-14

基金资助

国家自然科学基金(No.61702442,No.61862065,No.61662085);云南省应用基础研究计划项目(No.2018FB105);云南省重大科技专项计划项目(No.202002AD080002,No.2019ZE005)资助

Microservices: Architecture, Communication, and Challenges

Expand
  • 1. School of Big Data and Intelligent Engineering, Southwest Forestry University, Kunming 650224, China;
    2. School of Continuing Education and International Exchange, Yunnan Forestry Technological College, Kunming 650224, China;
    3. School of Software, Yunnan University, Kunming 650091, China;
    4. School of Big Data, Yunnan Agricultural University, Kunming 650201, China

Received date: 2020-06-17

  Online published: 2020-10-14

摘要

微服务是一种新型架构风格,受到了工业界和学术界的广泛关注.微服务架构通过高内聚的微服务和轻量级的通信机制能有效地解决单体系统难于维护和扩展等问题.采用系统评价方法,从微服务架构、通信、挑战三方面分析和概况了该领域的最新进展和研究现状.首先系统地比较了单体架构、面向服务架构(service oriented architecture,SOA)和微服务结构;其次概述了微服务间的通信;最后讨论了微服务面临的技术挑战.

本文引用格式

代飞, 刘国志, 李章, 莫启, 李彤 . 微服务技术:体系结构、通信和挑战[J]. 应用科学学报, 2020 , 38(5) : 761 -778 . DOI: 10.3969/j.issn.0255-8297.2020.05.008

Abstract

Microservices architecture has recently emerged as an architectural style, which is getting a lot of attention in academic community and industry. Microservices architecture utilizes high cohesive microservices and light communication to overcome the problems of poor maintainability and scalability of traditional monolithic systems. In this paper, we apply the systematic mapping study methodology to survey the current state of the art on microservices from following three perspectives: architecture, communication, and challenges. More specifically, we systematically compare monolithic architecture, SOA (service oriented architecture), and Microservices architecture, and then give an overview of the communication between microservices. Finally, we list the technical challenges of Microservices.

参考文献

[1] Fowler M, Lewis J. Microservices[EB/OL].[2014-3-25]. http://martinfowler.com/articles/microservices.html.
[2] Balalaie A, Heydarnoori A, Jamshidi P. Microservices architecture enables DevOps:migration to a cloud-native architecture[J]. IEEE Software, 2016, 33(3):42-45.
[3] Thönes J. Microservices[J]. IEEE Software, 2015, 32(1):113-115.
[4] Newman S. Building microservices:designing fine-grained systems[M]. Beijing:O'Reilly Media, 2015.
[5] Knoche H, Hasselbring W. Using microservices for legacy software modernization[J]. IEEE Software, 2018, 35(3):44-49.
[6] Rademacher F, Sorgalla J, Sachweh S. Challenges of domain-driven microservice design:a model-driven perspective[J]. IEEE Software, 2018, 35(3):36-43.
[7] Pahl C, Brogi A, Soldani J, et al. Cloud container technologies:a state-of-the-art review[J]. IEEE Transactions on Cloud Computing, 2019, 7(3):677-692.
[8] 钟陈星, 李杉杉, 张贺, 等. 限界上下文视角下的微服务粒度评估[J]. 软件学报, 2019, 30(10):3227-3324. Zhong C X, Li S S, Zhang H, et al. Microservice granularity evaluation from the perspective of bounded context[J]. Journal of Software, 2019, 30(10):3227-3324.
[9] Pahl C, Jamshidi P. Microservices:a systematic mapping study[C]//Proceedings of the 6th International Conference on Cloud Computing and Services Science, Rome, Italy, 2016:137-146.
[10] Krylovskiy A, Jahn M, Patti E. Designing a smart city internet of things platform with microservice architecture[C]//Proceedings of the 3rd International Conference on Future Internet of Things and Cloud, Rome, 2015:25-30.
[11] Zhou H, Chen M, Lin Q, et al. Overload control for scaling wechat microservices[C]//Proceedings of the ACM Symposium on Cloud Computing (SoCC'18), Association for Computing Machinery, New York, NY, USA, 2018, 149-161.
[12] Zhou X, Peng X, Tao X, et al. Poster:benchmarking microservice systems for software engineering research[C]//2018 IEEE/ACM 40th International Conference on Software Engineering:Companion (ICSE-Companion), Gothenburg, 2018:323-324.
[13] Deb A. Application delivery service challenges in microservices-based applications[EB/OL].[2016-3-31]. https://www.thefabricnet.com/application-delivery-service-challenges-inmicroservices-based-applications.
[14] Larrucea X, Santamaria I, Colomo-Palacios R, et al. Microservices[J]. IEEE Software, 2018, 35(3):96-100.
[15] Papazoglou M P, Traverso P, Dustdar S, et al. Service-oriented computing:state of the art and research challenges[J]. Computer, 2007, 40(11):38-45.
[16] Ebert C, Gallardo G, Hernantes J, et al. DevOps[J]. IEEE Software, 2016, 33(3):94-100.
[17] Trihinas D, Tryfonos A, Dikaiakos M D, et al. DevOps as a service:pushing the boundaries of microservice adoption[J]. IEEE Internet Computing, 2018, 22(3):65-71.
[18] Dragoni N, Giallorenzo S, Lafuente A L, et al. Microservices:yesterday, today, and tomorrow[C]//Proceedings of the Present and Ulterior Software Engineering. Springer, Cham, 2017:195-216.
[19] Kholy M E, Fatatry A E. Framework for interaction between databases and microservice architecture[J]. IT Professional, 2019, 21(5):57-63.
[20] Francesco P D, Malavolta I, Lago P. Research on architecting microservices:trends, focus, and potential for industrial adoption[C]//Proceedigns of the IEEE International Conference on Software Architecture (ICSA), Gothenburg, 2017:21-30.
[21] Pereira-Vale A, Márquez G, Astudillo H, et al. Security mechanisms used in microservices-based systems:a systematic mapping[C]//Proceedings of the XLV Latin American Computing Conference (CLEI), Panama, Panama, 2019:1-10.
[22] Santana C, Alencar B, Prazeres C. Microservices:a mapping study for internet of things solutions[C]//Proceedings of the IEEE 17th International Symposium on Network Computing and Applications (NCA), Cambridge, MA, 2018:1-4.
[23] Vinoski S. CORBA:integrating diverse applications within distributed heterogeneous environments[J]. IEEE Communications Magazine, 1997, 35(2):46-55.
[24] Brown A W, Wallnau K C. The current state of CBSE[J]. IEEE Software, 1998, 15(5):37-46.
[25] Cerny T, Donahoo M J, Trnka M. Contextual understanding of microservice architecture:current and future directions[J]. ACM SIGAPP Applied Computing Review, 2018, 17(4):29-45
[26] Al-Debagy O, Martinek P. A comparative review of microservices and monolithic architectures[C]//Proceedings of the IEEE 18th International Symposium on Computational Intelligence and Informatics (CINTI), Budapest, Hungary, 2018:000149-000154.
[27] Papazoglou M P. Service-oriented computing:concepts, characteristics and directions[C]//Proceedings of the Fourth International Conference on Web Information Systems Engineering, Rome, Italy, 2003:3-12.
[28] Mazlami G, Cito J, Leitner P. Extraction of microservices from monolithic software architectures[C]//Proceedings of the IEEE International Conference on Web Services (ICWS), 2017:524-531.
[29] Lauretis L D. From monolithic architecture to microservices architecture[C]//Proceedings of the IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW), Berlin, Germany, 2019:93-96.
[30] Taibi D, Lenarduzzi V, Pahl C. Processes motivations and issues for migrating to microservices architectures:an empirical investigation[J]. IEEE Cloud Computing, 2017, 4(5):22-32.
[31] Fan C, Ma S. Migrating monolithic mobile application to microservice architecture:an experiment report[C]//Proceeding of the IEEE International Conference on AI & Mobile Services (AIMS), Honolulu, HI, 2017:109-112.
[32] Munaf R M, Ahmed J, Khakwani F, et al. Microservices architecture:challenges and proposed conceptual design[C]//Proceedings of the International Conference on Communication Technologies (ComTech), Rawalpindi, Pakistan, 2019:82-87.
[33] Wei Y, Blake M B. Service-oriented computing and cloud computing:challenges and opportunities[J]. IEEE Internet Computing, 2010, 14(6):72-75.
[34] Merkel D. Docker:lightweight Linux containers for consistent development and deployment[J]. Linux Journal, 2014(239):76-90.
[35] Nagothu D, Xu R, Nikouei S Y, et al. A microservice-enabled architecture for smart surveillance using blockchain technology[C]//Proceedings of the IEEE International Conference on Smart Cities Conference (ISC2), Kansas City, MO, USA, 2018:1-4.
[36] Hasselbring W, Steinacker G. Microservice architectures for scalability, agility and reliability in E-commerce[C]//Proceedings of the IEEE International Conference on Software Architecture Workshops (ICSAW), Gothenburg, 2017:243-246.
[37] 郝庭毅, 吴恒, 吴国全, 等. 面向微服务架构的容器级弹性资源供给方法[J]. 计算机研究与发展, 2017, 54(3):597-608. Hao T Y, Wu H, Wu G Q, et al. Container level flexible resource supply method for microservice architecture[J]. Computer Research and Development, 2017, 54(3):597-608. (in Chinese)
[38] Bass L, Weber I, Zhu L. DevOps:a software architect's perspective[M]. New Jersey:Addison-Wesley Professional, 2015.
[39] Zhou X, Peng X, Xie T, et al. Delta debugging microservice systems with parallel optimization[J]. IEEE Transactions on Services Computing, 2019. doi:10.1109/TSC.2019.2919823
[40] 王子勇, 王焘, 张文博, 等. 一种基于执行轨迹监测的微服务故障诊断方法[J]. 软件学报, 2017, 28(6):1435-1454. Wang Z Y, Wang D, Zhang W B, et al. A microservice fault diagnosis method based on execution trajectory monitoring[J]. Journal of Software, 2017, 28(6):1435-1454. (in Chinese)
[41] Petrasch R. Model-based engineering for microservice architectures using enterprise integration patterns for inter-service communication[C]//Proceedings of the 14th International Joint Conference on Computer Science and Software Engineering (JCSSE), Nakhon Si Thammarat, 2017:1-4.
[42] Rajkumar R, Gagliardi M, Lui S. The real-time publisher/subscriber inter-process communication model for distributed real-time systems:design and implementation[C]//Proceedings of the Real-Time Technology and Applications Symposium, Chicago, IL, USA, 1995:66-75.
[43] Dai F, Chen H, Qiang Z, et al. Automatic analysis of complex interactions in microservice systems[J]. Complexity, 2020:1-12.
[44] Dai F, Mo Q, Qiang Z, et al. A Choreography analysis approach for microservice composition in cyber-physical-social systems[J]. IEEE Access, 2020, 8:53215-53222.
[45] Mohammed A. Asynchronous communication in Microservices[EB/OL].[2019-08-16]. https://medium.com/@aamermail/asynchronous-communication-in-microservices-14d301b9016.
[46] Ye L, Luo Y, Nagata M. XML based message queuing[C]//Proceedings of the IEEE International Conference on Systems, Man and Cybernetics, 2000:2034-2039.
[47] Akroun L, Salaün G. Automated verification of automata communicating via FIFO and bag buffers[J]. Formal Methods in System Design, 2018, 52(3):260-276.
[48] Basu S, Bultan T. On deciding synchronizability for asynchronously communicating systems[J]. Theoretical Computer Science, 2016, 656:60-75.
[49] Li L, Chou W. Design and describe rest API without violating rest:a petri net based approach[C]//Proceedings of the IEEE International Conference on Web Services, 2011:508-515.
[50] Murayama D, Mizuno S, Fujii A. Distributed synchronization over RESTful Web API[C]//Proceedings of the 18th International Conference on Network-Based Information Systems, Taipei, 2015:195-198.
[51] Hong X J, Yang H S, Kim Y H. Performance analysis of restful API and RabbitMQ for microservice web application[C]//Proceedings of the International Conference on Information and Communication Technology Convergence (ICTC), 2018:257-259.
[52] Ollite I, Mohamudally N. Performance analysis of a 2-tier caching proxy system for mobile RESTful services[C]//Proceedings of the International Conference on Computer as a Tool (EUROCON), Salamanca, 2015:1-7.
[53] Belqasmi F, Singh J, Melhem S Y B, et al. Soap-based vs. restful web services:a case study for multimedia conferencing[J]. IEEE Internet Computing, 2012, 16(4):54-63.
[54] Mulligan G, Gracanin D. A comparison of SOAP and REST implementations of a service based interaction independence middleware framework[C]//Proceedings of the 2019 Winter Simulation Conference (WSC), 2019:1423-1432.
[55] Wagh K, Thool R. A comparative study of soap vs rest web services provisioning techniques for mobile host[J]. Journal of Information Engineering and Applications, 2012, 2(5):12-16.
[56] Vinoski S. Advanced message queuing protocol[J]. IEEE Internet Computing, 2016, 10(6):87-89.
[57] Saint-Andre P. Extensible messaging and presence protocol (XMPP):core[R/OL]. IETF RFC 6120[2020-06-07]. http://www.rfc-editor.org/info/rfc6120.
[58] Saint-Andre P. Extensible messaging and presence protocol (XMPP):instant messaging and presence[R/OL]. IETF RFC 6121[2020-06-08]. http://www.rfc-editor.org/info/rfc6121.
[59] Saint-Andre P. Extensible messaging and presence protocol (XMPP):address format[R/OL]. IETF RFC 7622[2020-06-08]. http://www.rfc-editor.org/info/rfc7622.
[60] Ecma International. The JSON data interchange format[R/OL]. Ecma-404[2020-06-08]. http://www.ecma-international.org/publications/standards/Ecma-404.htm.
[61] Brayt. The JavaScript object notation (JSON) data interchange format[R/OL]. IEEE RFC 715[2020-06-08]. https://www.rfc-editor.org/info/rfc7159.
[62] Sefid-Dashti B, Babamir S M. Toward extending apache thrift open source to alleviate SOAP service consumption[C]//Proceedings of the 2nd International Conference on Open Source Software Computing (OSSCOM). 2016:1-6.
[63] Google. Google protocol buffers:Google's data interchange format:documentation and open source release[R/OL].[2020-06-08]. http://code.google.com/p/protobuf/.
[64] Sill A. The design and architecture of microservices[J]. IEEE Cloud Computing, 2016, 3(5):76-80.
[65] Maeda K. Performance evaluation of object serialization libraries in XML, JSON and binary formats[C]//Proceedings of the Second International Conference on Digital Information and Communication Technology and it's Applications (DICTAP), 2012:177-182.
[66] Larisa S, Mazzara M, Montesi F, et al. Data-driven workflows for microservices:genericity in jolie[C]//Proceedings of the IEEE 30th International Conference on Advanced Information Networking and Applications (AINA), 2016:430-437.
[67] Killalea T. The hidden dividends of microservices[J]. Communications of the ACM, 2016, 59:42-45.
[68] Villamizar M, Ochoa L, Castro H, et al. Cost comparison of running web applications in the cloud using monolothic, microservice, and aws lambada architecture[C]//Proceedings of the Service Oriented Computing and Applications, 2017, 11:233-247.
[69] Granchelli G, Cardarelli M, Francesco P D. MicroART:a software architecture recovery tool for maintaining microservice-based systems[C]//Proceedings of the IEEE International Conference on Software Architecture Workshops (ICSAW), 2017:298-302.
[70] Costa C H, Filho J, Maia P H M, et al. Sharding by Hash partitioning. A database scalability pattern to achieve evenly sharded database clusters[C]//Proceedings of the International Conference on Enterprise Information Systems, 2015,
[71] Esposito C, Castiglione A, Choo K R. Challenges in delivering software in the cloud as microservices[J]. IEEE Cloud Computing, 2016, 3(5):10-14.
[72] Sun Y, Nanda S, Jaeger T. Security-as-a-service for microservices-based cloud applications[C]//Proceedings of the IEEE 7th International Conference on Cloud Computing Technology and Science, Vancouver, BC, 2015:50-57.
[73] Hassan S, Bahsoon R. Microservices and their design tradeoffs:a self-adaptive roadma[C]//Proceedings of the IEEE International Conference on Services Computing, SCC, 2016:813-818.
[74] Zhou X, Peng X, Xie T, et al. Fault analysis and debugging of microservice systems:industrial survey, benchmark system, and empirical study[J]. IEEE Transactions on Software Engineering, 2018. doi:10.1109/TSE.2018.2887384.
[75] Zhou X, Peng X, Xie T, et al. Delta debugging microservice systems[C]//Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE 2018), 2018:802-807.
[76] Reflections on SOA and microservices[C]//Proceedings of the 4th International Conference on Enterprise Systems (ES), Melbourne, Australia, 2017:60-67.
[77] Balalaie A, Heydarnoori A, Jamshidi P. Migrating to cloud-native architectures using microservices:an experience report[C]//Advances in Service-Oriented and Cloud Computing, 2016:201-215.
文章导航

/