如何构建一个流量无损的在线应用架构 | 专题尾篇

简介:我们将这些年在每一个环节中的相应解决方案,以产品化的方式沉淀到企业级分布式应用服务(EDAS)中。EDAS 致力于解决在线应用的全流程流量无损,经过 6 年的精细打磨,已经在流量接入与流量服务两个关键位置为我们的客户提供了流量无损的关键能力,我们接下来的主要目标也是将这一能力贯穿应用的全流程,让您的应用默认能具备全流程的流量无损,极力保障商业能力的可持续性。

作者 | 孤弋、十眠

-全系列查看-

如何构建流量无损的在线应用架构 | 专题开篇

如何构建流量无损的在线应用架构 | 专题尾篇

前言

上两篇我们说完了流量解析、流量接入、流量服务三大块的内容,这一篇主要从数据交换的维度阐明数据交换的过程如何影响到线上流量;最后会引入两个常用的防范措施:全链路压测安全生产演练。我们先来说说数据交换部分:

数据

当流量在应用集群中流转完毕之后,他行至的终点一般是将数据与各种类型的数据服务进行交换,如:从缓存读取数据返回、将订单记录存储在数据库中、将交易数据与外围的支付服务进行数据交换等。但是只要是和外面的服务进行数据访问,就会出现外围服务不可用的情况,常见的一些情况比如:因为被依赖过重或数据过载而导致雪崩,因为数据中心整体不可用导致大面积瘫痪。比如最近一个比较有名的事件就是 Meta 公司的大规模宕机事件,其原因正是下发了一条错误的配置切断了数据中心之间的主干路由。

1、常用解决方案:分库分表

针对国内互联网公司海量数据的场景,当我们的业务成长到一定的阶段就会带来缓存或者 DB 的容量问题,以 MySQL 举例子,当单表的容量在千万级别的时候,如果这张表还需要和其他表进行关联查询,就会出现数据库在 IO、CPU 各方面的压力。此时就需要开始考虑分库分表的方案。但是分完了之后并不是一蹴而就,他会引入诸如分布式事务、联合查询、跨库 Join 等新的问题,每个问题如果人肉去搞定会更加的棘手,不过好在市面上针对这些领域也出现了很多优秀的框架,比如社区的 Sharding JDBC,阿里云刚刚开源的 PolarDB-X 等。

2、常用解决方案:数据中心容灾

为防止数据中心出现整体不可用的情况,一个常规的思路是需要针对性建设好容灾多活的高可用能力,数据中心级别的容灾常见的是同城和异地,但一个数据中心部署的服务很可能是分布式服务,针对每一个分布式服务的容灾策略都略有不同,本篇以常见的 MySQL 来举例子说一些常见的思路。

容灾的核心是需要解决 CAP 中的两个问题,即:C(数据一致性)、A(服务可用性),但是根据 CAP 理论我们只能保 CP 和 AP 中的一个,所以这里到底选择什么样子的策略,其实是需要根据业务形态来制定的。对于同城 IDC 级别的容灾而言,由于他的 RT 一般都很小,数据一致性上能最大的得以满足。只是在 Paxos(MySQL 中的一致性算法)的 Master 节点所在的机房如果挂掉的情况下,会面临再次选主,如果集群较大可能会因为选主造成的几十秒级别 DB 不可用的情况。
而对于异地场景而言,由于数据链路太长的问题,他的数据一致性基本上不可能满足,所以业务必须配合改造,做到业务级别的横向切分,如:华南数据中心服务华南客户群体,华北数据中心服务华北客户群体。而分片的数据再通过数据同步的方式做到最终一致性。

防范

到这里基本上说完了在线上应用的四个核心环节中,尤其提及了容易由于架构设计、基础设施脆弱等原因而造成的流量有损的点,也列举了对应场景下的解决方案。不过站在安全生产的角度上,一切安全生产的目的都是防范于未然。在互联网的系统中相比较于传统的软件产品,我们推荐两个在生产级别进行防范的方法:全链路压测和安全生产线上演练(也叫故障演练)。

1、全链路压测

在软件产品的生产体系中,任何一个即将上线的系统,我们都会进行各种目标的测试,其中就包括压力测试,即:使系统处于一个颇为严苛的环境中,来观看系统的表现。而一般的压力测试,只会针对性的构造相应的接口对线下部署的环境服务进行相应的压力测试,而且测试报告不出意外都是很完美的;但这样的压力测试会有几个问题:

  • 由于线上线下的依赖环境差异很大,而评估不到真实的线上系统容量。
  • 压测过程的数据不丰富,覆盖面窄而造成场景遗漏。
  • 由于压测的流量或者工具不够健全,只能评估到单台机器或服务,而非整个生产集群。

