面向服务设计的全面解析
1. 面向服务设计概述
面向服务设计旨在围绕逻辑功能和业务实践来创建系统。服务应设计为可互操作和可重用的。其目标是将应用程序或系统的各个部分拆分为组件,这样在更新单个组件时,无需对其他所有组件进行测试和验证。不过,实现这些目标通常需要在复杂性和迭代速度之间进行权衡。对于大型成熟应用程序而言,采用整体式风格构建并不合适,有必要将复杂或大型应用程序分割成可单独测试和部署的部分。
1.1 实际应用中的面向服务设计
像 eBay、亚马逊、领英等大型网络公司,都使用多层服务来整合其应用程序。虽然这些环境很多基于 Java,但它们在架构设计方面的优势也可应用于用 Ruby 编写的 Web 应用程序和系统。
以亚马逊为例,其架构充分体现了良好的面向服务设计的优势。当用户访问亚马逊主页时,应用程序会调用 100 多个服务来构建页面。从整体式两层(数据库和 Web 应用程序)架构转向面向服务的方法带来了诸多优势,如可扩展性、隔离性以及开发人员对生产系统的所有权,还改进了流程,提高了组织开发新服务和功能的敏捷性。
亚马逊的内部系统推动了亚马逊网络服务(AWS)平台的发展,AWS 架构的每个部分都作为 Web 服务公开。以下是亚马逊当前的服务:
- S3(简单存储服务):用于存储文件。
- SQS(简单队列服务):基于服务的消息队列。
- SimpleDB:可扩展的基于服务的数据库。
- CloudFront:基于服务的内容分发网络。
- EC2(弹性计算云):用于配置虚拟专用服务器的服务。
AWS 平台是通过服务层公开底层系统组件的一个示例。面向服务设计既可以利用
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



