微服务—微服务架构

一、快速开发实践

结构、开发方式、持续集成环境、测试策略、部署机制以及监控和告警的实现方式。形成微服务快速开发模板,主要包括4部分:快速开发模板、代码生成工具、持续集成模板以及一键部署工具。

二、微服务开发流程:

  • API
  • 代码测试(Rspec)与静态检查(Rubocop*代码风格检查器)
  • Docker映像构建
  • Docker镜像部署
  • 持续集成与交付
  • 监控与告警
  • 日志集成
  • 功能迭代

三、持续集成环境

代码管理:GitHub

持续集成服务器:Snap-CI/Bamboo/jenkins/GO

(1)、持续交付4个阶段

  1. 提交阶段(代码变异、静态检查、运行测试单元)
  2. 验收阶段(运行集成测试、运行用户行为测试、运行组件测试、运行性能测试)
  3. 构建阶段(docker)
  4. 发布阶段(测试环境、类生产环境、生产环境)

四、日志聚合

扫描二维码关注公众号,回复: 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
  • 消息队列
  • 后台任务系统

九、测试

  • 微服务内部的结构
  1. 业务模型
  2. 模型存储
  3. 资源定义
  4. 网关集成
  • 从测试角度,对微服务的测试策略分析
  1. 单元测试
  2. 集成测试
  3. 接口测试
  4. 组件测试
  5. 端到端测试

契约测试Pact

十、微服务改造策略

  • 最小修改
  • 功能剥离
  • 数据解耦
  • 数据同步
  • 迭代替换

猜你喜欢

转载自blog.csdn.net/CJ_66/article/details/81951655