基于Docker的企业级微服务架构设计

2018-02-24 13:55樊雷
电脑知识与技术 2018年34期
关键词:微服务

樊雷

摘要:传统企业级系统服务采用一体化架构设计,系统庞大,结构复杂,运维和开发耦合度高,应用环境难以拆分,对底层硬件、开发语言、数据库和应用版本依赖紧密,不具备应用环境和业务功能的弹性伸缩能力。该文通过分析传统服务架构和微服务架构,提出了一种结合Docker容器和微服务技术的架构,在此架构下对企业级微服务应用进行容器化改进,采用容器封装服务注册和熔断、消息总线、负载均衡、日志安全监控、业务微服务、存储容错等企业级应用,有效提高了系统应用环境和业务功能的弹性伸缩能力。

关键词:微服务;Docker;企业级服务

中图分类号:TP39    文献标识码:A      文章编号:1009-3044(2018)34-0025-02

1 传统服务架构和微服务架构

企业级传统服务架构一般采用一体化架构(Monolithic Architecture),即用户通过浏览器端的UI和API接口使用各种系统服务,如订单服务、产品服务、物流服务、用户服务、监控服务、日志服务、存储服务、备份服务等;系统后端采用一体化部署,其中系统业务逻辑功能通常采用MVC三层架构,系统整体采用单目录结构。以PHP大型电商应用为例,其技术实现架构采用负载均衡代理服务器(Nginx)、缓存服务器(Redis)、WEB服务器(Apache)和数据库服务器(Mysql)等提供服务的可用性和可靠性保障。为提高伸缩和可用性,在负载均衡器下面往往需要运行该应用的多个实例提供相应服务。架构缺点:运维部署不灵活、稳定性和功能扩展性有所欠缺、软硬件耦合度紧密。

微服务是近年来新兴的一种轻量级服务架构,采用基于Http的轻量级REST技术,实现大型应用服务碎片化拆分,可以有效实现服务自动化运维和部署以及微团队服务开发。碎片化的微服务可以采用独立编程语言(Python、Go、PHP等)实现、不同数据存储技术和集中式API管理,实现了人、系统、环境、开发、运维之间紧密依赖关系的解耦。微服务通常可以有效满足一个特定业务功能点需求,由小团队独立开发,不再强调大团队整体协作开发(团队人数和沟通成本成正比),从大而全转向小而精。架构优点:分布式可移植、敏捷迭代版本、应用环境可变多样。

2 基于Docker的微服务企业级架构设计

Docker是一种目前流行的开源容器引擎,实现了系统服务容器化封装和应用弹性伸缩。容器间通过沙箱机制实现进程隔离,在云计算PaaS层可以实现秒级部署服务应用,优于IaaS层虚拟机分钟级部署速度。优点:应用隔离、轻量级、秒级部署速度、运维成本低。

Docker和微服务分别关注系统运维和业务实现两个不同方向,有效的补充了彼此间的短板。Docker通過虚拟化技术实现技术应用环境拆分,可分为业务逻辑容器、数据库容器、储存容器、队列容器等若干个标准化容器,采用积木机制组合容器,提供容器间通信功能,可以为微服务提供实现基础。采用容器承载服务,可以有效构建出大型复杂的微服务架构,图4是基于Docker的企业级微服务架构的设计。

3 基于Docker的微服务架构的优点

Docker结合微服务的企业级服务架构突出优势有以下几点:

1)封装和分布式:容器可以在分布式环境中实现内存级微服务应用封装和隔离,无缝对接底层云计算IaaS平台。

2)轻量级:Docker 可以在同一台主机上运行更多的服务和应用,不会产生性能损失和额外的容量。

3)镜像版本化和可复用:Docker采用tag机制可以版本化微服务环境,适配开发、测试、部署等多种环境需求,镜像可打包迭代实现本地或云端版本化复用。

4)基础设施可替换:底层可采用私有虚拟机、公有云或物理机等多种架构。

5)敏捷迭代:微服务的迭代版本可快速通过Docker进行多环境自动化部署。

4 结束语

随着云计算、大数据等产业发展,Docker和微服务在企业级系统应用中得到了飞速发展。它们是云时代下IT开发和运维的必然产物,有效地提高了企业开发和运维效率,无缝对接现有软硬件资源、人力资源,降低了企业IT运营成本。但是随着系统碎片化,业务功能的拆分强化了DevOps技术壁垒,系统分布部署后问题追踪难度增加,微服务数量增加后管理工作量和复杂性大大增加,另外Docker和微服务技术均属于新兴技术仍存在一定的瑕疵,在企业级服务大规模应用中存在一定的技术风险。

参考文献:

[1] 肖坚. 基于Docker的应用服务云平台的设计和实现[D]. 广州: 华南理工大学, 2017: 17-20.

[2] 王方旭. 基于Spring Cloud和Docker的微服务架构设计[J]. 中国信息化, 2018(3): 53-55.

[3] 罗贵木. 基于微服务化的Web后台系统架构优化及实现[D]. 北京: 北京邮电大学, 2017: 23-25.

[4] 马雄. 基于微服务架构的系统设计与开发[D]. 南京: 南京邮电大学, 2017: 40-42.

[5] 马恒. 适用于微服务架构的企业应用部署平台研究[D]. 郑州: 郑州大学, 2018: 26-28.

【通联编辑:谢媛媛】

猜你喜欢
微服务
数字文化馆建设中的“微服务”
微服务架构及相应云平台解析
微信公众平台在医院图书馆的应用现状调查
从单一模式系统架构往微服务架构迁移转化技术研究
微媒体时代高校图书馆阅读推广微服务探析