无服务器开发福音:“胶水”代码自动完成工具

原创
2022/12/14 10:52
阅读数 188

大型软件动辄拥有上亿行的代码。当我们尝试去问,为什么会有这么多代码的时候,一个可能的原因是“胶水”代码的存在。

近日,亚马逊副总裁兼首席技术官 Werner 在 2022 re:Invent全球大会主题演讲中也提到“胶水”代码的概念。所谓“胶水”代码,就是互不兼容的模块间(接口不同、语言不同等),需要写一些代码做连接才能正常工作。这类代码对业务没有任何价值,纯粹是软件研发过程中的副产物。

在应用开发中,写“胶水”代码经常让开发人员深恶痛绝。“胶水”代码不发挥实际作用,因此也常常被认为是不重要的。但实际上,这个耗费开发人员不少精力的部分发挥着链接作用,所以代码质量对整个软件的影响也非常大。并且,“胶水”代码广泛存在在许多技术栈中。

比如,随着基础设施抽象化趋势的明朗,构建抽象层所需要的大量开发工具、部署工具、调试工具和监控工具等等之间的衔接,就需要用到“胶水”代码。

抽象层,也真是亚马逊科技所有构想的核心——无服务器技术中重要的一环。无服务器应用虽然很美化,但是无服务器应用的创新有一定的门槛。 为了给云时代的开发者提供更优质的开发体验,亚马逊云科技在 2022 re:Invent 全球大会上发布了相关工具,来帮助开发者自动完成“胶水”代码的开发,以及无服务器应用的构建。

  • Amazon EventBridge Pipes:这是一项工作流服务,它提供一种简单高效的方式,创建事件生产者和事件消费者之间的集成。 

在无服务器应用开发中,事件是一个重要的概念,无服务器应用是由事件驱动。例如,一个聊天机器人的无服务器应用。当有用户发起聊天时,便是一个事件,由这个事件触发后台应用程序。事件管理是无服务器应用的一项重要工作。为了管理无服务器应用的大量事件,亚马逊云科技此前提供了 Amazon EventBridge 服务,它 是一种无服务器事件总线,供开发人员接收、筛选、转换、路由和交付事件。

新推出的 Amazon EventBridge Pipes 是 Amazon EventBridge 的一项新功能,它实现对事件产生者和事件消费者的点对点流程,自动完成模块集成,不需要编写“胶水”代码。开发人员只需要选择事件源和事件目标,Amazon EventBridge Pipes 就可以自动创建工作流管道,实现模块集成。 

  • Amazon CodeCatalyst(预览版)。它是一体化的软件开发服务,汇集了在亚马逊云科技之上规划、编码、构建、测试和部署应用程序所需的工具,为软件开发团队提供集成化的项目体验,加快在亚马逊云科技之上构建和交付软件,不用多花时间进行项目基础性工作。

Amazon CodeCatalyst的功能包括项目资源蓝图、统一的开发环境、项目看板等等。它可以极大地提供团队协作效率。通过一封电子邮件就可以邀请他人进行项目协作,开发人员还可以利用Amazon CodeCatalyst方便地项目资源。 

项目资源蓝图包括启动代码、示例代码和云服务配置的最佳实践,降低新手或新加入项目开发人员的学习曲线。Amazon CodeCatalyst的另外一大特色是,它集成了GitHub 和 Jira等第三方工具,开发团队可以根据自己的习惯选择是否用第三方开发工具。

  • Amazon Application Composer(预览版)。这是一款应用程序编写器,它可以帮助开发人员更快地构建无服务器应用程序。开发人员在基于浏览器的画布上,将云服务拖放到应用程序架构并进行连接,Amazon Application Composer负责维护基础设施相关的代码,并为每项服务完成集成配置,让开发人员专注于构建应用程序。开发人员也可以导入现有的基础设施部署模板,加快项目构建。

Amazon Application Composer进一步为开发人员降低门槛,可以在可视化的界面上快速学习无服务器开发,而且免去了其中一些基础性的工作。

对于此次亚马逊云科技推出的新产品,Forrester 副总裁兼研究总监戴鲲评论道:“Forrester 认为,在持续动荡的全球宏观经济环境下,广大企业客户亟需构建兼具韧性、自适应性和创造性的适应未来的技术战略。亚马逊云科技在今 年re:Invent 大会上的产品与服务发布不仅一如既往地贯彻自身以客户为中心的长期主义,而且持续彰显其作为全球公有云基础设施与开发平台市场领导者的前瞻性技术视野与快速产品创新能力。Amazon Application Composer 实现了对无服务应用从架构模型到部署配置的简化管理,为全球企业客户进一步加速创新并最终适应未来提供了更多可能。”

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部