如果要做到全面、系统、且真实的流量评估,我们推荐直接使用生产环境针对性的进行性能压测,但要想做到这样的全链路的压力测试,有很多的技术瓶颈需要突破,其中包括:

  • 有一套能力强大能构建出丰富场景的工具体系或产品。
  • 整体服务链路上,支持从流量入口开始的压测标示传递。
  • 系统中使用的中间件能识别正常流量与压测流量。
  • 业务需要针对压测流量作出业务改造(如影子表),以免压测数据影响到线上的真实数据。

但是在执行过程中,由于全链路的影响面太大,在正式开始大流量的压测之前,需要逐步实施前期的准备工作,其中包括:压测方案制定、预跑验证、压测预热,最后才是正式压测。压测完毕还需要针对压测结果进行分析,以确保整个系统符合预先设定的目标。

2、安全生产演练

与全链路压测的思路类似,为了尽可能的贴近生产环境,安全生产演练我们也是推荐在线上完成。演练的目的是检验系统在各种不可预知的服务不可用、基础实施故障或者依赖失效的情况下,来检验系统的行为表现是否依然健壮。通常演练的范围从单应用到服务集群,甚至到整机房基础设施依次上升。演练场景可以从进程内(如:请求超时)、进程级别(如:FullGC)、容器(如:CPU 高),再到 Kubernetes 集群(如:Pod驱逐、ETCD 故障等)各个场景叠加,根据业务系统的反脆弱能力,针对性的作出选择。

结语

至此,三篇关于如何构建一个流量无损的线上应用系统就全部说完了,文中很多场景和技术点都是来源于真实的线上系统的真实故障。我们将这些年在每一个环节中的相应解决方案,以产品化的方式沉淀到企业级分布式应用服务(EDAS)中。EDAS 致力于解决在线应用的全流程流量无损,经过 6 年的精细打磨,已经在流量接入与流量服务两个关键位置为我们的客户提供了流量无损的关键能力,我们接下来的主要目标也是将这一能力贯穿应用的全流程,让您的应用默认能具备全流程的流量无损,极力保障商业能力的可持续性。

接下来 EDAS 将围绕开发、测试继续构建一个完整的技术中台;我们也在筹备免费下载的版本,让您可以轻松的在自己的任意一个环境中享受到诸多默认流量无损的能力。在交付侧,将打通多集群、多应用批量交付,打通线上公共云、线下免费输出以及混合云之间的交付能力。敬请期待。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云原生微服务技术趋势解读

简介:随着微服务技术门槛大幅下降,随着企业数字化升级步伐加速,随着云计算的迅速发展,微服务将无处不在;随着行业成熟度逐步提升,随着开源和标准推进,微服务的标准逐步形成,标准形成…

中国信通院魏博锴:云原生混部标准解读

嘉宾 | 魏博锴出品 | CSDN云原生2022年7月28日,中国信通院、腾讯云、FinOps产业标准工作组联合发起的《原动力x云原生正发声 降本增效大讲堂》系列直播活动第4讲如期举行,中国信通院云大所云计算部云原生研究员魏博锴解读了云原生混部标准。本文整理自魏…

从平凡到非凡 阿里云李克的技术进阶之路

简介:人物简介:李克 阿里云边缘云计算领域技术负责人 2009年硕士毕业加入阿里至今,一直从事CDN及边缘云领域的技术研发工作,在CDN、边缘计算等方向上有丰富的行业经验,全程参与了阿里云CDN商业化转型,边缘云…

一文搞懂redis

简介:NoSQL泛指非关系型数据库,随着web2.0互联网的诞生,传统的关系型数据库很难对付web2.0大数据时代!尤其是超大规模的高并发的社区,暴露出来很多难以克服的问题,NoSQL在当今大数据环境下发展的十分迅速&a…

热搜!华为 30 岁以下员工仅占 28%,网友:35 岁危机呢?

整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)一直以来,程序员的“35 岁”都是圈内的热议话题:35 岁是程序员的职业终结点、程序员到 35 岁就废了、超过 35 岁的程序员容易被裁……久而久之,35 岁逐渐变成了一个很…

阿里云发布业界首本《云计算公网质量白皮书》

随着互联网的发展,网络已经融入了整个社会发展的进程,如同血液贯通人类文明的五脏六腑。一旦网络出现故障,将给社会的政治、经济、文化造成重大损失。 2021年10月4日,Facebook在地球上”消失”了6小时,市值跌掉3000亿…

选轻量应用服务器or云服务器ECS?一图帮你彻底区分

简介:轻量应用服务器适合轻量级且访问量低的应用场景,更适合个人开发者、对新手小白更友好;而云服务器ECS可覆盖全业务场景(如大数据分析,深度学习等),要求用户有一定的开发技术能力。 本文首发…

