电商直播平台如何借助容器与中间件实现研发效率提升100%?

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 经过实际场景验证及用户的综合评估,电商直播平台借助全面的云原生容器化能力和中间件产品能力,大幅提升开发部署运维效率达50%~100%,极大地提升了用户体验,为业务持续发展打下了坚实的基础。

作者:鹿玄,阿里云解决方案架构师

前言


直播带货是近期发展非常迅猛的一种新的电商模式。构建一个电商直播平台从技术角度上大致可以分为视频直播服务、CDN、前端(H5/小程序)、大数据、以及各种业务后台,如直播互动、商家和运营平台等。相比于传统的电商系统,电商直播平台有一些类似的地方,如系统需要具备高并发的能力来应对流量洪峰;但同时直播业务也有一些独有的特性:

 

1. 直播业务的潮汐特性,需要更强的弹性能力及成本优化方案。

2. 微服务化后,要求更高的开发效率,以及更精细化的流量控制。

3. 直播互动有着非常高的实时性,系统需要具备前后端监控一体化的能力。

4. 直播业务涉及到后期音视频的处理需要合理分配计算资源。

 

可以看到上述特性都是一些非业务性的需求,为了达成这一目的,企业需要在IDC额外投入大量的人力进行基础设施的建设和维护。目前,越来越多的企业已经迁移到云平台或者正在向云平台迁移的过程中,如果能将这些非业务功能下沉,利用云平台提供的产品&技术来承接这些能力的话,企业就完全可以专注于业务本身,实现快速迭代、独立高效、减轻成本。


云原生架构正是为此而生。

 

什么是云原生架构?


云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的非业务代码部分进行最大化的剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、可观测性、灰度等),使业务不再有非功能性业务中断困扰的同时,具备轻量、敏捷、高度自动化的特点。

 

image.png

传统架构

云原生架构

代码

代码

非功能性能力

非功能性能力

三方软件使用

业务代码编写

业务代码编写

三方软件调用

开发人员

业务运维

业务运维

基础设施运维

运维入员

Iaas

Paas

云原生架构与传统架构的对比

 

为实现云原生架构,必然需要依托于各种云原生理念、实践及技术,即云平台所提供的容器、微服务、DevOps、Service Mesh、Serverless和中间件等服务。从CNCF的定义来看,采用基于云原生的技术和管理方法,将更好地把业务生于“云”或迁移到云平台,从而享受“云”的高效和持续服务能力。

 

电商直播需要哪些云原生解决方案?


电商直播平台系统为了满足业务的快速发展,需要具备一些额外能力(当然这里可能只是一部分),我们暂时以这些为例,将需求进一步总结抽象,大致可以归纳为以下几点:

 

1.  极致弹性和成本;

2.  微服务治理及流量控制;

3.  立体化监控;

4.  音视频处理自动化,计算资源按需使用。

 

为解决以上痛点,接下来围绕电商直播平台,详细介绍在一些典型的业务场景下,阿里云提供的一整套云原生解决方案。

 

容器服务ACK解决对成本和极致弹性的诉求


传统架构在应对“电商直播”这种新式互联网化业务时,常常面临发布迭代效率低、高峰期扩容慢、运维复杂度高三大痛点。同时直播业务有典型的瞬间流量冲击问题,无法有效预估峰值,并且高峰期间对延迟敏感,通过扩容K8s Node节点方案无法满足业务需求。

 

直播业务可以借助阿里云容器服务ACK + VK (Serverless ECI基础设施)架构,解决直播业务对成本和极致弹性诉求,具体体现在:


  1. 研发效率提升100%;
  2. 运维资源基本解放;
  3. 弹性Serverless ECI,资源成本降低60%~70%。

 

同时通过纳管注册形态,可以实现将其他云平台和IDC自建K8s集群进行统一管理,帮助客户抹平了多云架构中日志采集、监控等运维管理的差异性,大幅提升了整体运维效率。

 

image.png

 

微服务引擎MSE提供全面的微服务治理方案


在直播过程中,商家和观众进行互动下单,直播前端和后台业务系统进行频繁的交互。直播的后台业务系统采用微服务+容器的架构,业务系统根据不同的模块(如店铺、商品、订单)已经进行了微服务拆分。同时为了满足业务需要,业务系统需要具备流量控制的能力,即对某些微服务进行了多版本的部署,并将特定的用户请求引流到某个特定版本进行处理。

 

众所周知,系统采用微服务化部署后,调用链路变得复杂。此外在容器环境下,POD IP的不固定性等因素都为实现流量控制带来一定的难度。我们可以采用阿里云微服务引擎(MSE)提供的微服务治理方案。

 

微服务引擎MSE为微服务应用提供全面的微服务治理方案,包括服务鉴权、无损下线、离群实例摘除、服务降级、金丝雀发布、标签路由等功能。其中标签路由功能可以简单完美地实现在K8s环境下流量控制的能力。微服务发布过程中,只需编辑YAML文件添加自定义标签,同时在MSE控制台将请求参数(如http header等)和此前创建的标签进行绑定即可。

 

图片 1.png

微服务网关

微服务Av1

微服务Av1.1

微服务Bv1

微服务Cv1.1

微服务Cvi

 

通过此方案,不仅可以在生产环境中无侵入性地解决了流量控制的问题,在开发测试环境中,也可将标签路由功能应用在分支测试等场景。

 

ARMS提供完整立体化全链路监控方案


电商直播系统包括H5页面和小程序前端层、微服务应用层、中间件层(MQ、Redis等)、数据库层以及基础资源层等,系统中任何一个环节出问题都可能导致一条业务请求出现异常。结合业务需求,运维效率、资源成本等因素,部署在云上的应用可以通过阿里云应用实时监控服务(ARMS) 为直播业务提供一套完整的立体化的全链路监控方案。

 

