供应商如何应对复杂性
谷歌云的首席开发倡导者Kelsey Hightower与云软件行业的许多同行一样,将开发者当前可用的众多选择级别视为“礼物和诅咒”。
“礼物”是指开发者拥有几乎无限的技术目录的可用性来构建,而“诅咒”是指开发者在他们的工作流程中还要面对基础设施的问题。目前,随着许多供应商专注于托管服务和抽象化,事情似乎有了截然不同的变化。在一切都碎片化后,我们是否应该进行大整合?
Hightower说:“这个职业不仅仅是编写代码,这只是达到目的的手段,也许我们已经构建了足够多的东西,可以暂停构建新事物,而去让我们已有的技术更成熟,并好好地使用他们。也许这就是我们在过去十年中看到的 DevOps 和协作发展的圆满结果。”
为了应对这种复杂性,市场正在通过不断增长的武断性服务、托管选项、框架、资源库和平台列表,帮助开发者应对复杂的环境。
O'Grady在2020年的一篇博文中写道:“当然,没有供应商能够提供所有必要的部件,未来也不可能。即使是拥有最多样化的应用程序组合和前所未有的上新节奏的AWS,也无法满足每个开发者的需求,亦无法涵盖所有相关的开发者社区。”
话虽如此,O'Grady在另一篇文章中写道:“有充分的证据表明,我们不再为难买家和开发者,不再让他们承担挑选原语和从头开始构建的任务。如果云的第一个时代是由原语定义的,那么它的时代即将结束。下一个时代可能由自计算行业成立以来就有的、我们建立在原语上的抽象思维来定义。”
虽然事实证明,将这些原语组装到连贯的内部平台中对于许多工程主导的企业来说是一种成功的解决方法,但更传统的企业还是还会找供应商来帮助他们减轻这种复杂性。
Kubernetes联合创始人、现VMware研发副总裁Craig McLuckie在接受采访时表示:“复杂性不是问题,问题是开发环境的反复无常。”他认为自己的角色是寻找方法“使开发者的生活更轻松,以应对由工具链的碎片化和高度可扩展系统导致的日益复杂的环境。”
MongoDB的推广者Matt Asay最近表示,“如今关于云的现状是看谁能最好地集成多样的云服务。云会变得更加精彩,确切地说,会变得单一乏味。”
需要机械同感
如果我们处于极简化的边缘,我们是否会失去作为软件开发者的本质?
正如传奇的英国赛车手Jackie Stewart所说:“要成为一名合格的赛车手,你不必成为一名工程师,但你必须要有机械同感。”简单来说,要真正做到出色,你必须了解你正在操作的机器。
虽然不能奢望现代软件开发者能完全对他们构建的复杂、可扩展的分布式系统产生机械同感,但他们可以在理解的过程中尽可能多地掌握要素。
“开发者也是系统人员。我们愿意去了解,从裸机到我们正在构建的架构中,系统是如何工作的。但与此同时,也有很多领域是你没必要去深入探究的。”微软的Silver说。
许多开发者和其团队的任务是确定哪些是他们专业知识中最有价值的地方,以及哪些在做多余的工作中被浪费了。顾问Simpson说:“我们最大的希望是让公司认识到这个问题,并努力让开发者摆脱对机械工作的担忧,使他们回到他们最擅长的软件构建上来。”
软件开发者从来没有面对过比今天更多的复杂性和可选项,而且也从来没有这么多的选择去抽象化,这取决于你和你的企业在追求目标时可以承受多少复杂性了。
作者:Scott Carey 是 IDG UK Enterprise Titles 的组编辑,主要为 InfoWorld 撰稿。
原文网址:https://www.infoworld.com/article/3639050/complexity-is-killing-software-developers.html