写点什么

你的可用性达标了吗?云端业务性能高可用的深度实践

  • 2019-03-12
  • 本文字数:2920 字

    阅读完需:约 10 分钟

你的可用性达标了吗?云端业务性能高可用的深度实践

近年来由于国内移动互联网的飞速发展,国内互联网用户也有了大踏步的飞跃。这对企业来说,既是机遇,也有挑战。


机遇在于,现实中如此多的互联网用户,都有可能是你的产品用户。尤其在当前流量为王的时代,如此大基数的用户,给互联网的产品带来了无限可能;同时,这也给企业的后台架构、运维体系提出了很高的要求,如果能够吸引到足够多的用户,却因为后台架构的可用性无法达到这种量级的标准,由于流量冲击过大导致后台架构崩溃,造成前端用户的不可用,从而造成大量的用户流失,这就是海量用户所带给企业的挑战。


在云计算时代,当“上云”已经成为一家互联网企业的标配之后,在云端,应该如何保障企业业务的连续性和可用性呢?IDC 在全球范围内针对多个行业下中小型企业(员工数小于 1000 名)的调研显示,近 80%的公司预计每小时的停机成本至少在 2 万美元以上,而超过 20%的企业估算其每小时的停机成本至少为 10 万美元。


而在当前国内互联网的大环境下,如果服务器宕机造成业务的不可用,所引起的连锁反应以及损失是不可估量的。你可以想象,如果在双十一当晚,电商 App 的支付接口出现了问题导致该业务不可用,所造成的损失会是多少。


因此,系统性能的高可用以及提前做好灾备措施已经成为了国内互联网企业的一个常态化认知。在云计算已经十分普及的现在,云端性能的高可用与否以及容灾措施的是否完善,正在成为企业衡量一家公有云厂商的重要标准之一。

云端如何实现系统性能的高可用


腾讯云高可用解决方案架构图


应用层面的高可用,腾讯云在技术架构以及应用落地方面已进行了诸多实践,其中主要囊括了以下 6 点:


1.客户端接入高可用:通过在客户端引入接入层技术(云解析、httpdns 和 IP 直连),依靠腾讯云在国内的 69 组集群以及海外 12 组集群,通过 DNS 智能调度,任意节点发生故障均能无缝切换到其他节点,保证服务的高可用性,同时防止域名劫持;


2.针对外网接入高可用:腾讯云当前支持 40+BGP 线路,可实现对故障的快速调度切换,防止因为骨干网故障导致业务的长时间不可用。同时腾讯云提供跨地域的 LB 接入和 anycast LB 能力,帮助业务实现跨地域跨区接入,避免因为机房故障导致业务中断。


3.云内网络高可用:跨区域通过数据中心互联(广域网)互通,且双环路保护,云上所有内部网络均基于成熟的网络虚拟化技术和网卡绑定技术来保证网络高可用性,在 T3+以上数据中心中采用多台服务器组成高性能群组,不依赖于某个独立硬件,因而不存在单点故障,单个服务器异常不会造成业务影响,保证运行网络的可靠性。


4.云上服务器高可用:腾讯云主机服务支持宕机迁移无感知、数据快照、自动告警等功能,为用户的服务器保驾护航。同时云硬盘提供三副本专业存储策略,消除单点故障,支持用户设定定期快照,定期将数据进行快照备份,保证数据可靠性。


5.中间件高可用:方案设计中可以考虑缓存和 MQ 多可用区域部署方案,在保障数据正确的同时,能够对各类中间件进行快速切换,尽量减少业务感知。


6.数据层高可用:CDB 数据库支持实时热备、读写分离,且实现了同城多可用区、异地灾备和两地三中心等满足金融级跨地域容灾需求;于业务低峰期自动冷备,不影响现网业务,每份冷备数据保存 3 份副本,保证数完整性。同时保留 5 天 binlog 日志供数据无损恢复,支持 5 天内库、表粒度的任意时间点回档,最大限度保障数据准确性,可靠性。


基础设施层的高可用,依托遍布全球 25 个地区的 53 个可用区,通过在全球部署超 1300 个加速节点以及超 100T 的带宽储备,能够将服务内容分发到全网加速节点,支持千万级用户并发,有效解决跨运营商、跨地域不稳定、高延迟访问等问题。

