最近,AWS 在一技术系列文章(共 3 篇)中展示了通过构建无服务器后端来加速迭代 Web 应用程序以及跟踪产品需求变化的优势。这些开发方法和架构带来了灵活性,但增加了与云供应商服务的耦合。
AWS 高级开发者布道师 James Beswick 以州立公园的“Happy Path” Web 应用程序为例,解释了这个项目的目标:
本系列介绍如何构建灵活的解决方案来适应用户需求的变化。需求可能会快速发生变化是构建现代Web应用程序所要面临的一个挑战,对于那些正在寻找适合其产品市场的新应用程序来说尤其如此。很多开发团队在一开始只构建满足一组需求的产品,但很快就发现需要构建具有不同特性的产品。
第一个版本允许终端用户上传地图和照片,在后续迭代中添加了更复杂的功能,并转向一个全新的市场——餐馆。代码可以在GitHub存储库中找到,并可以使用AWS无服务器应用程序模型,这是一种用于构建无服务器应用程序的开源框架。
API 层通过调用 Lambda 函数来完成任务,在存储层存储和获取数据,在 Amazon S3 上部署二进制文件,在 Dynamo DB 里存储元数据。业务逻辑被封装在 AWS Step 函数工作流中,Amazon CloudFront 则为最终用户提供内容。
架构总览,来源:https://aws.amazon.com/blogs/compute/using-serverless-backends-to-iterate-quickly-on-web-apps-part-1
第一篇文章介绍了如何部署应用程序、测试上传过程和架构评审。第二篇文章解释了如何使用 AWS Step 函数(一个用于排序 AWS Lambda Function 的无服务器函数编配器),以及如何部署用于调整镜像大小的自定义工作流。在第三篇(也是最后一篇)文章中,作者展示了如何引入更高级的带有自定义分支和镜像调节的工作流。系列文章以一个示例结束,该示例从最初的想法转到一个不一样的市场,并能够重用大部分逻辑。
来源:https://aws.amazon.com/blogs/compute/using-serverless-backends-to-iterate-quickly-on-web-apps-part-1
在另一篇文章中,James Beswick 在分析无服务器应用程序中的业务逻辑流时评论道:
好的无服务器应用程序具有固有的灵活性,可以在用户需求变化时更快地添加新功能。这是因为工作流的各个部分都是专门化的、松散耦合的。这有助于加快迭代开发,还有助于减少在设计发生变化时需要重写的代码数量。
虽然本系列介绍 AWS 技术并依赖于 AWS 的无服务器应用程序模式,但类似的方法可以在任何为无服务器工作流提供功能和编排的云平台上使用。例如,可以使用Azure Durable Function或Cloud Composer(这是谷歌云平台的服务,基于开源的Apache Airflow)来实现迭代。
正如 Nick Gottlieb 所建议的那样,依赖无服务器技术并将开发人员从服务器端工作中抽离出来,并不一定要将服务与云提供商绑定。对于一些开发者来说,迭代速度变慢才是他们更担心的,正如 Lumigo 的开发者布道师 Yan Cui 指出的那样:
在你忙于构建自己的云计算解决方案时,一个比你更快进入市场、迭代速度更快的竞争对手会在亚马逊把你锁在自己的王国之前就把你锁在这个市场领域之外。
原文链接:
Using Serverless Backends to Iterate Quickly on Web Apps
评论