专栏首页云开发云开发如何解决研发效能最后一公里问题?

云开发如何解决研发效能最后一公里问题?

你是否也遇到过以下问题:研发团队人数虽多,但依旧经常出现产品上线延期、上线的产品 bug 频发,导致客户流失、开发成本居高不下。这说明,你的企业可能在研发效能方面出了问题。

然而,怎么提高研发效能?怎么实现事半功倍?为此,由腾讯云主办、TGO 鲲鹏会承办的「优才计划·企业新技术实践云沙龙」于 9 月 12 日在成都落地,沙龙主题是《云原生在企业的技术探索以及人才培育》,来自腾讯云、猫眼、企鹅杏仁的 3 位讲师为大家分享了企业如何利用云开发提高企业效能。

我们先举一个具体场景:假设你要做一个百万级在线实时互动抽奖的功能,需要做哪些开发工作?实现这个功能其实很简单,但还需要考虑怎么防羊毛党,怎么承受秒杀期的高流量高并发等问题,这些才是研发中的耗时工作,怎么快速实现?

来自腾讯云开发的赵兵老师,重点从以下三方面进行分享。

1、基于 CloudBase 平台可以实现一个人完成百万实时互动

CloudBase 是腾讯云的云开发平台。

和平精英上的互动抽奖就是基于该平台完成的。在抽奖过程中,需要做到社区弹幕需要实时的更新进度,用户可以在观看云发布会时能实时的进行互动。而腾讯游戏只用了一个人就完成了这个对实时性要求极高的活动,如何做到的?

在完成这个功能时,腾讯游戏使用了云开发的数据库实时推送能力。如上图,左边是部分真实代码,监听了数据库和会场的配置数据,当该数据发生变更之后,会推送到不同的客户端,在每一位参会者的手机上实时显示。

为什么基于 CloudBase 云开发平台可以做到?

首先,CoudBasese 具备下几个特性特征

  • 支持全客户端:从小程序到 WEB、移动端的 APP 都可支持
  • 无服务架构的平台:高性能、高可用,且能支撑亿级流量
  • 扩展能力强:提供腾讯云和微信的附加扩展服务

其次,CloudBase 的架构较完善,如整体分为基础能力、扩展能力和云的后端服务能力三,除此之外面向客户端和移动端还提供很多 SDK 产品,如微信、JS、NODE,Framework 工具等。这些工具和 S 的加,下可以方便研发团队在微信、QQ、小程序以及外部端、APP 端等不同端口进行开发。

2、采用 Serverless 架构实现云托管

基于 CloudBase 平台开发还不够,要考虑如何把业务迁移到上面?比如说后端服务用的是 Java 或者其它语言,我们怎么去使用?这就不得不提一下腾讯云的云托管,这是云开发提供的一种无服务器容器托管平台。

云开发 CloudBase 的云托管是基于 Knative 来构建整个体系的,围绕 Knative 进行了相关理念的实际落地。但和传统的 Knative 不一样,Serverless 云托管去掉了访问服务器之前的学习流程,而是通过自带的默认的程序来访问自己的业务。其具有如下优势:

  • 不限制任何语言和框架;
  • 采用流量驱动的模式,当业务流量很小时,它可以不启动,或者启动很少;
  • 采用全托管的模式,提供整个服务的托管服务和部分扩展工具。

云托管的应用场景有哪些?

一是面向后台服务托管,以往需要一个服务器或是数据机,现在能让原有的后端服务快速迁移过来,直接云上托管;二是适合流量不稳定的触发型的业务,当无法预估活动的流量时,它会按照你的请求来自动伸缩,帮助控制成本;三是在云托管的产品下可以做到性能独享。

通过使用轻量级的云托管,就可以免去运维、让开发者更少的关注业务逻辑之外的东西,从而提升研发效率。上文讲述了如何把一个后端服务快速的迁移到云托管上来。但是所有的业务中不仅有后端服务,还有前端,还有小程序等后端应用,如何快速进行前后端的部署,此时就需要用到 CloudBase Framework 工具。

3、快速进行前后端部署:CloudBase Framework 实战

做 Framework 的初衷是希望能帮开发者用更简单的方式,通过前后端一体化开发,降低开发门槛,让开发者不需要学习太多云的知识,就可以把自己的项目一键发布出去。其主要的功能特性包括前面演示的自动检测、插件化设计以及生命周期的配置,还有可以实现多个环境或者生长环境、自然环境的切换,使得项目在不需要下载任何工具时都可以做到在线云端安装复制。

在其主要的一键部署功能上,支持非常多的框架和多种语言,让开发者在使用时不需要学习怎么样去编写、适配,只需要按照传统的方式来开发业务。面对不同的产品,比如网站、函数、云托管,都做了插件来进行支持,解决容器服务怎么到云托管,或者解决其它的语言和框架之间的适配。

那怎么去声明插件呢,工具附带一套配置,支持自动生成和人为填写,可以看到使用了哪些插件,进行了哪些配置,也可以通过变量的方式看到在不同的环境里的 IP,从而进行不同环境之间的切换。在切换时可以直接指定模式,也可以实现在 CI 时自动部署。

云开发 CloudBase 的优势有很多,弹性、安全、一体化、高扩展,通过这种方式,通过一体化能力和工具,提高研发效率,节省开发成本,为开发者带来降本增效的效果。上文说了很多偏理论的知识,接下来会以猫眼电影为例,讲述云开发在实际应用中的效果。

