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