微服务架构与容器技术的应用集成实践
来源:用户上传
作者:
摘 要:随着数字信息化时代的到来,无论是传统的企业还是新型的行业都需要适应数字化时代的要求,特别是对于企业的信息化建设来说,相关数字化软硬件的应用必不可少,对这些应用的处理也成为信息化建设的一个重要内容,而在何种环境下采用何种方式需要企业高度重视。这其中基于容器技术的微服务架构为企业数字化建设提供了良好的平台,通过在容器技术提供的高效运行平台为应用进行微服务化对于企业满足业务需求已经成为信息化建设的焦点。
关键词:微服务架构;容器技术;应用集成
中图分类号:TP393 文献标志码:A 文章編号:2095-2945(2020)19-0166-02
Abstract: With the advent of the digital information age, both traditional enterprises and new industries need to adapt to the requirements of the digital age. Especially for the information construction of enterprises, the application of relevant digital software and hardware is indispensable. The processing of these applications has also become an important part of information construction, and enterprises need to attach great importance to what kind of environment and which way to adopt. Among them, the micro-service architecture based on container technology provides a good platform for enterprise digital construction. Micro-service for applications through the efficient operation platform provided by container technology has become the focus of information construction for enterprises to meet the needs of businesses.
Keywords: micro-service architecture; container technology; application integration
1 微服务架构的概念
云计算技术的发展直接促进了微服务和微服务架构的产生,作为一种独特的设计风格架构,它代表了架构的发展趋势和方向,特别是在架构朝向分布式发展和软件架构动态弹性伸缩两个方面,微服务架构其就是将服务进行微小化,通过细小化各项应用形成一对一的业务功能细分,由于每一项细分化的应用微服务都是独立进行的,且各服务之间有很清晰的边界,而这些单一的微服务是通过轻量级通信机制互相配合沟通的方式来达到一个应用的完整组合。但是微服务架构由于成本较高,这导致进行微服务架构的实施和应用存在一定的弱势,而随着容器技术的应用(如Docker等),这为较低成本的实施微服务化应用提供了非常好的基础保障和平台。
2 微服务架构的特性
从微服务架构的概念中可以看到微服务的一些特点:专注于实现有限的业务功能;独立于其他(微)服务,并可以在不依赖其他服务的基础上解耦各项服务;并通过不依赖语言的API实现沟通;实现与底层平台和基础设施的解耦。
2.1 微服务架构的优势
(1)规模简单不复杂。微服务由于对应用进行细分,这样就形成了点对点、一对一的服务,这也是微服务功能的主要特点,并且对每项服务的边界通过接口定义的方式实现清晰的表述。这样就可以不用再增加很大支出的情况下进行应用的快速高效开发且保证效率。(2)灵活的技术选择。微服务架构由于每一个服务都是独立的因此可以根据每个项目服务的特点进行最合适最优化的技术选择,并且可以在原厂商应用架构的基础上进行专业功能操作。(3)实现了部署的独立性。微服务由于对于应用进行了功能服务细分,各个细分后的模块进程是各自独立的,这样就可以确保部署时能够独立操作。就是其中的每一个微服务发生变化后也不影响其他微服务的运行,并不用跟传统的模式一样对整个应用进行编译。因此,独立性很强的微服务可以在灰度发布方面很容易实现同时能加快发布的频率且对环境不产生影响。(4)扩展性强。微服务由于独立性的优势可以根据实际的应用需要进行灵活性的服务扩展而且明显节约资源。(5)良好的容错性。微服务独立的特性让每一个细分的应用在出现故障后并不影响整个应用的运行,而是只是这个发生故障的微服务停止运行。(6)良好的重用性。相对细分独立的微服务可以具有良好的重用性。
2.2 微服务架构的缺点
微服务架构虽然具有诸多的优势,但是在应用运行过程中也存在着不少的缺点,总结起来说主要有以下几个方面:(1)由于微服务架构的细分性,加之随着微服务数量的增多,会出现操作过多的问题并且管理的复杂性也明显的增加。(2)分布式架构是微服务的主要特性,但是分布部署过程中存在难以进行有效跟踪的问题,在微服务的应用过程中,由于分布式系统的原因,复杂性是其固有的特点,要让其可用性更好,需要有相应的数据库,而这个分布式数据库受技术限制难以有效的进行建设。(3)对于一个应用来说,虽然微服务具体细分到了每一个专项功能,但是在实际应用过程中这些微服务之间互相有一定的联系,如果在应用中对其中的某一项微服务进行调整,其它的微服务往往也会受到一定的影响。 3 基于容器技术平台的微服务实现
微服务要想更好的实现且更加高效,容器技术为其提供了非常好的平台,通过容器作为一个微服务架构运行的平台,它克服了以往虚拟机进行微服务运行所存在的各种弊端,虽然虚拟机也可以有效的实现虚拟化,但是虚拟机的性能明显落后,首先在虚拟机上进行微服务应用启动速度会非常慢,并且利用率很低,而且虚拟机进行高速的微服务运算需要更多的硬件设备来实现OS的功能,并且在一台普通的电脑上运行,其运行的资源数量非常有限,最多是十几个,这就大大增加了硬件设备成本,并且虚拟机自身运行也占据了一部分资源,而容器技术则不会有这样的问题,它自身不需要过多的设备资源,更不需要相应的架构、语言系统,并且可以在任何运行的服务器上包括Linux系统的服务器,并且往往可以同时运行数百上千个容器,同时能快速的对微服务进行启动运行,大大增加了微服务运行的效率。通过容器技术提供的微服务运行平台,使这些应用可以有效的在各种系统、虚拟机以及云空间之间轻松自如的切换。微服务强大的架构平台和容器封装微服务技术实现了两者的有机结合,大大发挥了两者的效率。
4 基于容器技术的微服务架构应用集成实践
本文以某互联网公司的应用实践为例进行应用集成测试,本次测试数据库同样采用传统的DB2数据库,微服务应用也简单的细分为四个微服务。
4.1 测试环境
下述两种架构的数据库采用DB2数据库,独立部署在物理机上,其应用部署如图1所示。
采用传统应用结构的部署环境:其部署情况分别是Rest、Gatway和Service、Rabbit MQ等4个模块均同时部署在4台虚机上,每个虚机4Core/16GB。
微服务架构部署环境:除了Cloud Foundry产品占用的资源外,该互联网应用的4个微服务部署在2个虚机上,每个虚机配置为2Core/8GB。为了实现负载均衡,另外有一个软负载均衡服务HAProxy,部署在一个虚机上,配置为2Core/8GB。
4.2 测试内容和效果对比
表1、表2分别是采用传统架构和采用微服务架构进行的性能测试结构表。从表中可以看出:两者不同方式的测试结果具有明显的不同,且基于容器技术的微服务更有优势,在应用重启方面,不同的模块启动时间在容器平台启动时间要大大短于传统架构服务启动时间;而在资源的弹性伸缩上,容器技术更有优势;在最大并发上,基于容器技术的微服务架构要明显大于传统架构的并且用到的容器也不需要很多,各个模块性能的发挥压力并不大。
对于云计算平台上两者测试的内容和效果来看,在云计算平台上进行微服务架构的运行是非常合适且高效的,经过在容器技术平台上运行的微服务,不仅有效降低了软硬件资源的成本而且应用功能也得到了有效发挥,应用的主要业务功能得以最大化利用,对于一些非业务功能也可以通过一些公关微服务得到实现,持续集成、灰度发布、快捷开发的优势得以全面发挥。
5 结束语
随着数字化进程的加快,对于企业微服务的应用也越来越多,而要实现微服务的高效化,基于容器技术的微服务集成应用实现了“一次编写,到处运行”让相关业务运行更高效更有价值。
参考文献:
[1]孙海洪.微服务架构和容器技术应用[J].金融电子化,2016(05):63-64.
[2]杨鸥.微服务架构在容器云中的应用实践[J].電脑和电信,2017(07):79-81.
[3]张晓明.基于微服务和容器技术的实时数据架构研究[J].信息技术与标准化,2019(05):20-24.
转载注明来源:https://www.xzbu.com/1/view-15250143.htm