映客高级技术总监黄继:7天从开发到上线,云上高效运维实践与探索

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 2021云栖大会上,映客高级技术总监黄继为大家阐述映客团队如何在较短时间内快速完成业务的开发,同时还要保障业务上线后的稳定运行、快速扩展、访问质量和数据化运营等方面的经验。

2021年10月22日,在云栖大会的《云上运维最佳实践》分论坛,映客高级技术总监黄继发表了主题为“7天从开发到上线,云上高效运维实践与探索”的演讲,为大家阐述映客团队如何在较短时间内快速完成业务的开发,同时还要保障业务上线后的稳定运行、快速扩展、访问质量和数据化运营等经验。


本文根据他的演讲整理而成,主要分为三个部分:

一、映客业务的效率问题与挑战

二、应对思路与实践探索

三、未来方向与规划


image001.png

图:映客高级技术总监黄继


映客业务的效率问题与挑战


说到映客,在大部分人理解或认识里,映客就是一个直播的平台。但实际上,映客是有一系列泛娱乐化的各种APP,比如有在线相亲、香港地区的电商直播、陌生人的音视频社交等。截止到目前为止,映客大约有40个业务在线运营。


在映客内部,我们非常鼓励去做新赛道探索和内部创业。所以,我们每年都还会有十多个新的业务被立项、开发和投入上线。在这个大的背景下,时间和效率对我们来说至关重要


image003.png


在时间短这个前提下,对我们主要造成的问题或者一些挑战就来自于这三个方面:


1. 业务需快速做功能迭代。尤其在APP上线初期,有大量的业务需求和功能去完善,我们需要一个比较完善的工具平台和智能化体系。


2. 验证周期短。在数据运营方面,大部分产品在上线之初就设计好了付费、盈利的模式。所以产品会在非常短的时间周期内进行验证。只要验证可行,就会马上转入流量推广和增长获客的阶段。


3. 服务质量。因为我们业务验证周期很短,在这个周期之内,很可能会遇到突发的用户新增。所以我们希望所有的用户,都有比较好的用户体验。这就要求在业务刚上线的初期,在稳定、访问速度等方面,要达到成熟业务的标准。


image005.png


在刚开始的时候,我们大部分产品的必要功能就很多,比如支付、审核、用户触达等。这些功能在初期就是必备功能,涉及到很多团队,需要多方去沟通和对接;其次,内部的流程有时候也会影响工作效率;在服务质量方面和数据运营方面,初期没有什么投入,大家的精力基本都在功能上。  


如果说把这些问题都拉到一个比较长的周期来看,其实不是太大的问题。但在我们的场景里,我们希望在业务上线的时候就已经解决了这些问题,或者能够尽快解决这些问题。


image007.png


我们的解决思路大致分为四个维度:

1. 敏捷,努力完善我运维体系和服务治理体系,从而加快内部的迭代效率;

2. 解耦,通过解耦让业务更加的纯粹,只需要关心自己的业务逻辑;

3. 复用,这么多业务中有一些功能是相同的,把这些功能作为公共服务提供;

4. 场景化,比如说用户注册之后,会涉及到风控、审核、数据可视化和用户触达等。我们把部分能力做了整合,让它在快速获得这些能力。


image009.png


我们给自己定了一些目标和口号,比如我们的目标是“711”,口号是“让业务更专注业务”。“711”意思是7个双端的研发可以在1周时间开发上线1个APP。具体实践的过程是:

首先,提前做统一的资源管理;

其次,在内部所有的业务之间统一服务架构;

第三,做标准的公共服务组件;

最后,沉淀我们自己的业务场景和闭环。


image011.png


应对思路与实践探索


下图是我们应对思路与实践探索示意图,底层主要是统一资源的管理,上面两层是为服务端和客户端提供的开发框架的服务组件,横向部分是将第三方服务和我们自己内部的服务去做一些场景提炼和沉淀。


image013.png


最早,我们先从统一资源管理开始做,其中公有云也提供了一些管控的能力。但为什么我们还要考虑自己来做呢?


image015.png


1.多云支持。这里最早是为了解决服务质量,在发生故障时方便做热备切换。

2.去差异化。如果云扩展了,相互之间会有不同和差异。对于业务层,我们需要把这些差异做到屏蔽,让他们觉得平滑和透明。

3.自有体系。在这个基础上更容易建立自己的自有体系,包括运维自动化的体系和服务管理的体系。

4.成本管理。因为我们需要在很早阶段就做更精细的成本管控,所以我们需要看APP的维度,去看大家的费用消耗或者资源使用情况。


image017.png


上图是当前所有的运维工具和平台的体系。右边最下面是CloudAPI层,我们把所有公有云提供的资源,只要能支持API接口的都做了接入。在这个基础之上,按资源的分类去做相对应的管理工具和平台,包括安全组,因为它的变更频率非常高,所以我们对安全组做了抽象和重新设计,还有一个对应的管理平台。这些资源一旦被开通和投入线上使用,都会和我们自己的服务树做关联绑定。


