APP下载

微服务架构的发展与影响分析

2020-11-25李冬军北京锐安科技有限公司

数码世界 2020年2期
关键词:组件架构效率

李冬军 北京锐安科技有限公司

1 背景

随着互联网技术快速发展,智能穿戴、智能硬件、移动应用等技术发展,越来越多的终端应用场景下都需要可靠的在线信息服务技术。通过在线服务技术,可以实现不同终端获取信息需要,从而实现信息的发送、接收以及同步等功能。目前云服务技术以及各种信息传输技术都是基于HTTP技术来完成,但是随着时代发展和硬件计算能力提升,对于信息服务效率和质量提出了新的要求和新的期待,这就需要提供一种新的软件架构,这种结构在移植性、扩展性、维护性、效率性方面要具有更强的优势。而微服务架构就能够满足这种需求,它能够更好满足企业的需求,针对于企业的需求能够在旧系统的框架上进行一定优化,更好增加系统框架的稳定性,同时降低了系统维护程度,是未来发展的重要趋势。

2 微服务发展问题

在微服务架构被提出之前,传统的网站服务(web)、接口服务(移动端)架构设计都是体现了“一站式”的设计思路。这种一站式的设计思路往往在一个服务事件中设置了很多的外部接口和模块,一方面便于外部的访问,另外一方面便于功能拓展。而且传统设计的方案往往都是采用自顶而下的分层设计思路,这样便于不同设计团队的设计,而且便于架构维护和开发。这里就以一个web网站开发为例,在网络架构中一般包含了很多层级,每一层级都有着自己的功能和作用,每一层之间还有各种模块和结构。例如web服务中至少包含了表示层、业务层(逻辑控制)、服务层、数据访问层、持久层5 层。但是这种分层设计存在着很大局限性,主要保障各层之间的联系性过于紧密,一旦一个层级没有编辑成功,就会影响这个站点部署问题。但是到2012年,一种微服务的架构被广泛应用,很多公司基于微服务结构设计出了很多优秀的软件项目。自从那以后,很多大型公司(Amazon、Uber)意识到这种结构的优势,并且基于此开发了很多优秀的项目。和传统的结构相比,微服务更加强调的是服务的组件化和面向服务,每一种服务都是在各自容器中独立运行的,而且不同容器之间不存在着相互干扰问题,同时在外部结构设置方面,微服务器只是将API形式给外部使用。

2.1 微服务架构原理

在微服务架构设计过程中,对于不同的微服务的分工十分明确,不同的微服务只是对应一个不同的任务进度,这样保障各个微服务之间的分工的特点十分明确、独立,同时将微服务处理过的结果仅仅通过API的形式作为外部接口,这样方便了外部的调用而不需要关注内部地实现过程。而且通过这种结构设计,可以体现出微服务只是将这个软件开发项目或者软件平台进行了相应的细粒度拆分,而且这种拆分的结果之间互相没有干扰,每一个拆分的微服务事件都是放在一个独立的容器当中,每一个容器运行都是独立完成的,不同容器之间不会出现干扰因素。这种架构原理和传统的架构存在着很大不同,在以往的架构设计过程中,需要在服务层设置一定的外部结构,是以参数或者对象的形式来完成软件项目细粒化拆分过程,但是这个环节往往是在内存中完成的。但是微服务的结构不同于这种设计思路,而是将这种拆分搬到了外部来实现。这里以一个简单的例子来说明二者的区别。在传统架构下面,用户登录过程往往经过了以下几个阶段:黑白名单检查、密码口令比对、登录日志记录3个过程。但是在微服务结构中,这个过程都是可以通过微服务形式独立工作的,进而使微服务的代码成为组件。

2.2 微服务架构优势和不足

微服务架构和其他网络结构存在着很多不同,最大的特点在于服务器的结构的稳定性和灵活性,使得网路结构十分间接灵活,通过低耦拆分的微服务结构在软件开发、测试以及部署、更新、维护等各个环节的效率大大增加,不但保障开发维护效率,而且大大降低了开发维护成本。微服务结构在规模庞大的软件开发项目中逐渐显示出自身优势,方便了企业用户的管理和维护,而且接口设置更加人性化。而且对于企业角度来说,由于微服务架构只与API相关,它使得不同服务可以使用不同的语言和开发框架进行开发,极大地扩大了企业对人才招聘的限定范围。但是微服务结构也存在着一定的缺点,虽然微服务一直立志于独立化和组件化,但是在微服务中的很多操作并没有实现独立化和组件化。这些就影响了架构效率提高,例如在微服务中的数据库层的底层操作一般不推荐服务化过程。另外在设计任务划分过程中需要设计者根据软件下项目开发任务量来进行有效划分。此外,微服务架构设计的目的就是最大程度提高软件开发的效率和质量问题,但是微服务很多操作结构都是通过以API的形式提供给外部,这样就增加了访问时间和数据传输时间,因为基于结构的传输时间是比内存访问函数接口调用慢了几个数量级。如果任务量很大的情况时,对于结构提供效率提出了不小的挑战,对于架构分配也提出了新的要求。

3 微服务架构的影响

3.1 加速互联网信息服务

微服务体系结构的灵活性可以使项目开发过程更容易管理,从而大大提高了项目开发团队的开发效率。微服务的独立性和异常划分的设计理念可以让开发者更加关注组件的内部结构,从而提高软件代码的质量。同时,服务的重用将开发人员从先前的代码、对象和模块的重用中解放出来。服务重用的优点是开发人员不需要关心项目中的代码级组件和测试工作,只需根据定义的REST API将请求发送到相应的地址,真正实现“一次部署,无限使用”。这将大大减少企业或项目团队在构建后续功能时的时间和人力成本,使整个行业有更多的时间在现有微服务的基础上开发更多新的微服务,这样不仅能够有效提高开发效率和质量,将开发完成好的微服务对外开放,还可以在开放过程中收获一定的经济效益。

3.2 加速创业项目的成形

近年来,在国家创新创业政策的支持下,越来越多的行业跨界与互联网行业融合,创业项目如雨后春笋般涌现。创业项目的信息服务平台开发和外包软件开发的过程通常是非常不同的。创业公司中的很多软件项目都是试验性的,这导致他们的需求更频繁地变化,传统的统一集成服务开发框架难以适应。如果创业团队不能把握需求变化的步伐和生产环境,很容易导致服务完整性的缺失。微服务体系结构的出现,使得初创项目的软件开发遵循微服务开发顺序,从中心到外围,从重要到次要,减少了需求的临时变化对项目完整性的影响,从而加快了项目的形成。

4 结语

微服务结构和传统结构相比,在很多方面更具有优势,不仅提高软件项目开发的效率和维护,也大大降低了开发成本,同时相比于一站式服务,微服务结构更注重于组件化和面向服务,这样便于对旧结构维护和升级,更加适用于企业项目。

猜你喜欢

组件架构效率
无人机智能巡检在光伏电站组件诊断中的应用
Kistler全新的Kitimer2.0系统组件:使安全气囊和安全带测试更加可靠和高效
功能架构在电子电气架构开发中的应用和实践
3月光伏组件出口量增长164.6%至7.49GW!单价创新低
提升朗读教学效率的几点思考
一种嵌入式软件组件更新方法的研究与实现
注意实验拓展,提高复习效率
基于B/S架构的图书管理系统探究
构建富有活力和效率的社会治理架构
VoLTE时代智能网架构演进研究