服务质量指标
SLI
(service level indicator):表示服务的一个具体量化指标,如可用性、性能(qps、tps、服务内外的平响、TP99等)、正确性、可靠性等,机器的资源占有率;
SLO
(service level object):服务质量指标,即基于 SLI
设定的期望值,如请求延迟小于500ms、服务可用性为99.9%等
SLA
(service level agreement):服务质量目标,即未达成预期若干 SLO 的情况下,商业侧的补偿;
混沌工程
概念就是指:在生产环境中故意制造混乱,以测试系统的弹性和稳定性;
即以故障为核心业务指标,技术+运营持续迭代;
典型故障场景:
- 变更上线场景
- 服务宕机 or oom 等异常
- 网络延迟 or 分区
- 机房挂掉
牵引业务方布防,泛化故障(即一个故障出现一次,要保证所有场景不会再次出现这种故障)
有损注入:指篡改真实数据;
无损注入:指篡改对账系统的数据(或者日志、监控,但需要注意有没有业务依赖日志,否则就不是完全无损的),如 binlog 同步时篡改,即对真实数据无影响,修复较简单(因为有 源库,有损注入没有 源库);
代码注入:篡改原本的实现(runtime 篡改);
变更
前置防御:特殊时间段不允许变更,如活动;
后置防御:变更后的业务指标是否出现非预期波动;
前置攻击:mock 非法变更,如时间、参数等;
后置攻击:mock 正常变更的情况下,日志 or 监控指标异常;
todo: https://github.com/gocrane/crane,ML+HPA