性能、可用性(高可用)、可扩展性

142 阅读3分钟

性能

cloud.tencent.com/developer/a…

读写分离,负载均衡,缓存,异步,并行处理(多线程),批量合并(批量请求等),

扩容:系统扩容包括垂直扩容和水平扩容,增加设备和机器配置

其他: 预先和延后处理(预先:比如网站页面资源的提前加载;延后:比如 Copy On Write),更先进算法和数据结构

性能问题怎么定位

  • 机器的cpu 、 内存监控
  • pprof
  • skywalking

可用性 (高可用)

  • 冗余,多副本容灾
  • 故障隔离 (服务隔离,数据隔离,接口故障隔离(熔断))
  • 降级 限流 熔断
  • 监控报警
  • 系统解耦 (降低系统中不同部分之间的依赖性,使系统的各个组件能够相对独立地进行开发、维护和演化)

稳定性

  • 降发生 (风险预防)

    • 开发制度、测试制度、预发和上线流程、线上变更制度
    • 架构优化/解耦, 上下游多层防御
    • 容量压测
    • 监控报警
  • 控影响 (止损第一,核心为主)

    • 应急预案
    • 应急处理流程

可扩展性

  • 服务的可扩展性
    • Vertical scaling (scale up)
    • Horizontal scaling (scale out)
  • 代码的可扩展性
    • 基类、泛型、设计模式
  • 数据库维度
    • xx_type 枚举值字段
    • 扩展字段
    • 二进制字段
  • 接口维度
    • 设计接口版本号
  • 纵横做设计

容灾

  1. 制定详细的容灾计划: 包括确定业务关键数据和系统,分析潜在的风险和灾难类型,以及确定容灾目标和恢复时间目标(RTO)和恢复点目标(RPO)。
  2. 定期进行数据备份: 确保关键数据的完整性和可恢复性,可以使用云服务提供商提供的备份服务,也可以选择第三方备份工具或自主开发备份系统来实现。
  3. 多区域和多可用区部署: 利用云提供商的多区域和多可用区特性,在不同的地理位置和可用区分布关键数据和应用程序的副本,提高数据的冗余性和容灾能力,在一个区域或可用区发生故障时,仍然能够继续提供服务。
  4. 弹性和自动化: 在云容灾方案中,考虑采用弹性和自动化的部署方式。例如,使用自动化工具进行资源的自动扩展和缩减,实现即使在受损的区域或服务器上也能自动恢复服务。
  5. 监控和测试: 建立监控系统,定期检查备份和容灾的状态,并及时发现潜在问题。此外,定期进行容灾演练和恢复测试,以验证容灾计划和备份的有效性。
  6. 第三方服务提供商: 考虑使用专业的第三方容灾和备份服务提供商,他们可以提供更加完善和专业的容灾解决方案,并确保数据的安全性和可用性。