微服务架构在容器云中的应用实践探讨
2019-11-28戴晨昱
戴晨昱
摘 要:随着改革开放以来信息化建设的不断发展,传统电信业务的一些缺陷也慢慢显现出来,例如:资源动态不能完成高效的动态伸缩、迁移部署等问题。为了更高效地完成电信业务,面对这些问题,亟需在开发平台中引入微服务架构。随着相关技术人员的不断努力,最新引进的Docker容器技术便为提出的微服务理念提供了相应的实现基础。文章通过对微服务架构在容器云中应用实践的分析,重点介绍了微服务架构的主要特点以及应用实践,希望微服务架构能够在容器云中得到广泛应用。
关键词:微服务架构;容器云;应用实践
中图分类号:TP311.5文献标志码:A 文章编号:2095-2945(2019)31-0173-02
Abstract: With the continuous development of information construction since the reform and opening up, some defects of traditional telecommunications services have gradually emerged, such as resource dynamics can not complete efficient dynamic scaling, migration deployment and so on. In order to complete telecommunications services more efficiently, in the face of these problems, there is an urgent need to introduce micro-service architecture into the development platform. With the continuous efforts of relevant technicians, the latest introduction of Docker container technology provides the corresponding implementation basis for the proposed concept of micro-service. Through the analysis of the application practice of micro-service architecture in container cloud, this paper focuses on the main characteristics and application practice of micro-service architecture. It is hoped that micro-service architecture can be widely used in container cloud.
Keywords: micro-service architecture; container cloud; application practice
前言
一直以来,面对电信业务的种种问题,电信公司的技术人员一直在寻找一种更好的方法来重新构建电信业务系统,能够更好地解决业务问题,提高资源的利用率以及开发运维效率。在传统的电信服务管理模式中,之前建立的虚拟化云计算管理平台模式以及云PaaS平台方式曾经也取得过良好的经济效益。然而随着信息化技术的不断发展,基础平台的不断变化,再使用传统的整体是架构开发系统已经不能满足更多企业的需求,同时对企业要求的快速开发、交互以及运维的需求更是难以满足。近年来,随着微服务和容器技术的快速发展,研发了一种新的模式更好地解决了企业所面临的问题。很多企业研究发现细粒度的微服务构架能够帮助他们更快地完成软件交付,正是微服务架构在技术方面给了技术人员极大的开发空间,也使得研发人员能够更快地适应新的变化。随着微服务的不断发展,人们对微服务的讨论也越来越多。同时,对于微服务的评价也呈现出多样化以及多元化。对于不同的使用者来说,关于微服务架构的评价也是多种多样,其中也会涉及到微服务架构的一些优势、劣势以及弊端等问题。
1 微服务架构
微服务作为一种架构风格,提倡的是将整个复杂的应用系统按照一定的标准将大系统拆分为多个细小的服务。这样一来,每个细小的服务只需要专注于一个单一的业务功能,同时每个拆分出来的细小服务之间都可以獨立运行,通过轻量级的API来实现通信,满足不同使用者的业务需求。对于传统的经典分层架构模式来说,业务虽然在逻辑基础上被划分为多个模块和组件,但是这些划分出来的模块以及组件还是被当作为一个整体来完成编译、打包、部署以及运维的工作。因此,传统的经典分层架构模式从物理部署层面来讲还是一个单块。而对于微服务架构模式来说,在这个架构模式中,我们可以发现很多常用的IDE集成开发环境和编程框架。这些都为开发者提供了更为便捷的开发、调试、测试以及部署等业务,相关的开发设计人员也只需要话费少量的精力通过工具以及框架快速生成应用原型完成服务分解和分布设计的工作。大大提高了相关设计人员的工作效率。然而,随着微服务业务和功能的不断累计扩张,所涉及到的应用体积也逐渐扩大,导致了单块架构难以满足目前这种快速变化的需求,同时也出现了一些开发效率低、交付时间长、技术转型难的问题。
对于微服务架构模式来说,微服务架构不仅仅是传统意义上的某个单一服务,更多的是由多个单一服务系统相互组合而成。相关设计人员在实际的设计工作中,为了促使微服务架构的不断完善和发展,还需要做到对微服务进一步的深度开发。对于微服务而言,其本身就存在着多个功能,这些功能在微服务架构方面,各个功能之间又是相互独立存在的。而对于系统来说,各个功能又会对整个系统产生一定的限制作用,保证能在故障发生时,及时解决。当系统出现故障时,微服务架构会第一时间发出请求,然后通过相关容器完成进一步的拓展工作,随后所涉及到的相关软件就可以被硬件底层分离出来,在整个处理过程中,有着较快的信息处理速度。在系统开发以及软件设计的过程中,运用微服务可以更好地实现对应用的分解工作,促使相关设计人员完成更为合理的部署工作。
2 微服务架构的主要特性
2.1 微服务架构技术选型灵活
在微服务架构模式下,就能使技术选型的过程变得更为灵活,与传统的架构模式相比,不会过于单一。在技术选型的过程中,相关设计人员完全可以根据自身设计的需求以及服务要求选择出更为合理的技术类别,同时还可以考虑到当前行业的实际发展状况。与传统架构模式相比,微服务架构模式更为简洁,并且在技术升级的过程中,架构的风险也比较低。同时,对于微服务架构来说也可以在相对安全的情况下实现全面重构,灵活的技术选型更值得相关机构的进一步研究和应用。
2.2 微服务架构复杂度可控
目前,对于微服务架构模式来说,整个微服务的功能相对比较简单,同时各个功能之间又保持着较强的独立性。同时,对于整体的服务来说还需要进行相应的分解工作,形成新型服务。在整个分解过程中,不但不会改变整体的服务功能和服务标准,同时在分解之后还可以实现模块式管理工作以及服务等。除此之外,在整个分解过程中也不会出现较为复杂的问题或者其他的连带反应。可以说,在完成分解工作之后,大大提高了模块的水平以及质量问题,同时还可以依靠人工完成强化工作,从而大大降低微服务的复杂程度,减少微服务的体积,使得相关工作人员能够更加容易的完成微服务架构的维护工作。
2.3 微服务架构可以实现独立部署
对于微服务架构模式而言有着独立运动的基础性条件,可以更好地实现独立部署。同时在相关工作人员进行微服务架构部署的过程中,可以更好地利用微服务架构独立性的特点。对于传统的架构来说,要想改变设定程序中的任何一个细节,往往会改变整个的架构模式,因此就需要相关技术人员对整个系统进行重新构建或者部署。而对于微服务架构来说,则能够更好地解决这一问题。正因为微服务架构是由多种小型服务组合而成的,因此当某个小型服务出现故障时并不会对整个服务体系造成较为严重的负面影响,只需要相关技术人员对出现故障的小型服务进行独立部署,不需要对整个体系进行重新构建或者部署。
2.4 微服务架构具备良好的容错性
对于传统模式来说,在整个系统中,如果服务中某一组应用出现故障,将会对整个系统中的其他服务产生一定的负面影响,甚至会导致整个系统处于瘫痪状态。但是在系统开发过程中引入微服务架构,就可以实现各个功能模块之间的独立存在,这样一来,当某一模块出现故障时,也不会影响其他功能模块的正常运行。因此微服务架构是一种更加先进科学的架构模式,也有着较高的容错性。因此,只有在容器云中广泛应用到微服务架构模式,才能更好地提升系统的安全性和可靠性,打造一个更加安全稳定的系统。
3 微服务架构在容器云中的应用实践
对于微服务架构来说,与传统架构相比虽然在很多方面有着较多的优势,但是在实际的服务部署和构建过程中还存在着较大的困难。因此,为了更好地构建微服务架构,相关技术人员还需要将微服务架构和容器云进行结合,采用有效的方式将微服务架构应用到容器云技术中。同时容器云的质量也较轻,如果微服务能够实现虚拟化运行,那么整个系统就可以获得良好的载体来完成稳定运行,同时也能够简单的完成微服务架构的部署和架构工作,实现共享。正因为在容器云中更容易实现服务部署和构建工作,对于软件的开发也有着十分重要的意义。
3.1 创建
在容器云的平台中,使用者可以根据自身需求创建微服务项目,同时所创建的项目还可以和代码仓库进行关联,选择代码项目完成创建。在创建过程中,相关设计人员在提交代码时,系统本身能够很快的将储存在代码仓库中的微服务程序构建成新的容器镜像,然后再通过集成自动化的验证工作,将其转化为可以完成部署的容器镜像,使用者也可以将这个微服务部署到容器云平台上。
3.2 集成
在容器云平台的镜像仓库中,不仅包含了来自docker官方以及社区的镜像,还包括非官方平台的任意镜像源。使用者完全可以按照自己的实际需求,进行自由组合,利用各种容器化微服务,完成集成应用。
3.3 部署
在容器云平台上面还可以实现快速灵活的部署工作,使用者可以利用项目镜像或者非官方镜像完成部署工作,还可以一次性部署多个镜像同时为每个镜像设定特定的内存占有。整个配置部署工作从开始到启动也只需要几分钟。同时,该平台还支持升级,并且每次升级之后都会自动生成一个部署版本,两个版本之间还可以实现回滚,在部署出现异常的情况下还可以实现制定版本完成恢复。
3.4 运维
在微服务的架构模式中,由于存在着较多的独立进程。因此,如何完成部署之后的运营、管理工作,也成为了实际工作中的一个难点。在容器云中,是通过主机管理、主机监控屏蔽用户来完成屏蔽底层云主机和基础架构的运维工作,同时为了降低使用者的运维成本和难度,容器云通过容器编排、自动回复以及监控日志等高级服务,来完成平台上的微服务智能托管工作。
4 从传统单体式架构迁移到微服务架构的策略
首先将不需要大规模重写代码,采用逐步迁移单体应用的方式,生成微服务应用。随着时间推移,单体式应用将逐渐成为微服务架构的一部分。然后再将前端和后端进行分离,同时在单体应用中抽取特定的模块成为独立微服务。
5 结束语
目前来说,将微服务架构应用到容器云中有着十分重要的作用,同时也已经成为了软件和系统开发的新方式。在软件开发的过程中,应用到微服务架构,将承载更多的业务,同时也有着更为灵活的技术选型,还可以实现独立部署。因此,在容器云中应用到微服务架构,将是未来发展的趨势。
参考文献:
[1]谭云婷,熊珊.基于微服务架构的警用地理信息系统云化设计思路[J].移动通信,2019,43(07):47-54.
[2]刘宇博.基于云计算的人工智能训练平台的研究与设计[D].北京邮电大学,2019.
[3]彭诗杰.基于微服务体系结构和面向多地质主题的数据云服务关键技术研究[D].中国地质大学,2017.