2

618 将至,电商企业如何构建“新基建”应对流量洪峰?

 3 years ago
source link: https://www.infoq.cn/article/PVSRYvNqTTu8RoLvu1jY
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

这个场景,很多电商人并不陌生:

在大促活动中,若订单系统出现故障,从顾客抱怨,到层层上报,再到故障排查和处理,2 个小时过去了。但在这 2 个小时里,成百上千的顾客在竞争对手那里购买了产品,损失严重,还有被媒体曝光的风险。

不得不承认,即使是灾备能力最强的 IT 环境,也必然会在某个时刻遇到问题。当这些问题发生的时候,解决问题的速度就是决定企业综合实力的关键。

下一个“618”大促就要来了,这对于电商平台来说,是个让人激动却也提心吊胆的日子。电商业务的特点比较明显:短期指数级业务波峰,从前端展示、业务处理、库存变动等方面都需要全天应对海量用户访问的冲击。而支持电商业务的关键,就在于后台系统是否具备稳定性、可扩展性和安全性。

同时,随着 5G、VR、AR、AI 等新技术愈发广泛的应用,更高品质的内容、更强烈的社交属性、观众使用场景都出现突破性扩展,这也将促进用户数量和使用时长的进一步增加,对基础技术能力的要求进一步提高。

电商上云,不得不做

多数平台创业之初的重点是业务的快速上线,会选择简单粗暴的低成本管理方式,一个网站、一台服务器就够了。但随着业务体量的大幅上升,企业开始堆硬件、做结构化拆分。然而,资源层容量和性能的瓶颈终会到来,这该怎么调整?

平台调整组织和技术架构的原则是:

1、应用层采用服务框架

2、系统层采用异步消息

3、数据层可以无限扩容

在应用层,一个简单的电商系统,包含用户模块、库存模块、订单模块、支付模块。创业之初的单体应用复杂性高、交付效率低、扩展性和可靠性差,并且技术栈的限制也在阻碍着技术创新。而在微服务架构中可以划分出不同的业务板块,每个业务板块都可以独立开发、部署和上线,对应独立数据库,由独立团队维护,各司其职。

在系统层,异步消息系统可以使主要业务异步化,增加系统的容错性,避免因业务调用接口不成功导致的交易失败。当用户下单时,仓储和配送对实时性要求并不高,订单消息可以发到异步消息队列系统,若投递不成功可以等待下次投递。

在数据层,为了应对瞬间的海量访问,系统需要极强的可伸缩性。随着数据量增大,需要对数据库进行弹性扩容,灵活配置资源、匹配业务需求。

基于电商行业的业务特点和技术诉求,电商上云是需要先解决问题再开源节流的。而理想的云计算是随取随用的 IT 基础设施,云计算服务的性能决定了电商企业能提升的效率幅度和降本程度。那么,企业该如何选择?

  • 一看云厂商的底层能力:是否在存储、服务器领域有优势,是否具备自主研发能力,整体的机制、运营模式、服务质量是否优质,稳定性如何等;

  • 二看性价比:电商业务场景需要满足的弹性伸缩、存储于计算分离等需求,是否能通过更低的价格实现;

  • 三看服务的持续性:包括网络性能、稳定性、安全性等方面。

“弹性扩容 + 存算分离”,解决电商的技术资源瓶颈

从资源到应用,端到端弹性扩容怎么做?

虽然云的确在成本、扩展、灵活性、快捷等方面有很大优势。但是,对云产品、云架构的灵活运用,是有一定技术门槛的。这时,如果可以根据实际业务需求按需进行存储和计算资源的弹性伸缩,就能使资源利用率大幅提升,也就是我们说的容器化改造。

从技术角度,容器化改造是对应用整体微服务架构改造,再容器化,这样做可以带来如下好处。

  • 单独扩展:拆分为微服务后,可单独增加或缩减每个微服务的实例数量。

  • 提升开发速度:各微服务之间解耦,某个微服务的代码开发不影响其他微服务。

  • 通过隔离确保安全:整体应用中,若存在安全漏洞,会获得所有功能的权限。微服务架构中,若攻击了某个服务,只可获得该服务的访问权限,无法入侵其他服务。

  • 隔离崩溃:如果其中一个微服务崩溃,其它微服务还可以持续正常运行。