云端性能高可用运维实践

对于越来越多的上云企业而言,除了选择有高可用架构的云服务商之外,更要搭建符合自身业务特色的高可用架构,才是业务稳定性的重要保证。

快手云端多活容灾实践

快手的短视频和直播一直是其最重要的两个业务,此类在线流媒体播放的业务,不仅会对带宽、CDN 等流量方面有着高要求,更要求自身系统业务的高可用,如果由于访问量突增导致的流量突发、数据库读取缓慢所造成的用户体验差或者业务不可用,会对快手的业务造成极大影响。



为了确保平台服务的高可用,腾讯云从接入层、逻辑层、以及数据层帮助快手全面建设云端的高可用解决方案。


接入层:通过腾讯云专线链接各大机房,前端通过负载均衡接入,并且使用腾讯云的安全产品,保障全站的网络攻击。


逻辑层:逻辑层设计为多活模式,多中心业务部署,针对核心的业务在异地做多活,定期做演练,以保证能快速实现机房故障等灾难性故障的快速恢复。


数据层:数据层利用腾讯云数据产品的主备容灾架构做好足够的容灾,可以自动将数据库与腾讯云和客户 IDC 做异构系统备份。针对核心的业务在异地做多活,定期做演练,以应对机房故障等灾难性故障的快速恢复。

每日优鲜的云端单活热备部署实践

每日优鲜由于自身业务特性,在节假日有着较为明显的流量高峰期,需要长期面对高并发冲击的局面,因此之前将业务全部部署在单一云端上是有问题的,因为一旦出现网络异常、存储数据丢失等问题,由于缺乏相应的灾备能力,此类故障会导致业务线的全部不可用,尤其是在节假日人们此类需求较高的时期,如果出现此类问题,不仅会耽误到业务运营,还会对品牌构成负面影响。



为避免上述情况的发生,每日优鲜通过在云端实现多云热备部署以及 DNS 应急切换来实现业务容灾切换,以保障业务的连续性。双云之间通过专线打通,实现双线冗余,系统异常时流量会切入腾讯云,并通过技术手段实现数据一致性。

乐逗游戏异地容灾高可用实践

游戏行业对于高可用方案的需求则更为迫切,一款热门游戏,在极短的时间内需要应对 10 倍甚至百倍的用户量增长,如果后台系统架构的承压能力不够强,就会直接影响到游戏的顺利运营,游戏行业的用户争夺是非常激烈的,因此一旦出现不可用的状况,所带来的损失无法估计。


以乐逗游戏为例,乐逗游戏最重要的业务模块是游戏平台服务,为了确保该系统在特殊时期也能保持高可用的性能状态,乐逗游戏在腾讯云平台搭建了一整套异地容灾高可用解决方案。



为了实现游戏平台服的跨城异地容灾,规避机房故障等灾难性故障对业务造成的影响,乐逗游戏从三个层面做好了相应的准备:


接入层:前端通过负载均衡做接入,并购买 BGP 高防包绑定 CLB 做 DDOS 网络攻击防御,同时在安全防护上接入腾讯云宙斯盾防护体系,以应对 DDOS 网络攻击。


逻辑层:游戏逻辑层设计成无状态,故障时可直接剔除。此外为应对业务用户激增,可在容量扩展的同时接入 Auto Scaling,根据业务流量动态扩缩容。部分单点模块采用高可用虚拟(HAVIP)实现 HA 架构,主机故障自动剔除,规避云主机单点故障。


数据层:数据层采用了 Redis+Mysql 的存储架构,采用读写分离架构和主备容灾架构做好 HA,每天将数据库冷备文件自动导出并同步到对象存储 COS 中做异构系统备份。针对核心的平台登录服和支付服在异地做双活,定期做灾备演练,以应对机房瘫痪等灾难性故障的快速恢复。

结语:

随着越来越多的企业将业务部署在云上,云端的故障已经成为企业不得不关注的重点,采用高可用架构和方案也成为企业运维人员必须思考的话题。除此之外,作为企业技术人员,如何保证企业业务和服务的稳定性,值得业界一起探索。


