微服务实践目录,可以参见连接。
现在大家都在提微服务,但是有几个人想过怎么在公司级别怎么进行微服务落地呢?康威定律怎么处理呢?这里大概总结出一个微服务落地实施时需要考虑哪些内容。
第一部分:服务平台,发展远景。可以参照TOGAF的制定企业数字化方案制定方法,进行制定。
第二部分:服务平台,构建过程。设计在实施过程中的各种平台级问题。
第三部分:服务设计,划分方法。中台中的服务设计,服务验证方法。在这里也需要评审方法评审中台服务是否可行。
第四部分:开发 测试 运维。微服务具体开发,测试,运维过程中所涉及的问题。
以下为具体实施过程中需要哪些操作项目,以方便之后的实施:
1. 中台服务评审机构规范:(管理方式,需求方式)
1> 评审机构
1) 评审机构组成(参加人员,投票权等)
2) 评审决策规范(服务加入规范)
3) 会议与决策组织形式(会议议程、评审机构内知识共享形式等)
2> 微服务规范:
1) 服务拆分、加入规范
2) API发布、管理、使用规范
3) 非功能性规范(性能,稳定性,可靠性,机器申请)
4) 测试规范(测试方案,测试内容,测试工具)
5) 遗留系统迁移规范
6) 微服务文档管理规范(每个微服务都需要有文档)
3> 需求管理:
1) 公司对服务中台的终极目标:销售倾向?内部管理倾向?供应链管理倾向?全产业链倾向?
2) 具体业务需求与终极目标产生冲突之后,怎样操作?(只需要规范)
3) 中台服务评审机构需要评审项目是否可以立项。
2. 设计规范:(设计方式)
1> 服务拆分规范。
2> 设计中应该包括:逻辑视图,进程视图,部署视图,开发视图,业务场景。以上描述系统的不同部分。
3> 设计中需要考虑:功能,性能,稳定性,可靠性,实现难易度等。
3. 技术实施:(开发方式)
0> 业务服务:
1) 业务服务划分?服务边界?服务间关系?
1> 开发技术:
1) 运行环境中的JRE版本为?运行环境中的WEB容器为?使用过程中数据库相关配置是否使用JNDI?
2) 微服务主体框架?
3) 服务治理?服务注册与发现机制?故障恢复机制?限流?
4) 存储?无结构存储(文件存储形式,文件发布形式)、半结构存储(高速缓存,NoSql)、结构化存储(数据库,数据库中间件)。
5) 数据库设计?数据库设计规范?数据库设计文档?数据库物理结构设计?
6) 通信?消息中间件?RPC方式?Restful规范?
7) 日志集中管理?日志规范?日志收集、存储、分析?
8) 负载均衡?四层负载均衡还是七层负载均衡?服务间调用是否进行负载均衡?
9) 服务监控?服务的监控方式?消息跟踪机制(APM)?
10) 全局唯一性编码规范?
11) 分布式任务管理?
12) 是否有持续集成,持续交付环境?
13) Session共享?认证方式?第三方认证问题?
14) 安全,数据交换时是否对数据加密?数据存储是否对数据加密?数据权限控制?组织权限控制?
15) 其他服务(VOD,CDN等)是否使用阿里云服务?
2> 运行环境:
1) 是否可以在阿里云上进行测试环境测试?
2) 预生产环境与正式环境之间是否有差异?
3) 运行环境部署情况?以及部署方式EDAS?裸机部署?K8S部署?部署文档?部署目录?
3> 测试过程:
1) 对独立服务是否进行测试?
2) 交叉流程是否进行测试?
3) 测试规范?以及测试流程?测试执行情况?
4> 交付流程:
1) 验收规范?主测试流程?验收测试?自动化回归测试?
2) 需要"中台服务评审机构",对项目完成度,完成质量进行评审。
5> 协作方式:
1) 团队间协作方式的定义?团队间知识共享方式?
2) 供应商与公司之间的协作方式?沟通方式?
4. 运维支持:(运维方式)
1> 运维监控的内容是否包含消息跟踪?安全?可以上云,刚大批量上
2> 运维数据备份方式?
5. 运营情况:(运营方式)
1> 运营支持?运营活动的技术支持方式?