传统单体应用的拆解首先我们来看下单体应用里面常见的两个编程模型,一种是 UI-driven, 另外一种是 Message-driven。单体应用这种体系结构,客户端可能相对不那么智能,系 统中的许多逻辑(比如身份验证、页面导航、搜索、交易等)由服务器应用程序实现,随着 业务逻辑复杂度的增长,服务端的应用程序会越发膨胀和难以维护。 而在 Message-driven 异步消息处理这种模式中,需要用户实现一个常驻的、弹性 高可用的消费者服务。为了更专注具体业务逻辑的开发,对一个庞大的单体应用进行拆解, 充分利用云服务体系结构是一个非常好的解决方案。在这里,最大的关键是如何为应用程序 的各个组件选择和使用正确的云服务,而通过函数作为粘合剂来串联云上的托管服务,就是 一个非常好的实践。UI-driven 切换到 Serverless 架构以后: 第三方 BaaS 服务取代认证逻辑; 允许客户端通过临时 token 直接访问架构与第三方上的数据子库(BaaS); 宠物商店服务端的逻辑可以转移到客户端中,例如跟踪用户访问,读取数据库转化为可 视视图等,客户端则慢慢转化为单页面应用; CPU 密集型或者需要访问大量数据,比如搜索,使用 FaaS 实现,无需一直运行的 server; 购买功能使用另外一个 FaaS 实现,因为安全原因放在服务端。 Message-driven 切换到 Serverless 架构以后: 与单体应用示例相比,这里改动很小,同时使用 FaaS 功能替换了长期存在的消息消 费者应用程序,消息消费的高可用性交给了云平台去负责。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。