本文从以下几个方面简要说明微服务架构项目的实践经验:
架构选型、
开发测试环境下的相关工
具支持、人员分工及开发部署流程、相关设计及注意事项。
最后,
将根据实践经验讨论提高微服
架构下的开发和运维效率的切实需求,
进一步理清本项目所实现的容器服务管理平台的完善性需
求。
本项目是一个企业级的容器服务管理平台,
该平台的功能是基于容器实现的应用运行环境管
理,
以及应用开发阶段的持续集成和持续发布。
简单的理解该平台的核心功能之一就是管理复杂
应用的开发和运维环境,提高微服务架构下的开发和运维效率。项目的开发背景如下:
首先,该系统具有典型分布式应用系统特征:
该平台所运行的服务器配置不高,例如华为
RH1288
这类低配置服务器,允许硬件失败;
系统平台要求可根据实际用户数的规模进行伸缩部署,保证硬件资源的合理利用;
由于系统平台之上需要运行若干企业应用的开发和运行环境,
可靠性是非常重要的,
不允许
单点失效。
其次,
本系统功能复杂,
从架构的角度需要将系统分成多个层次和若干个子系统。
不同的层
次、子系统根据具体情况需要采用不同的开发语言,由不同的开发小组完成。
第三,
项目组成员由几个城市的异地团队协同开发,
统一的开发环境和协同工具是必不可少
的。
针对上述项目背景的考虑,本项目选择基于微服务架构进行项目开发。
开发、测试、部署使用到的工具集
“工欲善其事、必先利其器”,借助适合的流程和相关工具集,才能提高微服务架构下的应
用开发效率。本项目利用
DevOPs
流程并选用一套相关工具集实现应用开发管理,提高开发、测
试、部署的效率。
代码库:本项目使用分布式代码库
Gitlab
,它的功能不限于代码仓库,还包括
reviews(
代
码审查
), issue tracking(
问题跟踪
)
、
wiki
等功能,是代码管理和异地团队沟通、协作工具的
首选。
Docker
镜像仓库、
Docker
:本项目用容器贯穿整个软件开发流程,以容器作为应用发布的
载体,应用的开发环境和测试发版环境都运行在
Docker
容器中。对于复杂的开发和运维环境管
理
Docker
具有先天的优势,
目前国内外的互联网公司有大多数都已经将
Docker
应用到了他们的
开发或者生产环境中了。