Если вы разрабатываете распределенное приложение для простого масштабирования или просто хотите использовать какое-либо из новых предложений «облачных вычислений» от Amazon, Google или Microsoft, есть некоторые типичные концепции или компоненты, которые вы обычно заканчиваете с помощью:
- распределенное хранилище больших двоичных объектов (он же S3)
- асинхронные, надежные очереди сообщений (также известные как SQS)
- нереляционные / нетранзакционные базы данных (например, SimpleDB, Google BigTable, Azure SQL Services)
- распределенный фоновый рабочий пул
- процессы с пограничным обслуживанием с балансировкой нагрузки, обрабатывающие пользовательские запросы (часто виртуализированные)
- распределенные кэши (как memcached)
- CDN (сеть доставки контента, такая как Akamai)
Теперь, когда речь заходит о разработке и создании эскизов архитектуры, в которой используются такие шаблоны, можно ли использовать какие-либо общепринятые символы? Или даже скачать с некоторыми классными трафаретами Visio? :)
Это не обязательно должна быть формальная система, подобная UML, но я думаю, было бы замечательно, если бы были символы, которые все знают и понимают, как, например, мы обычно использовали формы для баз данных или документов. Я думаю, что было бы важно не смешивать это с традиционными понятиями, такими как обычная файловая система (локальный или сетевой сервер / SAN) или реляционная база данных.
Проще говоря, я хочу иметь возможность сделать некоторые выводы о масштабируемости приложения или проблемах согласованности данных, просто взглянув на обзорную диаграмму архитектуры системы.
Обновление: Большое спасибо за ваши ответы. Мне нравится идея поставить небольшой «символ облака» на традиционные символы. Однако я оставляю эту ветку открытой на тот случай, если кто-то найдет определенные символы (может быть, в книге или около того) - или загрузил несколько развернутых трафаретов Visio;)