我们已经讨论了IaaS和CaaS,其中只租用基础设施和容器级别的资源。这种范式变革的下一个阶段是仅部署功能并支付运行所需资源的费用。FaaS(功能即服务)比CaaS更低一级,可在云上租用资源。
迄今为止最大的挑战之一是,每当需求发生变化时,整个代码集必须重新部署。当代码发生变化时,仅重新部署更改的代码始终是具有挑战性的,因为总会存在依赖关系。将更大的代码集分解为较小的代码集,即功能,可以在可能的情况下有助于缓解这种挑战。同意,在数据管道中可能很困难,但有这个选项值得利用。
正如其名称所示,FaaS(功能即服务)是关于在云中仅部署功能。这样可以避免我们自己在云中管理基础设施,现在我们只需部署我们的功能,基础设施将由云提供商管理。大多数云提供商都提供FaaS服务。
在敏捷中,大多数时候,我们有多个团队在同一个项目中的不同模块上的孤岛中工作,并且可以处理相同的可交付成果。FaaS在这种方法中非常有用,不同的团队能够在生产中使用CI/CD随时开发和部署其功能。
在CaaS中的同一个例子中,使用多个功能构建了用户身份验证模块,因此能够随时部署功能,进一步细分部署活动并增加灵活性,以便在代码发生变化时每次部署更小的代码片段。