微服务架构

《生产微服务》读书笔记

2017-11-07  本文已影响103人  zlup

概念

生产就绪:如果一个应用程序或服务被证实可以处理生产环境的业务流量,那么它就被认为是生产就绪的。

混沌测试:在生产环境验证(安排好的或随机的)各种故障场景。(参考资料:微服务的混沌测试

staging环境:近似生产环境,要反映真实生产环境的状态,只不过没有真实的业务流量。

canary环境:先部署到生产环境的一小部分服务器上(大概5%到10%),如果没有问题,再部署剩余的服务器。(源自于旷工使用金丝雀来探测矿井中的空气质量)

防御性缓存:将微服务下游依赖项的数据缓存起来,当下游依赖项不可用时,避免稳定性和可靠性受到影响。

生产就绪路线图:一份文档,作为生产就绪流程的一部分,描述了把微服务带向生产就绪状态的步骤。

水平伸缩:通过增加更多的服务器(或其他硬件资源)对应用或系统进行伸缩。

垂直伸缩:通过增加资源(CPU、内存)对应用或系统进行伸缩。

8个原则(生产就绪标准)

开发周期

image.png

部署管道

稳定可靠的部署管道的几个阶段:

image.png

staging

staging阶段测试:

full staging

image.png

partial staging

image.png
full staging partial staging
生产环境的完全镜像
单点的端口
访问生产服务
读取生产数据库
写入生产数据库
要求自动回滚

full staging和partial staging环境的对比

full staging partial staging
生产环境的完全镜像
单点的端口
访问生产服务
读取生产数据库
写入生产数据库
要求自动回滚

canary

生产

伸缩性和高性能

一个生产就绪的微服务是可伸缩且高性能的:

了解增长规模

描述微服务增长规模的指标:

容错和灾备

一个具备容错和灾备能力的生产就绪的微服务:

故障场景

常见的生态系统故障:

常见的硬件故障场景:

常见的通信层和应用平台层故障:

常见的依赖项故障场景:

常见的微服务故障场景:

弹性测试

故障检测和修复

事故和中断的分类:

处理事故的5个步骤:


分诊(triage)、缓解(mitigate)和解决(resolve)

监控

生产就绪的微服务的监控的4个工具:

一个得到恰当监控的生产就绪的微服务:

度量指标 主机和基础设施 微服务
CPU 开发语言相关的度量指标
内存 可用性
线程 SLA
文件描述符 延迟
数据库连接 调用成功的端点
端点响应结果
端点响应时间
客户端
错误和异常
依赖项

关键性度量指标总结:

度量指标 主机和基础设施 微服务
CPU 开发语言相关的度量指标
内存 可用性
线程 SLA
文件描述符 延迟
数据库连接 调用成功的端点
端点响应结果
端点响应时间
客户端
错误和异常
依赖项

文档化和理解

一个生产就绪的微服务具有良好的文档并且为人所理解:

微服务文档包含内容:

生产就绪微服务的文档需要包含的内容:

评估列表

开发周期

部署管道

服务依赖

路由和服务发现

服务和端点的解除

增长规模

资源的有效利用

资源感知

容量规划

依赖项的伸缩

流量管理

任务处理

可伸缩的数据存储

避免故障点

故障场景

弹性测试

故障检测和修复

关键性度量指标

日志

仪表盘

告警

轮班待命

微服务文档

微服务理解

上一篇下一篇

猜你喜欢

热点阅读