这棵服务树就是右边黑色的图,在这个树上按照产品、子系统、功能模块进行业务拆分。因为这个树上记录了每个业务和资源的对应关系,所以服务树和内部其他的系统进行关联和联动。


比如与监控系统联动,可以实现监控自动地添加和删除。这棵树不但是运维管理的基础视角,还是内部其他系统数据源。所以它的信息需要准确及时,不能是静态或者手动回复。那么我们如何动态维护和管理这棵树呢?我们通过和上层服务治理结合的方式实现。


image019.png


先介绍一下自动化运维里三个基本的概念。

首先是Service Tag,即微服务模块。当它横向排列展开时就是如图的字符串。在这个字符串里包含了子系统的信息、服务系统的信息、模块的名字。如果把它竖向排列,就和服务树一样,它很多时候可以通过这个Tag生成服务树。

再往上是service Name,包含服务名字、子系统。这两个有相似性,本质是一个东西,只是一长一短。长的这一块更偏向资源和运维管理,短的这个更偏向服务应用。

再往上就是Appid,即业务的标识。Appid下关联了很多业务属性,比如业务的负责人,相关的业务属性等。

这三个基础的概念,底层有一个关联的逻辑关系,可以梳理业务下面的服务,服务所关联的资源。这三个是一一对应的关系。我们所有的自动化运维体系围绕这三个来展开的。


image021.png


具体运行的模式,这里简单跟大家介绍一下。如果创建了一个新的业务。它首先在映客云平台上立项添加;然后生成和业务对应的属性;其次,通过一些接口或者生成工单的形式通知运维平台做基础资源的准备。


同时,研发可以开展代码开发的工作。在代码开发的同时,它需要先到KAE平台创建和生成serviceName和serviceTag的字符串。当这个业务在平台发布线上之后,业务和资源的对应关系会自动生成关联到树上。基于服务树,我们进一步做自动监控,基于KAE平台进一步做远程配置、流量录制。同时业务还会生成一些源数据给大数据做计算分析。生产数据也利用service和Appid信息去决定生产到什么样的队列,去做一些隔离和优先级划分等等,最后落地到大数据。


业务在最初创建时,会和我们的数据平台去做关联。当源数据生成之后,对应的数据就能可视化,和APP相关的数据都会和映客云做一个关联。


image023.png


为了让所有业务都能遵守这样的机制,我们提供了统一的一套开发框架。这套框架提供了一些能力,包括日志、监控上报等基础功能。围绕这个框架,我们也做了周边的脚手架,以便快速生成一个项目。对于整个框架依赖的公共资源,我们抽取出来进行集中的统一管理和运维。


image025.png


下一阶段做一些通用公共服务组件的提炼,包括短信、推送、加解密、埋点等服务。这些都变成公共服务,并且尽可能让它实现自助对接。我们在客户端也同样做了类似的事情,比如热修复、网络优选、通用埋点。我们都提供一个公共的能力。


image027.png


包括对于一些第三方,我们也做了一些提炼。这个设计图底层就是音视频SDK所提供的能力,在高阶应用接口这一层,我们按照房间操作和使用角度去提供接口。通过这样的方式,我们去实现底层SDK接口快速切换,来做到对业务层更加透明


image029.png


在业务场景化这一块,我们内部主要在使用的是用户、金融、IM这三块。比如用户,我们对基本的注册/登录,风控、推广投放和数据可视化能力进行了整合。


image031.png


这些整合过的能力,我们尽可能让它自助配置,自助的对接。我们现在设计的一个目标就是每个组件可以在30分钟内完成接入,达到可连调的条件。


image033.png


经过上面几个阶段的发展之后,们主要的变化和收益在研发人员这边

一是他们可以跨业务的灵活迁移。比如说这个项目要去做了,它可以快速从其他产品里抽调人手。如果不做了,这些人可以快速分散到其他业务里;

二是他们更多时间是聚焦在业务逻辑上,所以可以降低一些经验要求在业务端,我们对业务可以减少开发的工作量;很多组件可以快速对接,我们目前大部分都可以做到30分钟-1小时完成;

三是底层服务升级更加透明,而且这些服务有专人维护,更加成熟稳定,避免业务之间重复踩坑。最后是一些默认的功能整合。


image035.png


我们整套体系从最初100%基于公有云来去搭建和建设,某种程度上也符合最近比较流行的云原生理念。在上图,左边是初期已经开始在用的一些服务,右边是随着现在公有云产品越来越丰富和完善,我们也陆续用了更多的一些能力。大家在准备上云,或者在云上运维里,不可避免都会遇到类似这样的问题,比如说云的定位是什么?云上产品越来越丰富,到底直接使用还是考虑自研?云需不需要去做混合云,或者做多云架构?我觉得这个需要根据业务和场景来做具体的分析和决策。


image037.png