宜搭小技巧|一招摆脱纸质表单,数据收集更便捷

简介:开启「应用公开访问」,组织外成员也可提交数据。 许多公司在前台都会准备一个访客登记表,供来访者填写。但如果来访者数量较多,就会出现这样的问题…… 提供纸质表单供访客填写信息,使用起来繁琐且费时&#xff…

如何用 Serverless 低成本打造个人专属网盘?

简介:想要做个网盘不知如何开始,不妨花3分钟读读这篇,看看如何借助 Serverless ,低成本的做一个“不限制网速、无限扩展、同时支持数百种文件格式在线预览、编辑、协作”的专属个人 & 家庭网盘~ 前言 随着全球大数据不断增长…

云之后,亚马逊云科技要为业界提供水和空气一样的安全防护

云巨头亚马逊云科技,正在持续加码云安全。 编辑 | 宋慧 出品 | CSDN云计算 提到亚马逊云科技,我们首先想到的是它在云领域的计算存储等技术和优势。不过亚马逊云科技却连续四年在举办它的全球安全大会 re:Inforce,刚刚 ,2022 re:…

即学即会 Serverless | 如何解决 Serverless 应用开发部署的难题?

简介:开发者在选择使用 Serverless 时,仍会有开发和部署困难、厂商锁定等诸多担忧,有没有一种支持 Serverless 应用全生命周期管理的开发者工具,能够简单快速上手并真正帮助我们提升研发、运维的效能的呢? 破局&#x…

NBF事件中心架构设计与实现

简介:NBF是阿里巴巴供应链中台的基础技术团队打造的一个技术PaaS平台,她提供了微服务FaaS框架,低代码平台和中台基础设施等一系列的PaaS产品,旨在帮助业务伙伴快速复用和扩展中台能力,提升研发效能和对外的商业化输出。…

关于“算力”,这篇文章值得一看

作者 | 小枣君来源 | 鲜枣课堂今天这篇文章,我们来聊聊算力。这两年,算力可以说是ICT行业的一个热门概念。在新闻报道和大咖演讲中,总会出现它的身影。那么,究竟到底什么是算力?算力包括哪些类别,分别有什么…

宜搭小技巧|找不到应用怎么办?群应用一键直达

简介:5步学会「一键添加群应用」! 上期钉多多将Excel一键转应用后,大大提高了同学们的工作效率,于是小伙伴们纷纷用钉钉宜搭创建了各种各样的应用,那么新的问题产生了...... 每次提交数据都要切换到工作台找到对应的…

前端实现多文件编译器

简介:在前端工程中,有时我们需要在浏览器编译并执行一些代码,这种需求常见于低代码场景中。例如我们在搭建时需自定义一部分代码,这些代码需要在渲染时执行。为了方便起见,我们写的代码一定是 ES6 语法,如果…

3个月夯实基建,鲜丰水果这样实现研发数字化

简介:3个月夯实基建,鲜丰水果这样实现研发数字化。简单、快速地提升产研团队的交付质量和交付效率,成为了支持组织业务创新的必选项。让我们一起看看鲜丰究竟如何逐步破局。 鲜丰水果,创始于1997年,历经25年发展史的鲜…

打通源码,高效定位代码问题|云效工程师指北

简介:为了帮助企业和团队挖掘更多源代码价值以赋能日常代码研发、运维等工作,云效代码团队在大数据和智能化方向进行了一系列的探索和实践(例如代码搜索与推荐),本文主要介绍我们如何通过直接打通源代码来提高研发与运…

Nreal中国AR眼镜发布会:正式推出Nreal X和Nreal Air 售价2299元起

2022年8月23日,全球领先的消费级AR眼镜品牌Nreal在京召开中国首场AR眼镜发布会,面向中国市场正式推出三款硬件产品,其中包括两款AR眼镜:全球首款眼镜形态、探索增强现实技术无限场景应用的全功能AR眼镜——Nreal X;全新…

大数据时代下的App数据隐私安全

简介:随着信息技术快速发展,大数据为我们带来信息共享、便捷生活的同时,还存在着数据安全问题,主流商业模式下APP面临新的挑战。工信部持续开展APP侵权整治活动,进行了了六批次集中抽检,检查了76万款APP&am…

基于 Mesh 的统一路由在海外业务的实践

简介:本文主要介绍我们最近在利用 Service Mesh 架构解决海外业务问题中一些实践和价值探索。我们在海外业务引入 Mesh 架构过程中,充分利用 Istio 的基于 yaml 来描述和定义路由的抽象能力,制定了企业流量治理标准,并将集团海外业…