2019-03-12 18:304434
用户头像

发布了 1481 篇内容, 共 657.4 次阅读, 收获喜欢 2499 次。

关注

评论

发布
暂无评论
发现更多内容

异常检测算法分类总结(含常用开源数据集)

云智慧AIOps社区

人工智能 机器学习 深度学习 异常检测 算法模型

为了进大厂!吃透了各大厂最新 3000+Java 面试题啃完面试肯定妥了

钟奕礼

Java 程序员 java面试 java编程

小令观点 | 需要留存用户的身份证照片?想清楚这三点了再做……

令牌云数字身份

身份认证 身份安全 敏感信息加密

Java 八股文能不背吗?Java 面试都只是背答案吗?

钟奕礼

Java 程序员 java面试 java 编程

小令观点 | 需要留存用户的身份证照片?想清楚这三点了再做……

令牌云数字身份

数字身份 身份认证 加密技术 可信

上班干,下班学!这份 Java 面试八股文涵盖 20 多个技术点

钟奕礼

Java 程序员 java面试 java编程

开源大数据热力报告:StarRocks摘得数据查询与分析方向增速第一

StarRocks

数据库

高级Java面试经验总结:多家大厂简历优化+面试题目+面经+薪酬等

钟奕礼

Java 程序员 java面试 java编程

百度面试被算法血虐,闭关肝完445页算法神仙笔记成功入职字节

钟奕礼

Java 程序员 java面试 java编程

业务畅行海外,如何做到安全第一

火线安全

MySQL的存储引擎及常用数据类型详解

C++后台开发

MySQL 数据库 中间件 后端开发 C++开发

最佳实践|用腾讯云AI文字识别对混贴票据识别

牵着蜗牛去散步

人工智能 腾讯云 腾讯 文字识别 OCR

云原生加速器企业维格表创始人陈霈霖:提供人人可用的数字化转型全新方案,真正驱动组织创新

阿里巴巴云原生

阿里云 云原生 维格表

既快又稳还方便,火山引擎VeDI的这款产品解了分析师的愁

字节跳动数据平台

大数据 数据分析

云服务器买谁家的好?为什么?理由是什么?

行云管家

云计算 服务器 云服务器

从零开始学习Java系列之你为什么要学Java?

千锋IT教育

隐语 PSI benchmark 白皮书

隐语SecretFlow

密码学 隐私计算 PSI 安全多方计算 隐语

直播预告lApache Hudi 中文社区技术交流会第六弹

StarRocks

数据库

携手!Kyligence 支持 Amazon EMR Serverless,赋能云上企业降本增效

Kyligence

数据分析 OLAP

想要做好代码质量,如何破局?

京东科技开发者

代码质量 系统 代码优化

Linux系统保存文件命令的详细介绍

源字节1号

软件开发 前端开发 后端开发 小程序开发

AI赋能音乐创作,人人都是音视频创作者

HarmonyOS SDK

HMS Core

「案例分享」研发效能提升之第一性原理

京东科技开发者

redis flink 研发管理 研发效能 软件开发技术的第一性原理

中心化危机下,NFT 去中心化协议能否破局?

NFT Research

区块链 去中心化 NFT

阿里云易立:以增效促降本,容器服务全面进入智能化时代

阿里巴巴云原生

阿里云 云原生 容器服务

技术分享| 快对讲视频调度功能说明

anyRTC开发者

监控 快对讲 语音对讲 视频对讲 视频回传

SCADA系统架构、类型和应用

2D3D前端可视化开发

物联网 组态软件 web组态 组态编辑器 SCADA

深入掌握 Fiori Elements 工作原理的前提条件:理解 Smart Field

汪子熙

前端开发 web开发 Fiori SAP UI5 11月月更

小令观点 | 是什么让马斯克也受骗了?

令牌云数字身份

数字身份

刷了三个月 leetcode 算法,顺利拿下百度、阿里等大厂的 offer

钟奕礼

Java 程序员 java面试 java编程

ElasticSearch 集群迁移最佳实践

冰心的小屋

elasticsearch

你的可用性达标了吗?云端业务性能高可用的深度实践_服务革新_InfoQ 中文站_InfoQ精选文章