0.png

业务自定义监控

业务指标监控

自定义配置

自定义报表(BI)

用户体验监控

APP监控

浏览器盗控

应用服务监控

多语言

php

JAVA

调用锁查询

在线诊断

应用指标监控

应用拓扑

应用站点拨测

统计分析

健康检置

应用日志

基础设施监控

容器监控

主机监控

网络流量监控

三方组件监控

ARMS领域全景图

 


在直播场景下,ARMS提供的功能解决了诸如以下几个实际问题:

 

  1. 在直播过程中,如果用户在前端进行下单等操作发生错误,利用ARMS提供的前后端链追踪功能,可将前端与后端串联起来,实现一站式的问题排查。
  2. 系统中出现慢调用后,需要对整个链路中的瓶颈进行定位,而这个瓶颈可能出现在网络延时、微服务应用内部,或者应用所依赖的缓存和数据库等组件,开发运维人员可以借助ARMS提供的白屏化链路监控、问题诊断等能力来快速定位。
  3. 在ARMS控制台为核心业务及资源配置了完善的监控报警能力,通过短信、钉钉、Webhook等方式推送给工程师进行第一时间排查,及时发现问题减少业务损失。

 

阿里云函数计算解决自动化及效率等问题


在直播平台发起的直播结束后,通常会有一些回放视频需要进行一些处理,比如对视频进行转码,或其他处理后再进行二次分发。通常为了实现这一个功能,我们需要自建转码服务器,但由于直播业务天然的潮汐属性,大部分时间这些转码服务器处于闲置阶段,无法实现计算资源的最大利用和成本最优化。

 

阿里云函数计算 FC 事件触发机制完美第解决了自动化及资源利用率等问题。开发人员可以将转码逻辑部署到函数计算,配置OSS事件触发器,当有新的直播回放视频上传到OSS后,可自动触发函数计算进行转码及分发。

 

image.png

 

 

此方案具备的优势是:


  • 快速上线: 用户基于FFmpeg自建的转码服务,里面很多命令参数都是线上实践很好的参数,函数计算支持用户命令无缝迁移, FFmpeg的版本也可以自定义。


  • 弹性高可用:计算力不再是瓶颈,迅速调动大量计算资源进行加速、并行转码。


  • 降低成本: 视频转码是CPU密集型,基于函数计算按需付费,能大大降低转码成本。

 

总结

 

结合上面所讨论的内容,我们再来看下采用阿里云云原生解决方案后,一个完整的电商直播平台的部署架构如下:


image.png

 

经过实际场景验证及用户的综合评估,电商直播平台借助全面的云原生容器化能力和中间件产品能力,大幅提升开发部署运维效率达50%~100%,极大地提升了用户体验,为业务持续发展打下了坚实的基础。

 

更多云原生产品细节请关注:

 

容器服务ACK

微服务引擎MSE

应用实时监控服务 ARMS

Serverless 函数计算


扫码了解更多技术内容与客户案例:

image.png


相关文章
|
7月前
|
Prometheus 监控 Cloud Native
【云原生】Docker容器命令监控+Prometheus监控平台
【云原生】Docker容器命令监控+Prometheus监控平台
224 0
【云原生】Docker容器命令监控+Prometheus监控平台
|
7月前
|
存储 NoSQL Redis
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
154 0
|
13小时前
|
运维 Kubernetes 监控
本地CentOS安装轻量级容器PaaS平台KubeSphere并实现无公网IP远程访问
本地CentOS安装轻量级容器PaaS平台KubeSphere并实现无公网IP远程访问
3 0
|
15天前
|
安全 Devops 虚拟化
【专栏】虚拟化技术与云计算平台 OpenStack:硬件虚拟化、操作系统级虚拟化和容器化
【4月更文挑战第28天】本文探讨虚拟化技术原理,如硬件虚拟化、操作系统级虚拟化和容器化,以及开源云计算平台OpenStack如何利用这些技术提供优势。OpenStack支持多种虚拟化技术,具备开源灵活性、多租户架构、可扩展性、插件式设计和成本效益。未来,OpenStack将在容器化、DevOps、跨云策略和安全合规性方面发挥更大作用,助力企业数字化转型。
|
19天前
|
运维 Kubernetes Linux
10分钟搭建Kubernetes容器集群平台(kubeadm)
10分钟搭建Kubernetes容器集群平台(kubeadm)
|
1月前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
36 0
|
7月前
|
Kubernetes jenkins Linux
两大容器管理平台,Kubernetes与OpenShift有什么区别?
两大容器管理平台,Kubernetes与OpenShift有什么区别?
|
4月前
|
运维 监控 安全
深入探究 Rancher 容器编排平台的核心概念与实践
Rancher 是一款开源的容器编排平台,它可以帮助开发人员和 IT 运维团队更加高效地管理容器化应用程序。本文将深入探究 Rancher 的核心概念和实践,包括其架构、功能和部署流程等方面的内容。
|
4月前
|
分布式计算 Cloud Native 安全
Rancher:容器编排平台的领军者
Rancher是一款容器编排平台,可以帮助企业快速构建、部署和管理容器化应用。本文将详细介绍Rancher的概念和实践,包括其核心特性、优势以及在实际应用中的使用案例。
37 5
|
6月前
|
Cloud Native 数据库 Docker
Docker是一个流行的容器化平台,用于构建、部署和运行应用程序。
Docker容器已经成为现代应用程序开发和部署的核心技术之一。它们的轻量性、可移植性和可伸缩性使其成为各种不同领域的理想选择,从Web应用程序到微服务架构,再到云原生应用程序。本文将探讨Docker容器在各个领域中的实际应用,以及它们为开发人员和组织带来的好处。