К книге
Invent and Wander. Избранные статьи создателя Amazon Джеффа БезосаЧасть 1 Послания акционерам. Основные инструменты (2010)
32%
Часть 1 Послания акционерам. Основные инструменты (2010)
16

Случайные леса, наивный байесовский классификатор, RESTful сервисы, gossip-протоколы, согласованность в конечном счете, сегментация данных, антиэнтропия, Византийский кворум, стирающий код, векторные часы: заглянув на некоторые собрания Amazon, вы можете на мгновение подумать, что попали на лекцию по информатике.

Загляните в современный учебник по архитектуре программного обеспечения, и вы найдете лишь несколько шаблонов, которые мы не применяем в Amazon. Мы используем высокопроизводительные транзакционные системы, сложный рендеринг и кеширование объектов, системы документооборота и массового обслуживания, бизнес-аналитику и анализ данных, машинное обучение и распознавание образов, нейронные сети и вероятностное принятие решений, а также широкий спектр других методов. И хотя многие из наших систем основаны на новейших исследованиях в области компьютерных наук, этого часто бывает недостаточно: нашим архитекторам и инженерам приходится исследовать направления, еще не попавшие в поле зрения академической науки. Многие проблемы, с которыми мы сталкиваемся, не имеют хрестоматийных решений, и поэтому мы вынуждены – к счастью – изобретать новые подходы.

Наши технологии реализуются почти исключительно как сервисы: каждый из них реализует небольшую часть логики и инкапсулирует данные, необходимые для его работы. Единственный доступ к их функционалу можно получить только с помощью специально разработанных интерфейсов. Такой подход снижает побочные эффекты и позволяет каждому сервису развиваться в собственном темпе, не влияя на другие компоненты общей системы. Сервис-ориентированная архитектура – или SOA – является фундаментальным шаблоном проектирования для технологий Amazon. Благодаря продуманной и дальновидной команде инженеров и архитекторов данный подход был применен в Amazon задолго до того, как SOA стала модным словом в отрасли. Наша платформа электронной коммерции состоит из объединения сотен программных сервисов, работающих согласованно и обеспечивающих функции от рекомендаций до выполнения заказов и отслеживания запасов. Например, чтобы создать для клиента страницу сведений о продукте на Amazon.com, нашему программному обеспечению требуется от двух до трех сотен сервисов, – тогда можно представить высоко персонализированный опыт для конкретного клиента.

Управление состоянием – сердце любой системы, которой суждено вырасти до очень больших размеров. Много лет назад требования Amazon достигли точки, когда многие из наших систем больше не могли обслуживать никакие коммерческие решения: наши ключевые сервисы обработки данных хранят много петабайт данных и обрабатывают миллионы запросов в секунду. Чтобы удовлетворить такие необычные требования, мы разработали несколько альтернативных, специально созданных решений для хранения данных, включая нашу собственную key-value базу данных и хранилище одной таблицы. В своих изобретениях мы в значительной степени опирались на основные принципы, которые используются при построении распределенных систем, а также на принципы, рекомендуемые сообществами специалистов по базам данных. Созданные нами системы хранения демонстрируют исключительную масштабируемость, сохраняя при этом жесткий контроль над производительностью, доступностью и стоимостью. Для достижения таких сверхмасштабных свойств системы используют новый подход к управлению обновлением данных: ослабляя требования к синхронизации обновлений, которые должны распространяться на большое количество реплик, они способны выживать в самых жестких условиях высокой производительности и доступности. Эти имплементации основаны на концепции согласованности в конечном счете. Достижения инженеров Amazon в области управления данными стали отправной точкой для создания архитектур, лежащих в основе облачных сервисов хранения и управления данными, предлагаемых Amazon Web Services (AWS). К примеру, основная архитектура нашего сервиса хранения объектов Simple Storage Service, сервиса блочного хранилища Elastic Block Store и простого варианта хранилища для баз данных SimpleDB базируются на уникальных технологиях Amazon.