整体应用容器化改造的流程包括 6 个步骤:应用分析、准备应用运行环境、编写开机运行脚本、编写 Dockerfile 文件、制作并上传镜像、创建容器工作负载。具体流程图如下:

be6z2ej.jpg!web

在应用分析阶段,企业需要了解自身应用的运行环境和部署形态。运行环境包括操作系统、运行环境、依赖包,部署形态包括周边配置和自身配置。

在应用分析后,就需要准备好这些环境:

  • 安装 Docker:应用容器化时,需要将应用构建为 Docker 镜像。您需要准备一台机器,并安装 Docker。

  • 获取基础镜像版本名称:根据应用运行的操作系统,确定基础镜像。本例应用运行在 centos:7.1 操作系统中,可以在 dockerhub 中获取到基础镜像。

  • 获取运行环境:获取运行应用的运行环境,以及对接的 MongoDB 数据库。

应用容器化时,一般需要准备开机运行的脚本,写作脚本的方式和写一般 shell 脚本相同。该脚本的主要目的是启动应用所依赖的软件,并且将需要修改的配置设置为环境变量。开机运行脚本与应用实际需求直接相关,每个应用所写的开机脚本会有所区别。请根据实际业务需求来写该脚本。

镜像是容器的基础,定制镜像时,一般使用 Dockerfile 来完成。Dockerfile 是一个文本文件,其内包含了一条条的指令,每一条指令构建镜像的其中一层,因此每一条指令的内容,就是描述该层应该如何构建。制作完镜像后,每次应用的部署和升级即可通过镜像操作,减少了人工配置,提升效率。

最后,创建容器工作负载,在工作负载列表中可查看到运行中的工作负载。

以上容器化改造流程是基于华为云容器引擎 CCE 编写的,CCE 是基于开源 Docker 和 Kubernetes 的企业级容器服务,提供企业级容器应用管理服务,支持 Kubernetes 社区原生应用和工具,可以简化云上自动化容器运行环境搭建。企业在使用 CCE 后,可以实现多云和混合云管理,也可灵活使用和管理本地和云端资源。

通过存算分离,让每个 Bit 成本最优

随着一次又一次的大促活动,电商企业积累了越来越多的数据,需要激发更多的数据价值变现。此外,实时推荐等智能化运营的兴起、购物体验持续优化的探索,也促使企业的数据处理架构,不仅仅限制于解决分析性能的问题,还要向着满足海量数据高效存储的转变。

企业通常采用的模式,是按阶段购买服务器,服务器数量不断累加但也在不断淘汰。在这个过程中,会出现一些问题,比如计算性能跟不上数据增长速度,分批购买的服务器因型号、容量的不同导致维护困难,面对流量波峰波谷却无法实现弹性,这些都严重影响业务的增长。

在大促期间,传统大数据存算一体的方案的局限性具体表现为:

  • 计算存储资源需求不均衡时,导致大量资源浪费;

  • 本地 HDFS 一般采用三副本冗余机制,磁盘利用率仅为 33%;

  • 计算存储耦合的的封闭架构难以向数据湖和大数据云化的方向演进。

如果让存储和计算分离,以上问题都可以得到解决,在运算固定的情况下,存储还可以实现增长。此外,存算分离还可以实现不同业务间的授权,也可以避免因重复利用而消耗的成本。

uaMjEb7.jpg!web

存储和计算分离是近几年值得关注的新技术。它不但能节约成本,还可以让资源根据业务需求弹性伸缩。为此,华为云推出了基于云服务的存算分离架构,据说可以大幅提升集群资源利用率,使综合分析成本可降低 50% 以上。

存算分离 + 鲲鹏 = 结构化提升性价比

大数据计算都是分布式计算,华为的经验是先降低单位计算成本,再结合现在的鲲鹏或是 ARM 处理器。ARM 具有多核的优势,一般在手机里面可能是 8 核,在服务器芯片变成 128 核。在大数据运算过程中,处理器核数越多,大数据运算越有效。

