环信联合创始人: Saas敏捷开发实践!

18a1cc5e65e47244bc0819ad16c8c1ed.jpg
马晓宇 --环信联合创始人/执行总裁前端

咱们是一个作云服务的创业公司,因此我就云服务创业公司的角度,来谈谈咱们是怎么去实践敏捷开发的。确切地说,就是讲讲咱们这几年的这些教训...segmentfault

1-创业公司敏捷开发流程有哪些?

屏幕快照 2019-06-14 下午2.57.08.png

日本企业:个人第一份工做,我发现它这个文化,或者它这个流程设计的是和他们的特色很是相关,若是你们接触过日本,就会知道他们有一个特色,两个字—“变态”。后端

为何这么说呢?这多是褒义,由于他们对文档,对质量,对流程,对测试要求就是两个字:变态。因此他们的整个流程就是很是变态。服务器

你们若是写过概要设计、说明书这些的,你可能写程序花最多一周,可是写文档至少两三个月才能经过。可是这个好处是说保证随便的一个普通工程师,刚大学毕业,他进到这个企业,进到这个组织,他就能产出一样质量的一个软件,因此这个是不少公司其实作不到的。核心团队人员离职了,尤为创业公司,有时候面临挑战就会比较大。可是在这种变态流程里,它其实不缺人,由于每个人都是螺丝钉。微信

电信软件:发现又不同,咱们通常作系统,出问题重启,可是电信它的要求是,但愿这个系统一年不重启...cookie

开源社区:通常一年开一次会,整个一个团队大概七八我的,多的十几我的在世界各地,每一年年初或者年末开一个会,这个会上就讨论今年什么,都比较虚。组织形式很是松散,由于你们可能有一个共同的目标,客户的期待也特别大,因此就是没日没夜的去工做。架构

手机软件:挑战和其余的不同,就是多了一个兼容性。由于手机系统当时咱们有一个参数,就是说你一个软件发出来以后,你有多少个客户,升级以后,它要回厂,回到服务站去解决问题。并发

具体指标我记不清,每次都会检查,就是若是回到服务站的用户多了,这个软件就赔钱了。咱们原来作移动的APP、SDK也面临一样挑战。运维

创业公司:生存挑战,咱们找各类流程,找一个能适应咱们文化的,最关键的其实想找一个能帮助咱们生存下去的流程。工具

其实创业的话,就会以为每月有一天特别难受,那就是每月给员工发工资的时候。几百人怎么去赚到这个钱,而后去给你们发工资。

那这个生存挑战怎么解决呢?可能就是四个字,“降本增效”,但这个比较虚了,都知道降本增效,可是实际怎么作啊?我给你们送一句话:“降本增效,就用Worktile”

咱们用Worktile比较早,在2014年左右就开始用,早期的付费用户,以为挺好用的,以后又在敏捷大会看了新版本新界面,感受功能更增强大了。

屏幕快照 2019-06-14 下午3.07.20.png

2-SaaS需求管理,有何轻重缓急之分?

屏幕快照 2019-06-14 下午3.13.24.png

创业公司的需求来自 项目经理、研发、客户 等方方面面,也会常常面临各类各样的bug。

就bug的轻重缓急而言,我总结了三种类型的bug:

严重bug: 须要团队马上去执行,去解决;

功能性bug: 须要团队进行排期,可能会花几周的时间去迭代修复的;

性能bug: 这是最难解决的,举例来讲,当咱们在设计的时候,系统一上线就能支持百万用户甚至亿级用户的自由伸缩,每每是不现实的。因此,在SaaS需求管理上须要去平衡不一样功能的需求程度。

3-关于SaaS迭代开发,应注意什么?

屏幕快照 2019-06-14 下午4.04.15.png

创业公司在服务端上线周期基本上是一个月,上线有两个注意事项:

一个是回退方案, 即作到要求的方案均可以回退,遇到问题时能够及时作到回退。

另外一个是兼容性问题, 一个产品面对不一样的用户存在这不一样的兼容性问题,这时咱们须要作开关,若是产品上线可能形成某方面的损失,能够选择作降级开关来处理,保证部分功能实现。

移动端的上线须要注意发版问题,当作工具云时,在很短的周期内出了一版,可是没有测到严重的bug,随即上线后续更新的版本,这就会在用户体验上大打折扣。

4-SaaS 云服务的自动测试如何作?

屏幕快照 2019-06-17 下午2.35.42.png

若是如今作互联网服务愈来愈的是避不开移动端,除非用微信 H5,不然怎么测应用的在百万及甚至几百万用户的压力下,你应用的响应,若是作测试知道这个是特别花钱的,由于你实际模拟一个用户,这个一台机器基本上是六万,一台机器模拟六万个客户,这是咱们的常规测试,若是模拟百万用户实时链接,要求二十台机器,十台是60万,二十台机器,但这个对创业公司服务器的成本仍是有的。

