如果您设计一个易于横向扩展的分布式应用程序,或者您只想利用 Amazon、Google 或 Microsoft 提供的任何新的“云计算”产品,那么您通常最终会使用一些典型的概念或组件:
- 分布式 blob 存储(又名 S3)
- 异步、持久的消息队列(又名 SQS)
- 非关系型/非事务型数据库(如 SimpleDB、Google BigTable、Azure SQL 服务)
- 分布式后台工作池
- 负载平衡的边缘服务进程处理用户请求(通常是虚拟化的)
- 分布式缓存(如 memcached)
- CDN(内容交付网络,如 Akamai)
现在,当涉及到设计和绘制使用这种模式的架构时,我可以使用任何常用的符号吗?或者甚至下载一些很酷的 Visio 模具?:)
它不必是像 UML 这样的正式系统,但我认为如果有每个人都知道和理解的符号会很棒,例如我们有数据库或文档常用的形状。我认为重要的是不要将其与普通文件系统(本地或网络服务器/SAN)或关系数据库等传统概念混为一谈。
简单来说,我希望能够通过看系统架构概览图,就一个应用程序的可扩展性或数据一致性问题得出一些结论。
更新:非常感谢您的回答。我喜欢在传统符号上放置一个小的“云符号”的想法。但是我让这个线程保持打开状态,以防有人会找到特定的符号(可能在一本书左右) - 或者上传了一些拉皮条的 Visio 模板;)