如果您设计一个易于横向扩展的分布式应用程序,或者您只想使用亚马逊,谷歌或微软的任何新"云计算"产品,那么您通常最终会使用一些典型的概念或组件:
分布式blob存储(又称S3)
异步,持久的消息队列(又名SQS)
非关系/非事务数据库(如SimpleDB,Google BigTable,Azure SQL服务)
分布式背景工作者池
负载平衡的边缘服务进程处理用户请求(通常是虚拟化的)
分布式缓存(如memcached)
CDN(像Akamai这样的内容交付网络)
现在,在设计和绘制使用这种模式的架构时,我可以使用任何常用的符号吗?甚至可以下载一些很酷的Visio模板?:)
它不一定是像UML这样的正式系统,但我认为如果有每个人都知道和理解的符号会很好,比如我们通常使用数据库或文档的形状.我认为不要将它与普通文件系统(本地或网络服务器/ SAN)或关系数据库等传统概念混淆是很重要的.
简单来说,我希望能够通过查看系统架构概述图得出有关应用程序可伸缩性或数据一致性问题的一些结论.
更新:非常感谢您的回答.我喜欢在传统符号上加上一个小"云符号"的想法.但是我打开这个帖子以防万一有人会找到特定的符号(可能在一本书中) - 或上传一些拉皮条Visio模板;)
这里有两组符号可以很好地映射到云平台中的概念.
对于Windows Azure:http: //davidpallmann.blogspot.com/2011/07/windows-azure-design-patterns-part-1.html(此处下载)
EDIT 2014年2月 ==>以下是微软最近发布的更完整的一套:http ://www.microsoft.com/en-us/download/details.aspx?id = 41937 这是现在用于Windows Azure的最佳选择.
亚马逊网络服务:http: //aws.typepad.com/aws/2011/12/introducing-aws-simple-icons-for-your-architecture-diagrams.html
@markus明显领先于曲线,因为他在这些问题出现之前就已经发布了这个问题.