微服务生态系统及生产可用概要

微服务生态系统

第一层:微服务硬件生态系统

  • 物理服务器(公司自有的或者从云供应商租的)
  • 数据库(专用的或者共享的)
  • 操作系统
  • 资源的隔离和抽取
  • 配置管理
  • 主机级的监控
  • 主机级的日志

第二层:微服务通信生态系统

  • 网络
  • DNS
  • 远程过程调用
  • 端点
  • 消息
  • 服务发现
  • 服务注册
  • 负载均

第三层:应用平台

  • 自服务内部的开发工具
  • 开发环境
  • 测试,打包,构建,发布工具
  • 部署流程
  • 微服务级的日志
  • 微服务级的监控

第四层:微服务

  • 微服务
  • 所有的微服务配置

微服务的挑战

一、可用性

  • 99.999%的时间可用

二、稳定性

  • 稳定的开发周期
  • 稳定的部署过程
  • 稳定的引入和退出过程

三、可靠性

  • 可靠的部署过程
  • 计划,缓和,抵抗依赖的错误
  • 可靠的路由和发现

四、可伸缩性

  • 定义良好的数量和数量增长机制
  • 确定资源的瓶颈和需求
  • 准确的容量计划
  • 稳定的通信控制
  • 依赖的伸缩
  • 数据存储的伸缩

五、容错和预灾

  • 识别并预防潜在的灾难和错误场景
  • 识别并解决单端点的错误
  • 错误检测和现场修复机制
  • 用代码测试,加载测试以及噪音测试来测试恢复弹性
  • 管好通信以防错误的出现
  • 错误和输出要合适地处理

六、性能

  • 针对可用性要有合适的服务级的协议(SLAs - service level agreements)
  • 合理处理任务
  • 高效利用资源

七、监控

  • 合适的日志和堆栈跟踪输出
  • 定义良好的报表-能够很容易地理解并能准确地反映服务的健康状况
  • 配套高效,可用的运行手册
  • 实现并维护一个及时响应的轮子

八、文档

  • 一个全面,最新,中心化的文档应该包括无服务所有最关键的信息
  • 而且要使开发人员,各组以及生态系统级都能全面理解

参考文献:
Production-ready Microservices. Susan J. Fowler.

猜你喜欢

转载自blog.csdn.net/sinat_36246371/article/details/80658784