此外,大运算可以分裂成很多的小运算,在核数足够多的情况下可以很大程度上提升大数据的运算能力。加之 ARM 是国产化,在成本和耗电方面比 X86 更有优势。

那么,在整体性能提升方面,华为云的“存算分离 + 鲲鹏”是怎么实现的?

首先,要降低数据准备时间。华为的智能数据湖方案中,是采用 Schema-on-read 模式,让数据实时入湖,直接基于原始数据分析;同时,采用增量式分析,小批分次持续分析。更重要的是,通过存储和计算解耦、计算按需弹性伸缩,有效支撑业务波峰波谷,更快完成计算。

华为云“存算分离 + 鲲鹏”大数据云服务采用计算存储分离架构,存储基于华为云对象存储实现 11 个 9 的高可靠,无容量限制,可以支撑企业数据量持续增长;同时,计算资源可以支持 0~N 弹性扩缩。

计算存储分离后,通过华为自研 Carbondata 对数据进一步优化组织,实现基于数据湖的事务管理(据说是业内首创),支持流数据自动去重、避免遗漏,支持数据增删改,并实现最高隔离级别的 ACID,结合智能多维索引,基于业务感知的软件缓存技术,实现数据访问进一步加速。

其次,通过软硬件结合提升性能。性能提升的另一个方向是软硬件结合、垂直优化,华为鲲鹏处理器具有多核高并发能力,再结合自研 EulerOS,可以提供多类型优化,如 JDK,软件多实例绑核,RoCE 网络加速,加解密、压缩等热点函数硬件加速,充分释放硬件算力。如此一来,在性能相当情况下,成本下降 30%,为大数据用户提供更高性价比的智能数据湖。

不仅如此,华为云走的是开放生态路线。华为云智能数据湖完全兼容开源原生接口,可以兼容全部的主流大数据生态,这样一来,企业在平滑迁移上云的过程中就不需要做任何改造。

在华为云看来,基于鲲鹏算力和架构,为企业提供了适用于当前大数据应用的性价比较好的解决方案,同时,基于高并发性能的鲲鹏算力,华为云也已形成自己独特的竞争优势。

据了解,目前,华为云已经将这样的方案落地到游戏电商、直播、游戏等行业,并且能够满足拥有互联网基因的企业大数据应用场景。实则,以为各位提供了一个更佳的云上新“武器”,等你来尝试。

创新,从这里开始

我国拥有全世界最大规模的电商市场,在新基建风口下,电商平台、移动支付、直播带货、快速物流等新业态,正在顺势生长。电商企业的发展思考也可以反推到互联网行业的每一家企业。

华为公司副总裁、华为云业务总裁郑叶来,不久前曾表示:

在“新基建”时代下,算力成为新的生产力,数据成为新的生产要素,云、AI(人工智能)、5G 则是新的生产工具,而华为基于丰富的行业实践经验和资深数字化实践,可以为合作伙伴提供更优质的服务。

华为近几年持续加大在云、5G、计算等相关领域的投入,2019 年,华为在泛计算行业进行了大量的投入和布局,华为首次发布了“鲲鹏 + 昇腾”的计算战略,重磅发布“有所为、有所不为”的商业策略,并且构建开放的计算产业生态。

同时,华为还整合了存储、计算及云服务相关组织,成立了 Cloud&AI BG,即云与计算业务部,成为继运营商业务、企业业务和消费者业务之外的第四大业务,通过对资源和组织的整合从芯片到数据中心、从硬件到软件、从 IT 基础设施到云服务、从边缘计算到云计算,将资源全部集结,将华为云打造成业界率先拥有全栈能力的云,为新基建时代的底层创新提供组织和人才保证。

活动推荐

不久前,华为云发起 5G+X 联创营计划,围绕云、AI、5G,联合各行各业的合作伙伴,共同在新的机遇中找到各自的定位,在联创生态下发挥各自的价值,激发企业的 5G 创新活力,帮助企业降本增效。目前,5G+X 联创营计划已经扬帆起航,正在面向全国各行业技术管理者征集力量,未来将会持续举办 5G+X 创新活动,如果您想加入进来,请添加小助手具体咨询,微信号 MHW19931114。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK