快手大前端 08/01

快手直播观后感

《前端高可用性保障实践》

可用性方案设计

一、页面功能可用性保障

  • 技术选型
  • 动态配置能力
  • 请求压力
  • 降级限流
  • 埋点监控

二、基础服务保障

1.Nodejs服务可用性

  • 压力评估 GPS 8020、业务模型、春晚模型
  • 服务优化 缓存优化、连接优化、接口代理优化、日志优化
  • 健康检查 node服务可用性检查、API可性检查、硬件配置检查、报警检查
  • 容灾互备 多机器、异地多机房

2.Nginx

  • 负载能力:https握手优化 ssl_session_ticket

  • 分级限流

  • 缓存代理 proxy_cache

  • 预压缩 gzip实时压缩、brotli实时压缩、gzip预压缩、brotli预压缩、

  • 容灾互备 多机器、异地多机房

3.CDN

  • 压力评估

  • 边缘节点预更新

  • 多cdn调度

  • 错误重试

三、完整链路可用性

内部服务依赖:风险控制、数据统计、内容审核、帐号、支付提现

外部服务依赖:分享、短信验证、CDN、三方登录

可用性验证

压力测试

  • 单功能点压测
  • 全链路压测
  • 功能修改后重新压测

故障演练

  • 模拟真实会发生的故障
  • 检查相关降级 熔断流程是否触发正常
  • 是否有相关报警

线上预演

  • 整体流程演练
  • 容量推算

如何保障前端可用性?

一、规范的开发流程

技术选项、代码准入规范、安全检查、测试上线流程、降级流程

二、完善基础服务的支持

  • 端能力:预加载、通信通道、性能优化
  • 中台能力:分享、支付 、提现、埋点
  • 工程架构:可扩展性 可伸缩性

三、高效的监控排障能力

可用性指标体系、业务指标监控、性能指标监控、分级监控规范

四、定期总结演练

提升重视程度、团队练兵、故障操作手册、总结反思提高

《点到面 如何系统化的解决工程问题》

一、开发流程的提效web-ops

  • 泛域名打通nginx+端口自动分配

  • 环境隔离

    • 进行BASE IMAGE的进一步隔离
    • 类n8n式的ci组合
    • 权限管理
  • 构建完成通知

二、monorepo的落地实践

思考:单业务逻辑内的复用、多业务逻辑内的复用、单工程、多工程、开源

三、Open Tracing的Web化场景落地

![image-20200803211547074](/Users/marong/Library/Application Support/typora-user-images/image-20200803211547074.png)