1.选择性地可伸缩性和并发性 Serverless功能使管理应用程序的并发性和可伸缩性变得容易。在微服务架构中,我们充分利用了这一点,每个微服务都可以根据需要具有自己的并发/可伸缩性设置。
这是有价值的:减轻DDoS攻击的可能性,减少无法控制的云账单的财务风险,更好地分配资源等等。
2.细粒度的资源分配 通过选择性的可伸缩性和并发性,可以对资源分配优先级进行详细控制。
每个(微)服务可以根据其需求和目的具有不同级别的内存分配。面向客户的服务可以分配更高的内存,因为它将有助于缩短执行时间,提高响应速度。可以通过优化的内存设置来部署对延迟不敏感的内部服务。
存储机制也是如此,DynamoDB或Aurora Serverless等数据库可以根据(微)服务的需求而具有不同级别的容量分配。
3.松耦合 这是微服务的基本属性,这样它可以使具有不同用途的系统组件更容易解耦。
4.支持多运行时环境 Serverless功能配置,部署和执行的简便性为基于多个运行时的系统提供了可能性。
尽管Node.js是后端Web应用程序中最流行的技术之一,但它不可能成为每个任务的最佳工具。但,对于数据密集型任务,预测分析和任何形式的机器学习,Python可能会成为你的选择。专用平台(例如SageMaker)则更适合于大型项目。
借助Serverless基础架构,在运维方面,你无需再花额外的精力就可以为常规后端项目选择Node.js,为数据密集型选择Python。当然,这将在代码维护和团队管理方面增加一些工作。
5.开发团队的独立性 不同的开发人员或团队可以在各自的(微)服务上工作,修复错误,扩展功能等。
AWS SAM,Serverless之类的工具使得在操作方面也具有更大的独立性。 AWS CDK constructs 可实现更大的独立性,而无需牺牲更高级别的质量和运维标准。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。