互联网改变人们的衣食住行,也在悄然无声间为根植之上的软件行业带来颠覆性的变化,尤其是在云服务这样新的基础设施的助推下,从早期的瀑布开发,到中期的敏捷开发以及如今大热的DevOps,互联网正在重塑软件开发模式。
2013年踏入互联网浪潮的张浩,在8年的软件开发中,一一经历了这三段“历史进程”,感受到技术迭代更新背后的魅力。
瀑布开发,漫长而又痛苦
张浩的开发经验丰富,既在中兴做过大数据分析系统的开发,也在富士通参与过安卓底层系统的研发工作。
2013年,张浩投身互联网大潮,陆陆续续做了联通定制应用以及一些政府定制项目的研发。
回忆起当年做安卓开发,张浩觉得万分“痛苦”,憧憬着“如果按一个键就把整个流程处理掉”的美好愿景。
彼时的软件开发迭代周期非常漫长,项目规划起步半年起。由于涉及到系统底层代码,每修改一次查看预览都需要编译整个Android系统,雪上加霜的是当时他们还缺少编译服务器,编译一下又是半天起步,非常影响开发效率。
后来有了编译服务器,虽然速度从半天缩短到2小时,但由于编译服务器是环境复杂的Linux,团队只有一人会操作。“一旦他休息,大家都没法验证自己的代码,更别提部署。”
这也是做Android开发最痛苦的阶段,然而编译的繁琐只是第一关,后面还有开发周期的问题。
互联网早期的软件开发是瀑布开发模型,在需求评审阶段,产品经理给到的是完整、清晰、固定的需求,研发人员只要根据需求在约定的时间点进行交差即可,迭代的频率可能是1月1次,也可能是1个季度1次。
在这种开发模式下,研发人员聚焦于功能开发,完成后交付测试团队进行测试。测试团队经过反复的测试与问题修复后,交付运维团队进行上线,此后生产环境的可用性稳定性等工作全由运维负责。
看似一马平川的开发模式背后却有不少痢疾:需求不能快速得到验证,团队花费半年的时间开发出来的东西可能早已经不适合市场了,或者在开发阶段研发需求理解不到位,等到后期验证时发现有问题再去做调整耽误整体工期。
这种“能用、能解决问题即可”的开发模式显然与后期互联网的短平快格格不入,张浩意识到这一点后,将眼光投向了敏捷开发。
互联网节奏下,从敏捷开发到DevOps
此时已经到了移动互联网的红利初期,业务开发的关注点向着“好用、好玩”转变,开发模式也渐渐演变为敏捷开发模型。
敏捷开发模型面对的是频繁的需求变化,要求快速开发。
张浩提到,敏捷开发比较流行的实际案例是Scrum、XP极限编程。在新迭代(一般2-6周)开始前,产品经理将需求拆分成具体的开发任务,研发人员认领人物,每日站会进行任务的review,直到开发完成,发布新的可用版本。
然而,敏捷开发依然很难跟上互联网乃至新技术的步伐。
《中国互联网发展报告2020》中提到,截至2019年底,我国移动互联网用户规模达13.19亿。移动互联网跑马圈地的红利期渐渐消失,互联网企业之间的竞争也愈加激烈。当同一块蛋糕很多人来抢,快速迭代产品占领市场、占据用户心智成为各互联网公司的目标。
为了实现快速交付,应对市场变化和用户需求,此时的开发模型演变成DevOps:持续开发、持续集成、持续测试、持续部署、持续监控,每一次代码的改动都触发一次校验,每天每时每刻都可进行新版本的上线。
虽然DevOps市场需求显现,但很多团队对如何选择DevOps工具和如何开展DevOps实践没有清晰的认知。
张浩强调,相比于传统软件模式,公有云服务模式成为企业快速实践DevOps的优先选择。
DevCloud的魅力
恰巧在2019年这一年,一个特殊的机会,张浩接触到了华为云DevCloud,当时他所在的公司引入DevCloud对所有项目进行升级管理。
DevCloud是集华为30年研发实践和理念,打造的全云化研发场景。开发、测试、部署、运维、运营等一切研发活动都在云中完成,全面支撑落地DevOps。
这段升级经历带给张浩最大的感触是,“我们的开发进度一下子提升了一个台阶。”
以前是开发人员在自己电脑上打包再远程连接到服务器去部署,整个项目部署完大概需要半小时到一小时,如果同时部署多台服务器,半天时间就浪费了,而且还时不时会碰到开发者不小心把测试代码部署到服务器上的情况。
整个项目管理迁移到华为云上后,所有开发者对用户需求更明确,也不容易遗漏bug。而且云上的自动部署不仅节省时间,还杜绝了开发者将自己本地测试代码部署到服务器的情况。整个开发流程从需求设计、开发编程,再到测试、bug修复、发布运营形成了一个完整的闭环。
有着十多年开发经验的张浩,叹服于DevCloud带来的开发效率的极大提升。
“从需求下发、代码提交、编译构建、测试与验证到部署与运维,DevCloud提供了软件研发托管运维端到端的支持。”
在他看来,有云厂商的推动,DevOps势头会越来越猛。一方面云厂商在不断吸引和转化自身云平台的用户使用其DevOps服务,另一方面也在不断加强市场教育培育。预计未来1到2年,DevOps的企业级用户和个人开发者数量将呈现高速增长态势。