这个场景,很多电商人并不陌生:
在大促活动中,若订单系统出现故障,从顾客抱怨,到层层上报,再到故障排查和处理,2 个小时过去了。但在这 2 个小时里,成百上千的顾客在竞争对手那里购买了产品,损失严重,还有被媒体曝光的风险。
不得不承认,即使是灾备能力最强的 IT 环境,也必然会在某个时刻遇到问题。当这些问题发生的时候,解决问题的速度就是决定企业综合实力的关键。
下一个“618”大促就要来了,这对于电商平台来说,是个让人激动却也提心吊胆的日子。电商业务的特点比较明显:短期指数级业务波峰,从前端展示、业务处理、库存变动等方面都需要全天应对海量用户访问的冲击。而支持电商业务的关键,就在于后台系统是否具备稳定性、可扩展性和安全性。
同时,随着 5G、VR、AR、AI 等新技术愈发广泛的应用,更高品质的内容、更强烈的社交属性、观众使用场景都出现突破性扩展,这也将促进用户数量和使用时长的进一步增加,对基础技术能力的要求进一步提高。
电商上云,不得不做
多数平台创业之初的重点是业务的快速上线,会选择简单粗暴的低成本管理方式,一个网站、一台服务器就够了。但随着业务体量的大幅上升,企业开始堆硬件、做结构化拆分。然而,资源层容量和性能的瓶颈终会到来,这该怎么调整?
平台调整组织和技术架构的原则是:
1.应用层采用服务框架
2.系统层采用异步消息
3.数据层可以无限扩容
在应用层,一个简单的电商系统,包含用户模块、库存模块、订单模块、支付模块。创业之初的单体应用复杂性高、交付效率低、扩展性和可靠性差,并且技术栈的限制也在阻碍着技术创新。而在微服务架构中可以划分出不同的业务板块,每个业务板块都可以独立开发、部署和上线,对应独立数据库,由独立团队维护,各司其职。
在系统层,异步消息系统可以使主要业务异步化,增加系统的容错性,避免因业务调用接口不成功导致的交易失败。当用户下单时,仓储和配送对实时性要求并不高,订单消息可以发到异步消息队列系统,若投递不成功可以等待下次投递。
在数据层,为了应对瞬间的海量访问,系统需要极强的可伸缩性。随着数据量增大,需要对数据库进行弹性扩容,灵活配置资源、匹配业务需求。
基于电商行业的业务特点和技术诉求,电商上云是需要先解决问题再开源节流的。而理想的云计算是随取随用的 IT 基础设施,云计算服务的性能决定了电商企业能提升的效率幅度和降本程度。那么,企业该如何选择?
·一看云厂商的底层能力:是否在存储、服务器领域有优势,是否具备自主研发能力,整体的机制、运营模式、服务质量是否优质,稳定性如何等;
·二看性价比:电商业务场景需要满足的弹性伸缩、存储于计算分离等需求,是否能通过更低的价格实现;
·三看服务的持续性:包括网络性能、稳定性、安全性等方面。
“弹性扩容 + 存算分离”,解决电商的技术资源瓶颈
从资源到应用,端到端弹性扩容怎么做?
虽然云的确在成本、扩展、灵活性、快捷等方面有很大优势。但是,对云产品、云架构的灵活运用,是有一定技术门槛的。这时,如果可以根据实际业务需求按需进行存储和计算资源的弹性伸缩,就能使资源利用率大幅提升,也就是我们说的容器化改造。
从技术角度,容器化改造是对应用整体微服务架构改造,再容器化,这样做可以带来如下好处。
·单独扩展:拆分为微服务后,可单独增加或缩减每个微服务的实例数量。
·提升开发速度:各微服务之间解耦,某个微服务的代码开发不影响其他微服务。
·通过隔离确保安全:整体应用中,若存在安全漏洞,会获得所有功能的权限。微服务架构中,若攻击了某个服务,只可获得该服务的访问权限,无法入侵其他服务。
·隔离崩溃:如果其中一个微服务崩溃,其它微服务还可以持续正常运行。
整体应用容器化改造的流程包括 6 个步骤:应用分析、准备应用运行环境、编写开机运行脚本、编写 Dockerfile 文件、制作并上传镜像、创建容器工作负载。具体流程图如下:
在应用分析阶段,企业需要了解自身应用的运行环境和部署形态。运行环境包括操作系统、运行环境、依赖包,部署形态包括周边配置和自身配置。
在应用分析后,就需要准备好这些环境:
·安装 Docker:应用容器化时,需要将应用构建为 Docker 镜像。您需要准备一台机器,并安装 Docker。
·获取基础镜像版本名称:根据应用运行的操作系统,确定基础镜像。本例应用运行在 centos:7.1 操作系统中,可以在 dockerhub 中获取到基础镜像。
·获取运行环境:获取运行应用的运行环境,以及对接的 MongoDB 数据库。
应用容器化时,一般需要准备开机运行的脚本,写作脚本的方式和写一般 shell 脚本相同。该脚本的主要目的是启动应用所依赖的软件,并且将需要修改的配置设置为环境变量。开机运行脚本与应用实际需求直接相关,每个应用所写的开机脚本会有所区别。请根据实际业务需求来写该脚本。
镜像是容器的基础,定制镜像时,一般使用 Dockerfile 来完成。Dockerfile 是一个文本文件,其内包含了一条条的指令,每一条指令构建镜像的其中一层,因此每一条指令的内容,就是描述该层应该如何构建。制作完镜像后,每次应用的部署和升级即可通过镜像操作,减少了人工配置,提升效率。
最后,创建容器工作负载,在工作负载列表中可查看到运行中的工作负载。
以上容器化改造流程是基于华为云容器引擎 CCE 编写的,CCE 是基于开源 Docker 和 Kubernetes 的企业级容器服务,提供企业级容器应用管理服务,支持 Kubernetes 社区原生应用和工具,可以简化云上自动化容器运行环境搭建。企业在使用 CCE 后,可以实现多云和混合云管理,也可灵活使用和管理本地和云端资源。
通过存算分离,让每个 Bit 成本最优
随着一次又一次的大促活动,电商企业积累了越来越多的数据,需要激发更多的数据价值变现。此外,实时推荐等智能化运营的兴起、购物体验持续优化的探索,也促使企业的数据处理架构,不仅仅限制于解决分析性能的问题,还要向着满足海量数据高效存储的转变。
企业通常采用的模式,是按阶段购买服务器,服务器数量不断累加但也在不断淘汰。在这个过程中,会出现一些问题,比如计算性能跟不上数据增长速度,分批购买的服务器因型号、容量的不同导致维护困难,面对流量波峰波谷却无法实现弹性,这些都严重影响业务的增长。
在大促期间,传统大数据存算一体的方案的局限性具体表现为:
·计算存储资源需求不均衡时,导致大量资源浪费;
·本地 HDFS 一般采用三副本冗余机制,磁盘利用率仅为 33%;
·计算存储耦合的的封闭架构难以向数据湖和大数据云化的方向演进。
如果让存储和计算分离,以上问题都可以得到解决,在运算固定的情况下,存储还可以实现增长。此外,存算分离还可以实现不同业务间的授权,也可以避免因重复利用而消耗的成本。
存储和计算分离是近几年值得关注的新技术。它不但能节约成本,还可以让资源根据业务需求弹性伸缩。为此,华为云推出了基于云服务的存算分离架构,据说可以大幅提升集群资源利用率,使综合分析成本可降低 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。