因此咱们怎么作呢? 阿里云是如今也支持了,早期是10%,如今已经按量付费,去使用服务器资源,计费周期是到秒的,因此咱们真正去作移动端压力测试的时候,建议你们搞这么一套系统,这个还花的咱们一段时间,咱们整个有一套脚本,这个脚本从运行就启动一个阿里云,是有API,申请ECS,好比跑一个百万的,能够把服务器申请出来,咱们把全部的模板部署上,部署以后先作一个简单验证,整个环境通了,这样就能够去真正模拟,由于通常的模拟场景是百万用户,同时先登服务器,建一个百万的TCP链接,以后模拟一些场景,有的是发消息,有的是客服业务,有的送花有的点赞这些场景模拟完以后,要把测试结果报告,这套有了,这个测试就完了。

可是提醒一下,你能够自动释放服务器,但通常咱们作这个操做的时候,咱们整个测试结果出来以后,咱们看一下,若是说不达到期待,调一下脚本,甚至去改一下服务再测一下。若是没问题,后边就有一个脚本能自动释放,因此整个其实能够全自动的,并且当时我算了一下,若是你是使用,好比按天,不到三天,费用确定是比包月便宜,即便拿到一个比较高的折扣,你们作移动端自动测试,尤为是这种要作并发的话,我建议就用这种按量,这个是给咱们省了很多钱。

5-部署和运维的敏捷保障

屏幕快照 2019-06-17 下午2.43.50.png

作云服务,作SaaS的有一个,基于租户的灰度发布。

屏幕快照 2019-06-17 下午2.45.52.png

1.AB测试

AB测试是一种用于提高产品转化率、优化获客的方法。当咱们想测试哪一个注册页面转化率高时,咱们就能够上线两个版本的页面,经过一周、一月的注册数据监测比例来衡量哪一个页面效果好。在作云服务,SaaS时,就是基于租户的验证,一样能够适用这种方法。

2.先后端灰度

全部的前端根据cookie中的租户id,转发到不一样版本的后端服务。若是进来以后,cookie解决这个租户ID,就能够写个脚本,根据当前给的配置对应的版本打造对应的服务,这是一个经常使用的功能。

3.移动端灰度

移动端登陆后,从路由服务器请求访问地址。以作移动端的经验来讲,某一个用户想登到指定的版本如何来作?咱们能够作DNS解析,就是手机端不是先去试图访问服务,而是先去访问咱们作的解析入口,当前是哪一个租户,用户ID是多少,移动端什么版本,应该访问哪一个后台版本,而后整个服务会打造相应的后台版本。

若是公司有海外客户,就能够经过DNS解析到海外的配置,移动端的路由能够根据不一样用户的区域作不一样的配置,连接到不一样的服务和版本。

6-学费/教训

屏幕快照 2019-06-17 下午3.12.34.png

说说学费,从如今看,不论是流程,如今要保证最重要的四个方面:

1-核心要保持稳定,

即自身系统的上线流程不能影响到客户的业务流程,能够采用错峰上线、降级开关等措施;

不论是作即时通信,仍是作客服,若是这个系统出问题,都会影响它的业务。

2- 善于提炼客户需求

产品功能须要知足大多数客户的需求; 若是你客户比较多的话,跟销售打交道,容易被忽悠,销售说“你把这个作了就给钱了”或者“若是你把这个作了就好了”。我说哪一个重要,销售都说重要。

因此这里面有个技巧,你得须要真正对这个产品有理解,对这个业务理解了,就是用户要的只是他如今想要的,可是若是能把不一样的需求,提高到通用的需求,里面加一些开关,能知足大多数的需求,这个是很重要的。

3-成本控制

能够从架构设计出发,尽可能用成熟的组件,设计一个低成本的架构; 若是大家作云服务,一开始不以为,可是若是忽然运维给你一个七位数的账单,一个月。你就认识到,你的架构须要改了,可是若是你看到这个账单的时候,可能有点晚了

4-注重用户的体验

在移动端,须要多注意产品的兼容性问题。通常用户不会由于体验问题会跟你断约,前面这些事情都是说有可能不给你作,后面的体验作好能给他服务的更好,体验就是刚才说过,可能主要就是注意一下移动端的兼容性,虽然换手机频率高,可是兼容性问题仍是比较大的。

文章来源:Worktile敏捷博客

欢迎访问交流更多关于技术及协做的问题。

文章转载请注明出处。

相关文章
相关标签/搜索