趣头条云原生实践 趣头条 基础架构部 / 徐鹏 CONTENTS目 录01云原生落地规划020403云原生价值思考云原生演进云原生落地总结云原生价值思考基础设施2.0Kubernetes 提供应用程序周期管理和Service Mesh 提供应用程序网络管理的基础设施 2.0,大大提高了应用程序的可靠性和迭代效率。云原生价值思考人才转型和能力提升在容器化过程中实现人才转型和能力提升。运维从繁琐的运维工作中脱离出来,转型到 SRE。研发同学也需要对容器平台有更深入的了解,才能让框架等组件匹配容器的生命周期。资源管理集中化,统一化,效率化通过 Kubernetes 集群管理资源,可以有效的提高资源利用率,在微服务场景下提升 50% 的资源利用率。云原生落地规划交付标准化运维自动化成本优化提供 PaaS 平台管理生命周期通过超卖,弹性削峰等能力提高资源使用率提供统一的框架进行交付云原生落地规划通过 Mesh 化和可观测性平台做到故障快速恢复故障治理云原生落地总结服务化Mesh化容器化云原生落地云原生落地-服务化:基础组件云原生落地-服务化:业务服务化服务化先行云原生落地-服务化:业务服务化通过服务治理项目形式推进业务服务化新服务通过管控手段接入统一框架通过 Service Mesh 提供多语言支持和快速接入云原生落地-服务化:思考微服务拆分引入的问题:框架/SDK 升级困难需要避免微服务集群雪崩(级联故障)调用链路复杂性能损耗管理繁琐云原生落地-Mesh化:虚拟机时代云原生落地-Mesh化:容器时代云原生落地-Mesh化:容器时代云原生落地-Mesh化:注册发现统一云原生落地-Mesh化:自动注入&流量拦截云原生落地-Mesh化:自适应负载均衡 P2CClientSuccess / serverCPU*math.Sqrt(latency+1)*(inflight+1) ClientSuccess:客户端的请求成功率(EWMA计算方式)serverCPU:通过每次请求 response 的 header 返回,服务端的 CPU 使用率latency:客户端计算的延时(滑动窗口)inflight: 正在发送中的请求数量云原生落地-Mesh化:自适应负载均衡 P2C•通过配合调整 HPA 值,可节省资源 10%~15%•入口网关层整体延时下降 2ms云原生落地-Mesh化:自适应限流自适应限流算法:[ ( cpu > 90% && errRate > 1% ) || (errRate > 10% ) ] AND [ maxPass * minRT * windows / 1000) < inflight ]其中 ( cpu > 90% && errRate > 1% ) || (errRate > 10% ) 为前置条件maxPass:最近 5s 内,单个采样窗口中最大的成功请求数minRT: 最近 5s 内,最小的单个采样窗口成功请求的平均响应时间windows:一秒内采样窗口的数量,默认配置中是 5s 50 个采样,那么 windows 的值为 10inflight:当前并发请求数云原生落地-Mesh化:自适应限流云原生落地-Mesh化:思考虚拟机时代主机管理困难资源消耗增加排查问题链路增多云原生落地-容器化:整体架构云原生落地-容器化:稳定能力多集群多云故障演练监控大盘云原生落地-容器化:稳定能力• 2019 年经过治理业务线c类以上故障降低到个位数,故障率降低 80%。• 所有业务线完成治理后, c 类以上故障降低到个位数,故障率降低接近 90%。• 2020 年,对比治理前的业务线,故障率是治理后业务线的 3 倍。云原生落地-容器化:调度能力容器调度规则服务画像调度云原生落地-容器化:资源利用能力弹性削峰服务画像Node 超卖资源利用率实时检测弹性 ECI离在线分时复用云原生落地-容器化:弹性削峰通过 Cluster Autoscaler 机制配合云厂商 ESS 实现节点自动扩缩通过低优先级 Workload 预留资源,服务类型 Workload 会优先抢占预留资源通过 PDB 机制,保证 ESS 节点在驱逐过程中,有足够的Pod 提供资源支撑服务自动扩缩资源预留缩容保护云原生落地-容器化:服务画像模拟环境扩展调度服务画像资源堆叠扩展调度云原生落地-容器化:服务画像线上效果:高负载节点峰值从 60% 降低到 40%云原生落地-容器化: Node 超卖oversold-probe:根据CPU使用情况默认超卖1.5倍。Injector:计算更新node status的allocatable值。云原生落地-容器化: 思考发布回滚时间变长对基础设施提出了更高要求,开发也更依赖基础设施资源隔离并不是十分彻底排查问题更加复杂云原生演进云原生演进离在线混部Serverless/FaaS化可观测性演进云原生演进-Serverless基于现有的K8s和 Service Mesh 体系,提供成本更优,效率更高的一站式微服务托管方案。提供低改造成本上云方案,自动监控告警,自动弹性能力,自动化服务治理能力等。未来进一步扩展,可提供函数服务能力。云原生演进-FaaS云原生演进-Multiple Runtime
发表评论取消回复