Может быть, стоит взглянуть на интернет-гигантов.Amazon и eBay известны сервис-ориентированным подходом.Это интернет-гиганты, которые делят все на услуги.
ebay : Рэнди Шоуп объясняет ряд лучших практик на eBay по созданию крупномасштабных веб-сайтов, например, в этой презентации о Архитектурных принципах eBay и соответствующих статья об уроках от eBay .Ebay разделы все.Каждая проблема разбита на управляемые куски в нескольких измерениях по данным, нагрузке и / или схеме использования.Два основных шаблона разбиения: (1) функциональная сегментация и (2) горизонтальное разделение, уровень базы данных и приложения сначала сегментируется по функциональности, а второй - горизонтально.Рэнди говорит, что функциональная сегментация и функциональная декомпозиция являются наиболее важным методом, связанные части функциональности связаны друг с другом, а несвязанные части функциональности - отдельно.Пол Дикс говорит то же самое в своей книге: «Как правило, вы хотите разделить службы на основе их логической функции». Архитектура Ebay имеет около 200 групп функциональности, называемых «приложениями».Уровень приложений, который работает на 16 000 серверов приложений, в архитектуре ebay разделен на 220 отдельных пулов приложений (продажа, поиск, просмотр товаров, торги, проверка и т. Д.).Уровень базы данных ebay содержит более тысячи различных логических баз данных на 400 хостах, где базы данных сегментированы по функциональным областям.ebay написал свой собственный слой ORM, называемый Data Access Layer (DAL), который занимается разделением базы данных.
Amazon : В Amazon все разделено на службы.Сервис-ориентированная архитектура (SOA) - это фундаментальная абстракция для технологий Amazon. Архитектура Amazon.com не только подразделяется на сервисы, но даже разработчики в Amazon организованы в группы вокруг сервисов.Amazon - это действительно экосистема многих внутренних стартапов, которые имеют свои собственные данные и собственный API.Сервис - это то, что управляется и принадлежит небольшой команде разработчиков. Платформа Amazon.com состоит из сотен сервисов, от примитивных низкоуровневых базовых сервисов (Storage, Compute, Queuing и т. Д.) До агрегированных высокоуровневых сервисов, таких как Identity Management, Content Generation &Discovery Продукт и предложения управления, обработки заказов, платежей или выполнения и обслуживания клиентов.Чтобы создать страницу сведений о продукте для клиента, посещающего Amazon.com, программное обеспечение вызывает от 200 до 300 сервисов, чтобы предоставить персонализированный опыт для этого клиента.
Twitter использует сервисы, которые соответствуютдля различных типов контента, идентификаторов, графиков, URL-адресов и т. д. Он использует Snowflake для генерации идентификаторов. Snowflake - это сетевой сервис для генерации уникальных идентификационных номеров в высоком масштабе.Twitter использует FlockDB в качестве хранилища социальных графов. FlockDB - это распределенная графовая база данных для хранения списков смежности, используемая Twitter.Он использует SpiderDuck в качестве сборщика URL. SpiderDuck извлекает все URL-адреса, которыми обмениваются твиты, в режиме реального времени, анализирует загруженный контент для извлечения интересующих метаданных и делает их доступными для других служб Twitter в течение секунд.