1 背景
随着业务在线化互联网化的高速发展,企业对核心业务系统的稳定性、可靠性、有效性、业务连续性等有了更高的要求。采用高可用系统架构支持重要系统、为关键业务提供7x24的不间断服务,已经成为众多企业保障业务稳定、持续运转的主要选择。但如何从海量实践中提炼出值得借鉴复制的高可用架构之道,实现适合自身的高可用系统架构,是需要企业深思熟虑的问题。阿里巴巴在多年双11高并发、高可用和高客户体验要求背景下积累了相应的技术体系,本文将依据高并发用户、突发高流量场景下的真实案例,分享阿里在高可用架构建设过程中的经验总结,以期待帮助更多企业做好业务高可用建设。
2 存在的问题
2.1 非常复杂的服务端
通常从客户端到达服务端会涉及到的关键节点有CDN、动态加速、高防、应用防火墙、4/7层负载均衡、前后端服务集、缓存、数据库存储、中间件、基础设施层等等,整个链路都面临着不确定性。后端服务的服务规模化问题更是复杂和难以评估检验,这其中任何一个节点出现问题都会导致服务不可用。如何能有效地全面检验服务端吞吐能力、发现所有问题甚至是做好容量规划,具备对峰值的流控调度能力是所有企业都需要思考和应对的。
2.2 缺乏提前规划的服务能力
如果企业没有对自己的服务能力进行提前规划,没有提前做好关键节点的规划,对线上的应急措施如弹性扩容、线上防护、熔断降级等都不具备,那么在面对突发问题时,就很难保证核心接口能够稳定对外服务。一旦出现问题,很多企业无法采取正确的手段,匆匆扩容非但不能解决问题,反而带来更多不可预期的问题,导致问题进一步的恶化。此外,运维侧的隐患问题如故障影响面、配置一致性、监控和根因分析相关工具、复杂人员组织的高可用程度等,如果没有足够的演练和验证方案,同样会在关键时刻出现问题。
3 高可用架构建设
3.1 架构设计
首先要实现架构可视化。服务器、存储、网络是现代云平台的基础设施。随着上云战略的推进,越来越多的企业将业务、服务、系统构建在云平台上。利用阿里AHAS的架构感知可以全面了解云上系统架构,以可视化的方式直观呈现云资源、容器和应用间分层依赖关系。
开源软件和云服务的多样性、开发语言的异构性,以及企业IT团队的组织和能力差异,都提高了标准化的复杂性。架构感知功能应运而生,通过采集和分析操作系统及第三方标准接口,捕捉进程级的调用关系,并使用特征库算法识别进程所使用的技术组件,最后在服务器、容器和进程这三个维度上以可视化的方式展示应用架构,