我个人认为这些问题在可控性、迁移性和低投入,这三个角度去寻找平衡。而这三个角度某种程度上点像一个不太严谨的CAP理论。只能占有两个,牺牲掉一个或者放弃掉其中一个。在映客最初的定位里,我们更多侧重在可控性和可迁移性上。


image039.png


未来方向与规划


针对未来,我们要做的一些事情。


首先持续建设多云热备架构,以及迁移能力的加强,这方面主要考虑是服务质量。随着公有云本身的稳定性和可用区域越来越多。这件事情变成一个重要,但不紧急的事情。但是对于一些大面积故障,或者区域性故障,我们仍然是不可接受的。


其次中台化相关的能力,主要针对海外。因为我们越来越多的业务开始去探索海外市场。这一块我们的积累沉淀还很少。


最后更多的场景化。让业务可以更简单,比如客服或者智能投放的能力。

相关文章
|
1月前
|
运维 监控 持续交付
构建高效自动化运维体系:策略与实践
在数字化时代,企业IT基础设施的管理和维护变得日益复杂。为了提高效率、降低错误率并快速响应市场变化,构建一个高效的自动化运维体系至关重要。本文将探讨自动化运维的核心策略,并通过实际案例分析展示如何将这些策略应用于日常管理中,以实现IT运维的优化。
17 0
|
1月前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
1天前
|
运维 监控 安全
构建高效自动化运维体系:策略与实践
【4月更文挑战第25天】在数字化转型的浪潮中,企业IT基础设施日趋复杂多变,传统的手动运维模式已难以满足快速响应和高效管理的需求。本文探讨了构建一个高效自动化运维体系的关键环节,并结合实际案例分析,提出了一系列切实可行的策略与实践方法。文章着重分析了自动化工具选择、流程设计优化以及持续监控的重要性,并讨论了如何通过这些手段降低运维成本,提升系统稳定性和安全性。
|
11天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
12天前
|
人工智能 运维 监控
构建高效自动化运维体系的实践与思考
【4月更文挑战第14天】在数字化转型的浪潮中,自动化运维作为提升系统稳定性和效率的关键手段,受到了企业的广泛关注。本文将深入探讨如何构建一个高效的自动化运维体系,涵盖从基础设施的搭建到流程的优化等多个方面。通过分析当前自动化运维的挑战及解决方案,文章旨在为读者提供一套实用的策略框架,帮助企业实现运维工作的高效化、标准化和智能化。
|
18天前
|
运维 监控 Kubernetes
构建高效自动化运维体系的实践与思考
【4月更文挑战第8天】在数字化时代,IT基础设施的复杂性日益增加,传统的手工运维模式已经难以满足快速响应和高效率的需求。本文将探讨如何通过自动化工具和策略构建一个高效的自动化运维体系,旨在提高系统的稳定性、减少人为错误以及优化资源分配。文章首先分析了自动化运维的必要性,接着介绍了实现自动化的关键技术和工具,并通过案例分析展示自动化运维体系的实际效果。最后,对自动化运维的未来发展趋势进行了展望。
|
20天前
|
机器学习/深度学习 传感器 运维
提升数据中心效能:智能运维策略与实践
【4月更文挑战第6天】在数字化时代,数据中心作为企业信息架构的核心,其稳定性和效率直接影响到业务连续性和客户满意度。随着技术的进步,传统的数据中心运维模式已经不能满足现代高效、智能化的需求。本文将探讨如何通过智能运维(AIOps)策略,结合大数据分析和机器学习技术,实现数据中心的自动化管理、故障预测及快速响应,以提升整体效能并降低运营成本。
|
30天前
|
运维 监控 数据可视化
现代化运维管理系统的关键特性及实践应用
随着信息技术的迅猛发展,现代企业对于运维管理系统的需求日益增长。本文将探讨现代化运维管理系统的关键特性,以及在实际应用中的重要性和优势所在,帮助企业更好地理解和应用现代化运维管理系统。
15 2
|
1月前
|
运维 Prometheus 监控
构建高效稳定的云基础设施:自动化运维策略与实践
在动态的云计算环境中,自动化运维(AIOps)已成为确保服务稳定性和效率的关键。本文将深入探讨构建高效稳定云基础设施的策略,重点关注自动化工具的选择、配置管理的最佳实践、持续集成与持续部署(CI/CD)流程的优化,以及监控和日志分析的重要性。通过这些策略的实施,企业能够减少人为错误,提高响应速度,并最终实现运维效率的显著提升。
|
1月前
|
运维 监控 Devops
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
在数字化转型的浪潮中,企业的IT基础设施和软件交付模式正经历着深刻的变革。传统的运维方式已难以满足快速迭代、灵活扩展的现代业务需求。本文将探讨如何通过容器技术实现高效的自动化运维体系,重点分析持续集成(CI)与持续部署(CD)的实践方法及其对企业运维效率的影响。通过引入微服务架构、容器编排、DevOps文化等概念,我们旨在为读者提供一套全面的自动化运维解决方案,以支持业务的敏捷性和可扩展性。

热门文章

最新文章