传统IT时代:容灾 和双活是业务连续性进化的不同阶段
在传统IT的业务连续性建设上,一般会经历主备中心(Active-Standby),生产查询中心(Active-Query),再到双活中心(Active-Active)三个阶段,每个阶段的业务连续性能力是不断飞跃的,尤其是在有效减少业务中断的时间上。在主备阶段,业务需要在备端重启,RTO一般在小时级;到了生产查询阶段,交易型业务仍然无法做到实时切换,但是查询业务可以在灾备站点连续对外提供服务;再到双活阶段,业务可以在站点间做到无缝切换,消除业务中断。所以双活一直是业务连续性建设所追求的更高目标。

云原生时代的业务连续性需求
现今,以容器和Kubernetes为基础的云原生架构已成为广泛流行的新一代企业IT基础设施,在互联网、金融、政府、先进制造等关键行业,有越来越多的云原生关键业务应用开始在正式的生产环境中运行,从合规和数据安全的角度,进行云原生业务连续性系统建设已经成为刚需。此外,针对容器和Kubernetes环境的攻击也在快速增长,据安全公司StackRox的研究报告显示,其94%的企业受访者在过去12个月内在其Kubernetes和容器环境中经历了安全事件,因此,对于云原生业务连续性建设的迫切性也越来越强。作为一个颠覆性的新技术生态,云原生系统 的以下特点使得传统成熟的基于中间件 和虚机的业务连续性方案不再适用:
云原生时代的业务连续性需求
现今,以容器和Kubernetes为基础的云原生架构已成为广泛流行的新一代企业IT基础设施,在互联网、金融、政府、先进制造等关键行业,有越来越多的云原生关键业务应用开始在正式的生产环境中运行,从合规和数据安全的角度,进行云原生业务连续性系统建设已经成为刚需。此外,针对容器和Kubernetes环境的攻击也在快速增长,据安全公司StackRox的研究报告显示,其94%的企业受访者在过去12个月内在其Kubernetes和容器环境中经历了安全事件,因此,对于云原生业务连续性建设的迫切性也越来越强。
作为一个颠覆性的新技术生态,云原生系统 的以下特点使得传统成熟的基于中间件 和虚机的业务连续性方案不再适用:
-
容器化的应用和微服务会由kubernetes平台自动在几百乃至上千台物理机或者虚拟机中进行调度,用户不关心也很难去跟踪到应用在哪个机器里运行,所以传统方案针对机器粒度进行灾备保护就无法工作。另外一个方面,完成一个业务需求的云原生应用包含了许多种组件和微服务,相关的镜像、配置信息、以及持久化数据,需要作为一个整体被备份保护起来,而恢复时也需要端到端的恢复整个应用和数据,这是跟传统灾备非常不一样的地方。
-
云原生天然是多云的 -
Kuberenetes平台屏蔽了底层基础设施的差异性,符合Kubernetes规范的应用可以在任何一个Kubernetes平台上运行,因此针对云原生的业务连续性 方案设计必须立足于多云。例如,在一个Kubernetes集群 中备份下来的应用和数据,需要能支持在其它Kubernetes平台上顺利进行恢复;同时,需要能在不同的Kubernetes平台间进行跨云的容灾和迁移。 -
-
云原生是一个全新的生态,有自身的开发运维的工具链和最佳实践,比如快速部署、高度自动化运维、声明式API、跟Prometheus和ELK的集成等等,业务连续性方案本身也必须融合在这个生态里。 -
-
云原生时代的备份与恢复
备份恢复是一种成本低廉,适用性广的方案,对容器环境下的多数工作负载都能够进行有效的保护。备份恢复方案的缺点是RPO和RTO往往在小时级或天级,对于很多关键业务而言,无法满足业务的连续性要求。
在容器环境下,针对无状态应用 的保护、有状态应用的保护和集群的保护,都有多种备份的方法。在企业生产环境中,使用专业备份软件可以有效提升运维效率,降低操作复杂度。
1、生产环境业务连续性的两大支撑
- 选择可靠性,高质量的软硬件、靠谱的架构/交付/运维。
- 增加冗余性,系统内冗余(比如3 Master的高可用的Kubernetes集群)、备份、容灾、双活/多活。
2、影响Kubernetes集群可用性的因素
- 软件故障,比如程序有问题;
- 人为失误,比如误删k8s组件;
- 机房事故,比如火灾;
- 自然灾害,比如洪水;
- 网络中断,比如网线被修路挖断了。
3、云原生团队对于业务连续性的多维度诉求
3.1 开发团队诉求
- 应用和PVC备份保护
- 应用容灾
- 应用双活
- 应用迁移
3.2 运维团队诉求
- 集群备份保护
- 多集群功能保护
- 流水线保护
- 集群级别容灾切换
4、云原生业务连续性建设路线——“总是备份,最好容灾,重点双活”
4.1 云原生备份
4.2 云原生容灾与双活
4.3 云原生容灾方案示例
4.4 云原生双活方案示例
5、K8s云原生应用备份神器——Velero
5.1 场景一:使用Velero备份K8s集群内容器应用
5.2 场景二:使用Velero进行跨集群迁移
云原生时代业务连续性最佳实践
云原生时代的业务连续性建设,到底是选择双活还是容灾?其实没有统一的答案,最佳实践还是需要根据企业自身阶段性的业务连续性需求,团队的技术能力,以及预算来因地制宜的设计,云原生备份、容灾和双活系统都是可选项。按照国内多数企业的云原生发展进程而言,可以循序渐进,先针对整体应用和容器平台构造完整的备份、容灾能力,然后选择性的针对关键核心应用实现双活。
其他:文章内容主要参考B站视频
https://www.bilibili.com/video/BV1kJ4m1J7se/?spm_id_from=333.880.my_history.page.click&vd_source=e89f9bb7c34e71f5511b36bba681d48e
部分数据内容来源:人艰不拆_zmc