说到小程序云开发,猫眼可以说将这项技术深入的用到了其业务场景中,包括其频繁的签到、秒杀、拼团等活动。去年七夕,猫眼研发侧收到了产品侧对前年七夕活动复用的需求,且需要添加新的功能并针对部分功能进行修改,要求第二天上线。

传统的活动方案是让 PM 和前后端开发一起商量哪些字段可以被配置,并开发活动来存取这些字段,之后需要前后端开发管理功能,来管理这些字段,并在小程序端将这些配置模版化。但是这样的方案会面临沟通成本高、联调权责不清的情况。

为了解决这个需求,还有两种其他的解决方案,第一种是前端存储并提供接口,把后端的开发量省掉,节省沟通成本,但是这么做主要是把后端的工作挪到前端做,实际上的工作量其实并没有减少,但可以降低沟通成本。第二种就是小程序云开发,通过其三大功能存储、数据库、云函数,可以省掉开发接口、图片视频等文件上传工作量、无需考虑运维,能以最低的成本实现需求。

除此之外,猫眼还基于云开发设立了一个运营工具—唐图,其有如下两个特征:

  • 支持可视化编辑:在列表和编辑页面支持活动文案、图片和颜色的配置,且可以实现新建、编辑、查看、上下线等功能,在面临复杂活动需求时,仅需要后端提供接口,前端读取数据。即可轻松的基于原来的模版,其它活动。
  • 动态化组建:在面对过节需要设计紧急代码审核时,把代码托管在动态化组建上,即可免除审核发布的流程。

截止目前为止,唐图已经支持了约 30 种类型,超过 300 份有效配置数据,每天的数据库读取次数约为 160 万;人力成本从以前开发一个新需求需要 3 人 + 的能力变成了 1 个人;改动的成本为零,极大的提高了企业的研发效率的同时降低了研发成本。

通过前后端一体化等新兴技术的确是可以有效的帮助企业提高研发效率,当然,要提高研发效率,除了技术上的精进之外,人才的培育也是很重要的部分。

基于此腾讯云于今年 6 月份推出了“优才计划”,携手行业权威组织机构,全国高校、腾讯云合作伙伴及用云企业,以就业为牵引,构建数字化人才培养新生态,并在全国各地发起了企业新技术实践沙龙活动,旨在通过此举激发社会对数字化人才的重视,为新基建下的产业互联网发展提供人才支撑。

文章来源:InfoQ

点击下方链接了解更多优才计划相关信息优才计划官网:

https://cloud.tencent.com/edu/talents

点击「阅读原文」获得公开课视频回放链接。

 更多精彩

点击下方图片即可了解

△ 腾讯云十周年庆·云开发重磅回馈

△ 云数据库已支持回档到最长14天内的任意时刻

△ 6元解决网站托管烦恼



由于公众号推送规则更改,请多多分享点赞“在看”,以及时获取云开发Cloudbase的最新动态。

      点击在看让更多人发现精彩

本文分享自微信公众号 - 腾讯云云开发(tcb2tcb),作者:徐瑛

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 半年用户数翻倍,腾讯云开发产品市场占有率行业第一

    ? 近日,2020年云原生线上技术大会上,腾讯云首次披露了在云原生领域取得的成果及云原生产品矩阵。其中,腾讯云开发产品在半年内用户增长了100%,活跃用户占微...

    腾讯云开发TCB
  • 有奖征集:云开发CloudBase的101种玩法

    Web 云开发是云开发面向 Web 场景的产品,已经上线数月。Web云开发采用 serverless 架构,免环境搭建等运维事务,为用户带来了极大的便利。

    腾讯云开发TCB
  • 实战视频01丨Web云开发快速开始

    云开发(CloudBase)是云端一体化的云服务平台,是国内 Serverless 理念的领先实践,使用云开发,开发者无须关心服务器搭建和管理,只需编写业务代码...

    腾讯云开发TCB
  • 实用技巧:Hystrix传播ThreadLocal对象(两种方案)

    目前,Spring Cloud已在南京公司推广开来,不仅如此,深圳那边近期也要基于Spring Cloud新开微服务了。 于是,领导要求我出一套基于Spring...

    用户1516716
  • Flutter基础widgets教程-CupertinoButton篇

    青年码农
  • Flutter基础widgets教程-CupertinoButton篇

    青年码农
  • Flutter开发:关于隐藏Appbar相关属性的知识点

    this.automaticallyImplyLeading = true,

    三掌柜
  • 在 Vue 对象模块内如何使用 this 对象?

    众所周知,js 中的 this 对象在不同作用域下指代不同的对象实例,并且在以下 4 种场景中经常会“不知所向”:

    李艺
  • 【前端】Javascript高级篇-tab切换栏(案例1)

    为节约时间选择性实现,后续大家感兴趣可以看教程了解跟进 https://www.bilibili.com/video/BV1YJ411L75N?p=14

    瑞新
  • DBA和开发同事的一些代沟(四) (r7笔记第36天)

    DBA和开发都是两个可爱的团队,如果合作起来,那战斗力可是杠杠的。如果合作不愉快,那就是一件简单至极的事情都能扯皮几天几夜,而且还解决不了。 今天出公司的时候碰...

    jeanron100

扫码关注云+社区

领取腾讯云代金券