
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
无服务器编程开发随着互联网的不断发展而被越来越多的程序员掌握,今天我们就通过案例分析来简单了解一下,无服务器编程开发实践分析。
广泛采用FaaS的一个先决条件是针对快速而简单的状态管理方法的解决方案,或者一系列解决方案。无服务器计算是一种无状态模式。我们不能假定任何有用的状态存在,即不存在即时执行环境内不同的运行时调用之间的有用状态。一些应用程序在这种限制下依然适用。例如,单纯进行数据转换的消息驱动组件不需要访问外部状态,拥有无限制响应时间需求的WebService组件,其每一次调用时需要连接到一台远程数据库,这种做法也是可以接受的。但是对于其他应用程序来说,这种限制就显得有些不足了。
解决这类不足的一种方案是混合动力系统,即在不同类型的组件里管理状态,而不是执行我们的FaaS代码。比较流行的混合动力方案是通过云端基础设施提供其他服务的前端FaaS功能。我们已经见到了这种类似于API网管的特定上下文逻辑的组件,它们提供了HTTP路由、授权,以及我们经常在的WebService里看到的节流逻辑,采用定义替换配置方式实现。Amazon近也在管理状态的通用方式上露了一手,使用他们的StepFunctions服务,允许团队基于可配置的状态机器定义应用程序。StepFuncations服务本身可能没什么过人之处,但是通常情况下这种无码解决方案是很受欢迎的。
当供应商服务不充足时,对于混合动力系统来说,一种改变方式是团队坚持开发追踪状态的长生命周期组件。这些组件可能被部署在CaaS(容器即组件,Containers-as-a-Service)或者PaaS(平台即组件,Platform-as-a-Service)环境,和FaaS功能协同工作。
这种混合动力系统组合了长期运行的组件逻辑和每一次FaaS功能请求逻辑。另一类做法是完全地聚焦于FaaS功能,让这些FaaS功能超越它们当前执行的环境,极其快速地获取和持久化状态。一种可能的实施方式是确保一个特定的FaaS功能,或者一系列FaaS功能,确保它们拥有类似于Redis这样的外部缓存机制,起到低延时访问作用。通过启动类似于Amazon的same-zoneplancementgroups(置放组群)这样的特性可以做到这一点。虽然这种解决方案较内存/本地磁盘状态方案来说有些延迟,但是很多应用程序会认同这种解决方案。
混合方法的好处是经常被访问的状态可以和逻辑一起保存在环境当中,那样并不复杂,但是可能有点贵,必须要有逻辑网络选址和外部状态。另一方面,一个单纯的FaaS方式的有点是更加一致性的编程模型,外加无服务器带来的更为宽广的伸缩使用和可操作性优势。当前的发展势头显示终混合方式会胜出,但是我们也应该对其他方式开放,比如类似于启用置放群组Lambdas。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。