有人说,程序员、开发者是数字经济时代的灵魂工程师,因为我们生活在一个由软件定义一切的时代,无论在哪里都有程序员的影子。埃文斯数据公司2019统计数据显示,全球有2640万名软件开发者,但即便这个数量的开发者还是远远不够用的。根据Gartner的说法,到2021年,应用程序开发的市场需求比交付的IT能力增长多5倍。那么,云计算如何助力开发者提升效率,如何让开发者“以一顶百”,破解开发过程中的种种难题,真正赋能软件开发呢?
软件开发之难
“计算机存在很多种状态,这使得构思、描述和测试都非常困难。软件系统的状态又比计算机的状态多若干个数量级。”软件工程论著《人月神话》中这样描述了软件开发中出现的种种问题和桎梏。
Web开发专家Christian Maioli曾说,代码像意大利面条一样难以维护。软件开发真的不容易,无论怎么样,都需要一行一行地敲代码,而且只要是人写的代码就有可能有Bug,就得打补丁不断修补,效率问题、复杂度问题、一致性问题、可变性问题等,一直困扰着软件开发,所以才有了软件开发人员年纪轻轻就掉头发、发际线靠后的情况。
美团技术学院院长刘江对《中国电子报》记者说:“软件开发之难从来就没有变过,还是那些难题。”
“在中国做软件开发比国外还难,因为中国的平台太多。”Dcloud创始人王安在接受《中国电子报》记者采访时表示,所以开发的应用就面临不同平台的兼容问题。如何提升效率,减少应用开发的时间,让开发周期至少缩短到现在的1/3,是开发效率提升的目标。
“从目前看,最主要的挑战是接口和模型不一致,也就是说不同的云平台能使用的工具是不同的,需要单独开发,很难实现互通。除此之外,平台的安全性、稳定性也有提高的空间,用户的代码开发能力也需进一步提升。”赛迪智库信息化与软件产业研究所软件研究室主任蒲松涛在接受《中国电子报》记者采访时认为。
软件开发因云而变
而云计算时代的到来,给软件开发带来了新的变化,也使得软件开发呈现出一些新的特征。
蒲松涛表示,从开发平台的角度看,正在发生这样的变化:在全球应用开发平台的演进中,全球应用开发平台基础架构呈现出较为明显的特征是从单机架构向SOA架构再向微服务架构的演进态势。从产品及服务形态看,aPaaS也就是应用程序平台及服务展现出较快的发展态势,特别是在中小微企业中正得到越来越多的应用。从开发工具看,应用开发日趋呈现低代码、零代码化的趋势。
“移动云时代,全球开发者工具服务正在发生巨大变革,包括产品体验变革、商业模式变革、技术变革。新一代开放服务的方向,基于持续更新的云知识库的高效开放工具,让开发者更专注于解决问题本身,让技术服务变得更加智能。”CSDN创始人蒋涛认为。
在采访过程中,几乎所有嘉宾都谈及“无服务器模式”,也就说,开发者无需考虑服务器运维、弹性扩容、防DDoS攻击等问题,只专注于业务和开发即可。因为云计算的到来,让无服务器的开发模式成为了可能。
“云和开发者平台,都是帮助开发者降低开发门槛、提升开发效率的生产资料。”阿里云开发者关系总监孟晋宇表示,云通过规模化的方式释放技术红利,解决算得好、算得快、算得便宜的问题,在过去10年得到了飞速发展。云的学习和接入成本大幅下降,上云成为业界趋势。对于开发者来讲,拥抱云技术已经成为必然选择,需要有一套完备的工具和平台帮助他们学会上云、学会在云上开发。
云赋能开发呈现新模式
云计算的到来,究竟带来了哪些与云相关的流行开发模式呢?
其一是低代码开发平台。最近低代码开发非常火热,包括微软、亚马逊AWS、阿里云等都推出了相关的低代码平台和低代码服务,为了尽快跟上低代码的需求,腾讯也收购了一家低代码的创业公司。按照Gartner的预测,到2024年,全球65%的企业都将采用低代码开发模式。
蒲松涛认为:“低代码的好处在于:一是开发门槛低,开发界面简单,用户易于上手;二是开发效率高,有大量的组件和封装接口;三是代码质量较高,通常可使用自动方式生成代码,bug少且可控;四是结构化程度高,易于维护。”
不过尽管低代码好处多多,但它并不是给软件开发者,而是给企业的CIO以及业务人员的。而且低代码也有一些局限,其灵活性不足,组件的功能和种类会对程序开发带来限制,无法支持定制化开发,所以其在特定行业领域的应用会受限。此外,低代码开发的程序与用户原有系统之间的集成会较为困难,同时,低代码开发的程序也存在可靠性和安全性方面的风险,而这种风险往往来源于组件本身,与开发者关系并不大。
其二是“云+IT运维团队”的模式。在这个模式下,企业不用对已有研发体系做很大调整,利用云厂商的IaaS,由IT运维团队将IaaS资源封装成内部研发团队可申请的开发资源,企业开发者以本地研发为主。
孟晋宇认为,这是企业和开发者云上开发的主流路径,这种模式的好处是对开发者的传统开发习惯做了最大程度的保留,但是对协作和运维部署有较大挑战。一是要管得好代码。不同设备上的开发,不同团队之间的协同,版本的控制,项目的管理,都需要协作好。二是要用得好代码。代码的标准化测试,部署的流程,都要花时间精力,因此为了单点项目部署开发测试流程就会浪费时间,需要推流程的标准化和通用性。此外这种模式对于IT运维也提出了较高要求,给中小型创业企业和个人开发者提出门槛要求。
其三是“应用+Serverless云服务”模式。随着云原生概念的普及和火热,主要云厂商在Serverless产品线逐渐丰富,越来越多的初创型企业,可以选择接受新型的云上开发模式,企业和开发者不再需要采购定量定额的云资源,而是开通实时弹性、按量付费的服务,将应用直接部署在这一类服务之上,无需做资源规划,无需做IT运维。这种模式可以使企业和开发者真正在云上开发,从而更好地享受云上资源弹性的优势,并省去运维压力和成本,是很有价值和前景的云+开发者平台的路径。
它的挑战一是要让云上开发的体验和便捷性达到和本地开发相似或同等水平,二是让云的服务尽可能Serverless化,从而更容易在应用开发和部署中被集成。
目前有两类企业在提供“应用+Serverless云服务”的开发服务,一种是由互联网企业腾讯、阿里等提供的如支付宝云开发和小程序云开发平台;另一种是由专门提供云开发平台的中立云开发平台,比如Dcloud提供的uniCloud等。
各路厂商包括传统的软件开发商、云服务商、移动互联网企业等都在从各个维度来加快发力开发者平台,希望进一步降低开发的复杂度,提升开发效率。而云计算的到来,使得我们能够从更多的维度,更好地聚合资源、降低门槛提供了更多的可能性。
就像王安所言,当我们推动新基建,不仅仅是要推动“硬”的数字基建建设,更要推动“软基建”的建设,因为只有不断完善“软基建”建设,才能够真正加快数字经济的发展。