NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

  • 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:304165
用户头像

发布了 1399 篇内容, 共 621.3 次阅读, 收获喜欢 2452 次。

关注

评论

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

支付宝高级研发一二三面题目:CMS+CAS+线程锁+事务+雪崩+Docker

钟奕礼

Java 编程 程序员 架构 面试

maven打包,常用启动方式

秋天

mavne

浅论指针(一)

Integer

c c++ 指针

K8s 原生 Serverless 实践:ASK 与 Knative

阿里巴巴云原生

Serverless 容器 云原生 k8s 存储

爆肝一周总结了一份Java学习/面试自测指南!200+道Java最常见面试题。

Java架构之路

Java 程序员 架构 面试 编程语言

中国唯一入选 Forrester 领导者象限,阿里云 Serverless 全球领先

阿里巴巴云原生

阿里云 Serverless 容器 开发者 云原生

关系数据理论是个什么牛马

学Java的猪猪侠

技术中台之DevOps动态表单体系构建

EAWorld

字节跳动5面喜提offer!分享给朋友们面试感受

Java架构之路

Java 程序员 架构 面试 编程语言

oktoken跟单社区系统开发|oktoken跟单社区APP软件开发

系统开发

重点人员可视化研判分析系统搭建,可视化大屏系统

JVM 诊断之 jps 工具使用

hepingfly

JVM jvm调优 jvm诊断 jps

Apache Iceberg学习日志

InfoQ_Springup

数据湖

Flink程序优化及反压机制

大数据技术指南

flink 3月日更

引入单点登录,需要考虑哪些问题?

龙归科技

SSO 单点登录

缓存为什么会被污染?

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

【操作系统】存储器管理

学Java的猪猪侠

又是一些小细节!3面成功入职字节跳动:算法+数据库+中间件+JVM

Java架构之路

Java 程序员 架构 面试 编程语言

后端服务器网络编程之 IO 模型

Linux服务器开发

后端 网络编程 web服务器 Linux服务器开发 网络io

2021面试跳槽宝典:BATJ大厂核心面试解析600题

比伯

Java 架构 面试 程序人生 计算机

「产品经理训练营」第八章作业

Sòrγy_じò ぴé

何止一个惨字形容!水滴Java面试一轮游,壮烈了,问啥啥不会,数据库血崩,我该怎么办?

钟奕礼

Java 学习 编程 程序员 面试

硬件测试的思考和改进:有道词典笔的高效测试探索

有道技术团队

大前端

2021版金三银四Java面试突击手册开源(涵盖p5-p8技术栈),“吊打”面试官的“葵花宝典”

Java 编程 程序员 架构 面试

操作系统--虚拟存储器概述

学Java的猪猪侠

会声会影最新版:会声会影2021中文版它来啦!

奈奈的杂社

视频剪辑 视频后期 自媒体 视频处理 会声会影

怎样从零开始设计一个数据库

学Java的猪猪侠

MapReduce的运行机制详解

五分钟学大数据

hadoop 3月日更

oktoken对冲合约软件APP开发|oktoken对冲合约系统开发

系统开发

源码解读:KubeVela 是如何将 appfile 转换为 K8s 特定资源对象的

阿里巴巴云原生

容器 云原生 k8s API 应用服务中间件

一年增加 1.2w 星,Dapr 能否引领云原生中间件的未来?

阿里巴巴云原生

容器 微服务 云原生 k8s 中间件

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