美图欣赏 | 设为首页 | 加入收藏 | 网站地图

当前位置:新锦江平台:www.xjj7.com-电脑中国 > 云计算 > 云开发 >

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

2020-11-13 09:30|来源:未知 |作者:dnzg |点击:
  你是否也遇到过以下问题:研发团队人数虽多,但依旧经常出现产品上线延期、上线的产品bug频发,导致客户流失、开发成本居高不下。这说明,你的企业可能在研发效能方面出了问题。
 
  然而,怎么提高研发效能?怎么实现事半功倍?为此,由腾讯云主办、TGO鲲鹏会承办的「优才计划·企业新技术实践云沙龙」于9月12日在成都落地,沙龙主题是《云原生在企业的技术探索以及人才培育》,来自腾讯云、猫眼、企鹅杏仁的3位讲师为大家分享了企业如何利用云开发提高企业效能。
 
  1
 
  如何利用云开发为企业降本增效?
 
  我们先举一个具体场景:假设你要做一个百万级在线实时互动抽奖的功能,需要做哪些开发工作?实现这个功能其实很简单,但还需要考虑怎么防羊毛党,怎么承受秒杀期的高流量高并发等问题,这些才是研发中的耗时工作,怎么快速实现?
 
  来自腾讯云开发的赵兵老师,重点从以下三方面进行分享。
 
  1、基于CloudBase平台可以实现一个人完成百万实时互动
 
  CloudBase是腾讯云的云开发平台。
 
  和平精英上的互动抽奖就是基于该平台完成的。在抽奖过程中,需要做到社区弹幕需要实时的更新进度,用户可以在观看云发布会时能实时的进行互动。而腾讯游戏只用了一个人就完成了这个对实时性要求极高的活动,如何做到的?
 
  在完成这个功能时,腾讯游戏使用了云开发的数据库实时推送能力。如上图,左边是部分真实代码,监听了数据库和会场的配置数据,当该数据发生变更之后,会推送到不同的客户端,在每一位参会者的手机上实时显示。
 
  为什么基于CloudBase云开发平台可以做到?
 
  首先,CoudBasese具备下几个特性特征
 
  支持全客户端:从小程序到WEB、移动端的APP都可支持
 
  无服务架构的平台:高性能、高可用,且能支撑亿级流量
 
  扩展能力强:提供腾讯云和微信的附加扩展服务
 
  其次,CloudBase的架构较完善,如整体分为基础能力、扩展能力和云的后端服务能力三,除此之外面向客户端和移动端还提供很多SDK产品,如微信、JS、NODE,Framework工具等。这些工具和S的加,下可以方便研发团队在微信、QQ、小程序以及外部端、APP端等不同端口进行开发。
 
  2、采用Serverless架构实现云应用
 
  基于CloudBase平台开发还不够,要考虑如何把业务迁移到上面?比如说后端服务用的是Java或者其它语言,我们怎么去使用?这就不得不提一下腾讯云的Serverless云应用,这是云开发提供的一种无服务器容器托管平台。
 
  云开发CloudBase的Serverless云应用是基于Knative来构建整个体系的,围绕Knative进行了相关理念的实际落地。但和传统的Knative不一样,Serverless云应用去掉了访问服务器之前的学习流程,而是通过自带的默认的程序来访问自己的业务。其具有如下优势:
 
  不限制任何语言和框架;
 
  采用流量驱动的模式,当业务流量很小时,它可以不启动,或者启动很少;
 
  采用全托管的模式,提供整个服务的托管服务和部分扩展工具。
 
  Serverless云应用的应用场景有哪些?
 
  一是面向后台服务托管,以往需要一个服务器或是数据机,现在能让原有的后端服务快速迁移过来,直接云上托管。二是适合流量不稳定的触发型的业务,当无法预估活动的流量时,它会按照你的请求来自动伸缩,帮助控制成本。三是在云应用的产品下可以做到性能独享。
 
  通过使用轻量级的Serverless云应用,就可以免去运维、让开发者更少的关注业务逻辑之外的东西,从而提升研发效率。上文讲述了如何把一个后端服务快速的迁移到Serverless云应用上来。但是所有的业务中不仅有后端服务,还有前端,还有小程序等后端应用,如何快速进行前后端的部署,此时就需要用到CloudBaseFramework工具。
 
  3、快速进行前后端部署:CloudBaseFramework实战
 
  做Framework的初衷是希望能帮开发者用更简单的方式,通过前后端一体化开发,降低开发门槛,让开发者不需要学习太多云的知识,就可以把自己的项目一键发布出去。其主要的功能特性包括前面演示的自动检测、插件化设计以及生命周期的配置,还有可以实现多个环境或者生长环境、自然环境的切换,使得项目在不需要下载任何工具时都可以做到在线云端安装复制。
 
  在其主要的一键部署功能上,支持非常多的框架和多种语言,让开发者在使用时不需要学习怎么样去编写、适配,只需要按照传统的方式来开发业务。面对不同的产品,比如网站、函数、云应用,都做了插件来进行支持,解决容器服务怎么到云应用,或者解决其它的语言和框架之间的适配。
 
  那怎么去声明插件呢,工具附带一套配置,支持自动生成和人为填写,可以看到使用了哪些插件,进行了哪些配置,也可以通过变量的方式看到在不同的环境里的IP,从而进行不同环境之间的切换。在切换时可以直接指定模式,也可以实现在CI时自动部署。
 
  云开发CloudBase的优势有很多,弹性、安全、一体化、高扩展,通过这种方式,通过一体化能力和工具,提高研发效率,节省开发成本,为开发者带来降本增效的效果。上文说了很多偏理论的知识,接下来会以猫眼电影为例,讲述云开发在实际应用中的效果。
 
  2
 
  猫眼如何利用小程序云开发提升效率
 
  说到小程序云开发,猫眼可以说将这项技术深入的用到了其业务场景中,包括其频繁的签到、秒杀、拼团等活动。去年七夕,猫眼研发侧收到了产品侧对前年七夕活动复用的需求,且需要添加新的功能并针对部分功能进行修改,要求第二天上线。
 
  传统的活动方案是让PM和前后端开发一起商量哪些字段可以被配置,并开发活动来存取这些字段,之后需要前后端开发管理功能,来管理这些字段,并在小程序端将这些配置模版化。但是这样的方案会面临沟通成本高、联调权责不清的情况。
 
  为了解决这个需求,还有两种其他的解决方案,第一种是前端存储并提供接口,把后端的开发量省掉,节省沟通成本,但是这么做主要是把后端的工作挪到前端做,实际上的工作量其实并没有减少,但可以降低沟通成本。第二种就是小程序云开发,通过其三大功能存储、数据库、云函数,可以省掉开发接口、图片视频等文件上传工作量、无需考虑运维,能以最低的成本实现需求。
 
  除此之外,猫眼还基于云开发设立了一个运营工具—唐图,其有如下两个特征:
 
  支持可视化编辑:在列表和编辑页面支持活动文案、图片和颜色的配置,且可以实现新建、编辑、查看、上下线等功能,在面临复杂活动需求时,仅需要后端提供接口,前端读取数据。即可轻松的基于原来的模版,其它活动。
 
  动态化组建:在面对过节需要设计紧急代码审核时,把代码托管在动态化组建上,即可免除审核发布的流程。
 
  截止目前为止,唐图已经支持了约30种类型,超过300份有效配置数据,每天的数据库读取次数约为160万;人力成本从以前开发一个新需求需要3人+的能力变成了1个人;改动的成本为零,极大的提高了企业的研发效率的同时降低了研发成本。
 
  除了前后端一体化之外,DeveOps也是一个提升研发效率的有效途径,接下来将以企鹅杏仁为例,讲述DevOps如何帮助企业提高研发效率。
 
  3
 
  分享DevOps在企鹅杏仁的落地之路
 
  DevOps主要能为企业带来五大方面的效率提升,包括提升全局部署频率、降低版本发布失败率、缩短每次产品发布时间、缩短故障修复时间、缩短故障平均恢复时长。在具体的落地应用中企鹅杏仁是如何实现这五大优势的呢?
 
  在创建应用阶段,公司不允许任何人随便创建应用,随便创建的应用在提交GitLab时很快就会被删掉,创建应用需要用xp—portal平台,通过建立规范,让开发者的关注点集中在业务上。在CD设计的环境流转上也是一样,不允许独自去创建环境,保证不管几个环境流转,但镜像本身一模一样的。
 
  在配置分离阶段,有Apollo、日志、监控、DB、域名,维护地址和应用配置和数据库,在构建发布时,构建时让开发人员具备自主构建的能力,符合规范即可构建,支持自动、手动发布和一键回滚。在面临并行开发时,采用多分支环境支持,举例说明:开发人员小明可以创建一个他自己有哪几个分支是一条列入的,哪些应用是关联在一起的,可以直接指定,另一个开发小红也可以创建一个他自己独立的环境,两个环境是隔离的,通过这种方式可以实现有效的并行开发。
 
  在环境流转阶段会有一个大盘对它做监督,有哪些迭代正在进行,哪些线上缺陷要修复,哪些日常需求待跟进,我们有一个流转的大盘,都用大盘进行督促。在查询迭代明细时,它是属于哪个分支,创立人是谁,初始版本是什么,下面的QA是谁,产品负责人、项目负责人、技术负责人都可以清楚看得到,这样既可以实现直接创建,又能快速流转,通过这些流程,实现五大方面的效率提升。
 
  通过前后端一体化、DevOps等新兴技术的确是可以有效的帮助企业提高研发效率,当然,要提高研发效率,除了技术上的精进之外,人才的培育也是很重要的部分。
 
  基于此腾讯云于今年6月份推出了“优才计划”,携手行业权威组织机构,全国高校、腾讯云合作伙伴及用云企业,以就业为牵引,构建数字化人才培养新生态,并在全国各地发起了企业新技术实践沙龙活动,旨在通过此举激发社会对数字化人才的重视,为新基建下的产业互联网发展提供人才支撑。
(责任编辑:dnzg)