文档文库
手机版
投诉建议
热门搜索:
心得体会
演讲稿
思想汇报
首页
心得体会
学习心得体会
培训心得体会
军训心得体会
社会实践
作风建设
工作心得体会
教育心得体会
演讲稿
演讲稿格式
演讲稿范文
竞聘演讲稿
师德演讲稿
三分钟演讲稿
思想汇报
思想汇报范文
转正思想汇报
大学生思想汇报
季度思想汇报
教师思想汇报
工作计划
工作计划格式
工作计划开头
工作计划结尾
总结与计划
工作计划模板
工作总结
年终工作总结
年度工作总结
个人工作总结
实习报告
实习报告范文
实习计划范文
实习鉴定范文
实习报告内容
个人简历
求职简历
简历范文
简历模板
简历表格
简历格式
祝福语
春节
除夕
元宵
端午节
合同范文
合同范本
合同样本
合同范本格式
首页
>
微服务架构的部署
微服务架构的部署
发布时间:2023-02-18 00:54:00 来源:
文档文库
小
中
大
字号:
手机查看
>
>
>
>
微
服
务
架
构
的
部
署
>
>
>
>
本文从以下几个方面简要说明微服务架构项目的实践经验:架构选型、开发测试环境下的相关工具支持、
人员分工及开发部署流程、相关设计及注意事项。最后,将根据实践经验讨论提高微服架构下的开发和运
维效率的切实需求,进一步理清本项目所实现的容器服务管理平台的完善性需求。
本项目是一个企业级的容器服务管理平台,该平台的功能是基于容器实现的应用运行环境管理,以及
应用开发阶段的持续集成和持续发布。简单的理解该平台的核心功能之一就是管理复杂应用的开发和运维
环境,提高微服务架构下的开发和运维效率。项目的开发背景如下:
首先,该系统具有典型分布式应用系统特征:
该平台所运行的服务器配置不高,例如华为
RH1288
这类低配置服务器,允许硬件失败;
系统平台要求可根据实际用户数的规模进行伸缩部署,保证硬件资源的合理利用;
由于系统平台之上需要运行若干企业应用的开发和运行环境,
可靠性是非常重要的,
不允许单点失效。
其次,本系统功能复杂,从架构的角度需要将系统分成多个层次和若干个子系统。不同的层次、子系
统根据具体情况需要采用不同的开发语言,由不同的开发小组完成。
第三,项目组成员由几个城市的异地团队协同开发,统一的开发环境和协同工具是必不可少的。
针对上述项目背景的考虑,本项目选择基于微服务架构进行项目开发。
开发、测试、部署使用到的工具集
“工欲善其事、必先利其器”,借助适合的流程和相关工具集,才能提高微服务架构下的应用开发效
率。本项目利用
DevOPs
流程并选用一套相关工具集实现应用开发管理,提高开发、测试、部署的效率。
代码库:本项目使用分布式代码库
Gitlab
,它的功能不限于代码仓库,还包括
reviews(
代码审查
,
issuetracking(
问题跟踪
、
wiki
等功能,是代码管理和异地团队沟通、协作工具的首选。
Docker
镜像仓库、
Docker
:本项目用容器贯穿整个软件开发流程,以容器作为应用发布的载体,应用
的开发环境和测试发版环境都运行在
Docker
容器中。对于复杂的开发和运维环境管理
Docker
具有先天的
优势,目前国内外的互联网公司有大多数都已经将
Docker
应用到了他们的开发或者生产环境中了。
K8s
:本项目采用
Kubernates
作为容器调度管理的基础环境,开发环境、测试环境的
Docker
容器都
由
K8s
负责调度管理。
Jenkins
:快速的部署发布离不开老牌持续集成明星
Jenkins
,本项目通过
Jenkins
任务构建代码、将
应用打包成
Docker
镜像,最终发布到
K8s
环境中将容器运行起来。
Shell
脚本:编写
Shell
脚本将项目打分支、发布应用等开发阶段的配置管理工作自动化,降低运维
门槛、提高配置管理和运维的效率。
WIKI
:
Gitlib
上的
WIKI
功能相对简陋,因此项目组选择
dokuwiki
作为异地团队协作和沟通的工具
,
团队成员可以将设计文档、知识分享文档、公告信息等信息可以更新到
wiki
上,便与协同开发。
禅道:为了便于开发计划、开发任务和
bug
关联起来,本项目使用禅道进行开发任务和
bug
管理。
人员分工及开发流程
微服务架构应用的开发、部署的复杂度都是远大于单体式应用的,靠运维人员手工的配置管理显然是
难于应付了。
DevOps
主张以自动化任务处理方式实现软件交付及基础设施更新,
可以说是微服务架构应用
开发和运维的必要条件,本项目采用
DevOps
的理念的开发流程进行开发。实现部署和运维的自动化需要
工具,同时
DevOps
强调软件开发者与其他
IT
员工及管理层间的协作与沟通,因此明确的人员分工和开发
流程是与工具同样重要的因素。通俗的说,就是有了工具,大家要知道怎么使用工具,并且愿意使用工具
才能真正达到提高研发效率的目的。
项目组的主要工作成员无非也是做开发、测试和系统管理三类工作,这里只说明与传统的企业应用开
发过程中三类人员所做的工作略有不同的工作内容。
开发人员:
a
开发者做开发设计,需要将涉及到接口部分设计更新到
wiki
上,供调用者评审和调用。
b
开发者除了编写程序逻辑外,还需要注意编写单元测试用例,因为分布式应用联调相对复杂,先
做在编写单服务时做好了测试再联调能够提高开发效率。
c
由于本项目是采用
Docker
容器作为发布载体的,开发者可能需要修改
DockerFile
模板里的部分
参数,
便于部署阶段能将编译后的代码打包到镜像中。
相对于传统的开发方式,
这是对开发者额外的要求。
让所有开发者懂
Dockerfile
似乎要求也有点高,其实每个子项目中的
DockerFile
及脚本一般是在搭建项
目框架时,主要系统配置管理员编写的好的模板,若开发人员不懂相关技术,也可以跟配置管理员沟通需
求,由配置管理员修改相关文件。
测试人员:测试人员的工作没有什么特别,只是需要注意除了每个
Sprint
阶段的测试外,还需要配
合开发人员持续集成的测试;
系统配置管理人员:一般
DevOps
的开发方式是依赖于云基础平台以及自动化发布工具的,因此相对
于传统开发方式,对系统配置管理者的技术要求会比较低。但是,我们的项目开发目的就是构建一个能支
撑
DevOps
流程的平台,其开发本身还不具备相应的平台基础。因此,我们项目最初的系统配置管理工作
是由架构师来做的,主要需要做如下这些事:
a
部署运行项目组开发需要用到公共的服务组件、例如
zookeeper
注册中心、
Docker
Registry
镜像
仓库、数据库等;
b
为子项目编写在
git
上打分支的脚本,便于测试发版的时候打分支;
c
编写各类型应用发布部署成镜像的
Dockerfile
;
本文来源:
https://www.2haoxitong.net/k/doc/c539eba1a88271fe910ef12d2af90242a895abac.html
《微服务架构的部署.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
文档为doc格式
分享到:
相
关
案
例
安全验证
2024-05-01
正在进行安全检测...
2024-05-01
正在进行安全检测...
2024-05-01
正在进行安全检测...
2024-05-01
正在进行安全检测...
2024-05-01
正在进行安全检测...
2024-05-01
正在进行安全检测...
2024-05-01
正在进行安全检测...
2024-05-01
正在进行安全检测...
2024-05-01
正在进行安全检测...
2024-05-01
相关推荐
1
朋友圈伤感句子摘录
2
改变自己作文500字四年级
3
参加公司年会心得感悟
4
中考08江苏盐城
5
关于生日的日记大全50字10篇
6
上海市长宁区2021届高三语文一模考试卷及答案
7
无财产离婚协议书(标准版)
8
同仁堂健康药业:6个月成功实施两个系统
9
普陀二中
10
读李南晖《读易观象惺惺录》札记
推荐内容
一种马鞭草精油
自荐信 销售员自荐信合集5篇
城市外来人口对公共事业管理的影响
quietly的比较级和最高级
《学会教学》读书笔记(四)
南京审计学院叶天阳,前几天签约普华永道经验贴
财务人员自我评价版
我的爸爸
酒驾行政复议申请书
管理学