一、快速开发实践
结构、开发方式、持续集成环境、测试策略、部署机制以及监控和告警的实现方式。形成微服务快速开发模板,主要包括4部分:快速开发模板、代码生成工具、持续集成模板以及一键部署工具。
二、微服务开发流程:
- API
- 代码测试(Rspec)与静态检查(Rubocop*代码风格检查器)
- Docker映像构建
- Docker镜像部署
- 持续集成与交付
- 监控与告警
- 日志集成
- 功能迭代
三、持续集成环境
代码管理:GitHub
持续集成服务器:Snap-CI/Bamboo/jenkins/GO
(1)、持续交付4个阶段
- 提交阶段(代码变异、静态检查、运行测试单元)
- 验收阶段(运行集成测试、运行用户行为测试、运行组件测试、运行性能测试)
- 构建阶段(docker)
- 发布阶段(测试环境、类生产环境、生产环境)
四、日志聚合
扫描二维码关注公众号,回复:
3038833 查看本文章
工具:Splunk/LogStash
Splunk的核心:
- 数据(采集器)转发器
- 数据索引器
- 搜索、分析、可视化
五、监控与告警
监控成熟产品:Ganglia/Zabbix/NewRelic/Nagios/OneAPM
告警:PagerDuty
六、功能迭代
- 场景分析
- 功能实现
- 代码测试与静态检查。定义静态检查、复杂度检查以及代码覆盖率统计的规范
- 构建docker镜像并部署docker
- 构建持续交付流水线
- 设置日志聚集
- 设置监控以及告警机制
七、代码持续交付
1、开发
独立代码库(SVN/GIT)
服务说明文件
代码所有权归团队
有效的代码版本管理工具(GIT/Mercurial/CVCS)
代码静态检查工具(java的checkStyle、Ruby语言的Rubocop)
易于本地运行
2、测试
集成测试的二义性
单元测试(Mock与Stub)
接口测试
测试有效性
3、持续集成(Jenkins/Bamboo/GO)
4、构建
5、部署
部署环境
-
基于云平台(基于PAAS、基于IAAS)
-
基于数据中心
-
基于容器技术
部署方式
-
手动部署
-
脚本部署
-
基于设施部署自动化
-
应用部署自动化
-
镜像部署
-
容器部署
6、运维
-
监控
-
告警
-
日志聚合
八、服务间的通信机制
- 远程方法调用
- REST
- HAL
- 消息队列
- 后台任务系统
九、测试
- 微服务内部的结构
- 业务模型
- 模型存储
- 资源定义
- 网关集成
- 从测试角度,对微服务的测试策略分析
- 单元测试
- 集成测试
- 接口测试
- 组件测试
- 端到端测试
契约测试Pact
十、微服务改造策略
- 最小修改
- 功能剥离
- 数据解耦
- 数据同步
- 迭代替换