Другие области бизнеса Amazon сталкиваются с аналогичными сложными проблемами обработки данных и принятия решений, такими как подготовка и категоризация данных о продуктах, прогнозирование спроса, распределение запасов и обнаружение мошенничества. Системы на основе правил могут успешно применяться, но со временем становятся непрочными и неудобными в обслуживании. Во многих случаях передовые методы машинного обучения обеспечивают более точную классификацию и способны самостоятельно адаптироваться к изменяющимся условиям. Например, наша поисковая система использует интеллектуальный анализ данных и алгоритмы машинного обучения, которые работают в фоновом режиме для построения тематических моделей, а мы применяем алгоритмы извлечения информации для идентификации характеристик и извлечения сути из неструктурированных описаний, что позволяет клиентам сузить поиск и быстро найти нужный продукт. Мы учитываем большое количество факторов релевантности поиска, чтобы спрогнозировать вероятность заинтересованности потребителя и оптимизировать ранжирование результатов. Разнообразие продуктов требует, чтобы мы использовали современные регрессионные методы, такие как обученные случайные леса и деревья решений, чтобы гибко включать тысячи характеристик продукта во время ранжирования. Каков конечный результат работы закулисного программного обеспечения? Быстрые и точные результаты поиска, которые помогут вам найти желаемое.

Все усилия, вкладываемые нами в технологию, значили бы гораздо меньше, если бы она оставалась в стенах какого-нибудь отдела исследований и разработок, но это не наш подход. Все наши команды, бизнес-процессы, принятие решений и отношение к инновациям пропитаны технологией во всех подразделениях компании. Она глубоко интегрирована во все, что мы делаем.

Одним из примеров является Whispersync, наш сервис Kindle, предназначенный для обеспечения того, чтобы везде, где бы вы ни находились, независимо от того, какие устройства у вас есть с собой, вы могли получить доступ к своей библиотеке для чтения и ко всем сделанным заметкам и закладкам, синхронизированным между устройствами Kindle и мобильными приложениями. Техническая задача состоит в том, чтобы сделать это реальностью для миллионов владельцев Kindle, живущих в более чем ста странах по всему миру, с сотнями миллионов книг и сотнями типов устройств, – с надежным доступом 24/7. В основе Whispersync лежат CRDT (реплицированные хранилища данных с согласованностью в конечном счете) с детализированным разрешением конфликтов приложений, которые справляются с изоляцией устройств, длящейся неделями или дольше. Конечно, мы скрываем от вас, как пользователя Kindle, саму технологию. Поэтому, открывая свой Kindle, вы попадаете на нужную страницу благодаря синхронизации. Перефразируя Артура Кларка, это неотличимо от магии, как и любая достаточно продвинутая технология.

Теперь, если глаза некоторых владельцев акций, послушно читающих мое письмо, уже остекленели, я разбужу вас, отметив, что, по моему мнению, мы не просто так используем описанные методы – они ведут прямо к свободному денежному потоку.

Мы живем в эпоху невероятного увеличения скорости соединения, дискового пространства и вычислительной мощности, которые продолжают быстро дешеветь. В нашей команде работают одни из самых продвинутых технологов в мире, они помогают решать задачи, стоящие на грани возможного сегодня. Как я уже неоднократно говорил, у нас есть непоколебимая уверенность в том, что долгосрочные интересы владельцев акций полностью совпадают с интересами клиентов.

И нам это нравится. Изобретательность заложена в наших генах, а технология, которой мы владеем, – основной инструмент для развития и совершенствования каждого аспекта обслуживания, предоставляемого клиентам. Нам еще многому предстоит научиться, и я надеюсь, что мы и дальше будем получать от процесса огромное удовольствие. Я очень горжусь тем, что являюсь частью такой команды.

Это все еще День 1.

Предыдущая главаГлава 16 из 50Следующая глава