Рабочая ИТ-инфраструктура состоит не только из серверов, хранилищ данных и всевозможных средств мониторинга и балансировщиков нагрузки. Существует также минимальное количество прикладных задач, без решения которых не обойдётся ни одна организация. К таковым можно отнести внутреннюю организацию службы почтовой рассылки и оперативного оповещения, а также поиска по корпоративным данным и проектирования рабочих процессов. В последнее время в связи с распространением медиа-информации (в частности, обучающих видеоуроков) актуальной становится также конвертация мультимедийных данных в нужные форматы — например, более компактные для мобильных носителей, высококачественные для воспроизведения на широкоформатных мониторах и т. п. Подобный набор прикладных задач реализуется линейкой облачных сервисов Amazon, объединённых в группу App Services.
Организуем списки почтовой рассылки
Сервис Amazon Simple Email Service (SES) позволяет организовывать рассылку э-писем (только в режиме отправки клиентам). На основе SES удобно разворачивать службы новостных и корпоративных подписок, системы автоматического подтверждения заказа и т. п. Amazon SES фактически работает как SMTP-сервер, но чем тогда он отличается, например, от аналогичной службы интернет-провайдера? Многим пользователям знакомы проблемы с провайдерами, которые, перестраховываясь, зачастую блокируют полезную почту, и во избежание спама не позволяют массово отправлять письма. А SES — это независимая облачная система, которая легко масштабируется до сотен тысяч отправляемых писем в секунду. Кроме того, предоставляется API, с помощью которого отправка писем возможна непосредственно из приложения, в обход официального SMTP-сервера. Вдобавок SES умеет работать и как обычный почтовый сервер, причём настраивается он таким образом, что сотрудникам компании не потребуется менять свои текущие логины и пароли к внутреннему SMTP-серверу. При этом реализуется хорошая обратная связь — администратор SES может получать информацию о недошедших письмах, или почте, которую пользователи помечают как спам.
Отправка почты возможна непосредственно из консоли SES, через SMTP-интерфейс или программным путём. Для ручной отправки надо подготовить верифицированные э-адреса — в консоли SES, кнопкой Verify a New Email Address (на указанный адрес будет выслано тестовое сообщение), после чего можно отправлять почту между этими верифицированными адресами кнопкой Send a Test Message (рис. 1). В подобном исходном состоянии SES работает как своеобразная “песочница”, ограничивающая массовую рассылку во избежание спама. Для получения полного доступа к сервису надо отправить в Amazon официальный запрос, который будет обработан в течение одного рабочего дня.
В бесплатном режиме можно рассылать 2000 писем ежесуточно, не забывая о ежемесячном лимите трафика 15 Гб. Дополнительно за каждую тысячу отправленных писем надо будет заплатить 10 центов и по 12 центов за каждый гигабайт прикреплённых к письмам файлов.
Принуждение к ознакомлению
Сервис Amazon Simple Notification Service (SNS) предназначен для принудительной (push) поставки оперативных сообщений на мобильные гаджеты (iPhone, Android, Kindle Fire) и умные устройства, подключённые к Интернету. SNS также умеет рассылать SMS-сообщения и э-письма через HTTP или с помощью сервиса очередей Amazon SQS (см. ниже).
Для работы SNS требуется создать топики (каналы связи между провайдером сообщений и подписчиками) и при необходимости внести изменения в мобильные приложения, которые смогут получать информационные оповещения по этим каналам (для этого потребуются полномочия разработчика, специфичные для каждой целевой платформы; рис. 2). После того как топик сформирован, ему добавляются подписчики (кнопка Create Subscription). Топик поддерживает несколько механизмов передачи (HTTP, э-почта, SMS, SQS, прикладное приложение; рис. 3). Если, например, выбрать вариант с почтой, то подписчик получит запрос на подтверждение подписки с возможностью отказа от неё в любой момент. Рассылка сообщений через топик всем его подписчикам выполняется выбором нужного топика и выполнением команды Publish. Консоль выведет окно, в котором указывается заголовок сообщения и текст содержимого (рис. 4). После нажатия Publish Message сообщение мгновенно отправится всем подписчикам. В дальнейшем командами меню консоли любой топик можно откорректировать и удалить.
Рассылка 100 SMS'ок обойдётся в 75 центов, 100 тыс. э-писем — в 2 долл., 1 млн. HTTP- и мобильных уведомлений — в 1 долл. Дополнительно потребуется заплатить около 10 центов за каждый гигабайт исходящего трафика.
Развёртываем систему корпоративного обмена сообщениями
Если планируется частая рассылка множества разнотипных сообщений, вести подобный процесс вручную будет неудобно. Сервис Amazon Simple Queue Service (SQS) позволяет создать и сопровождать очереди отложенных сообщений, контролируя процесс отправки и приёма информации, что востребовано не только в сервисах рассылки, но и на уровне всей ИТ-инфраструктуры, которая часто строится по модели управления событиями.
При создании очереди из консоли задаются ключевые временные параметры (рис. 5): таймаут сообщения, время его запасного хранения, максимальный размер в килобайтах, время задержки отправки и ожидания отклика клиента на сообщение. В любую из очередей можно заносить сообщения из консоли командой Send Message, а также просматривать и удалять имеющиеся сообщения (View/Delete Message). В режиме View сообщения фактически доставляются конечному потребителю (в данном случае — консоли; рис. 6), процесс поставки демонстрируется жёлтой полоской в нижней части окна. Все эти функции доступны и через программный интерфейс.
SQS можно связывать с топиками сервиса SNS. Этот подход удобен тем, что в таком случае сообщения поставляются мгновенно тем пользователям, которые в этом непосредственно заинтересованы, и при этом помещаются в очередь, откуда могут быть востребованы приложениями позднее.
1 млн. запросов к очередям SQS стоит 50 центов.
Выстраиваем workflows
Оригинальный сервис Amazon Simple Workflow Service (SWF) позволяет проектировать и разрабатывать масштабируемые облачные приложения с помощью своеобразных блок-схем рабочих потоков. SWF гарантирует целостность моделируемого приложения, позволяя сосредоточиться на его бизнес-логике. Типовая SWF-программа состоит из отдельных задач, которые связываются друг с другом, а их выполнение в параллельной среде поддерживается автоматически.
Использование SWF начинается с формирования домена, в котором будут размещаться приложения. Этот домен надо зарегистрировать, для чего вводится время “жизни” рабочих потоков (workflows). В рамках домена формируются типы рабочих потоков, на основании которых будут создаваться конкретные задачи, и типы обработчиков (activities), которые обрабатывают данные, поступающие от потоков. SWF — это мощный инструмент, позволяющий как без программирования, так и с использованием сред разработки решать немалое количество типовых корпоративных задач (например, загрузку или конвертацию данных). В один цент обойдутся каждые сто запусков рабочих потоков, в цент в сутки — нахождение нескольких тысяч этих процессов в дежурном состоянии.
Внедряем корпоративный поиск
Немалое число корпоративных задач связано с поиском нужных данных в больших массивах. Этот процесс можно упростить, загрузив информацию в облако Amazon и воспользовавшись готовым механизмом CloudSearch, автоматически индексирующим поступившие данные. Каждый проект поиска выделяется в отдельный домен с оригинальными настройками. В ходе создания домена будет предложено определить источник данных для анализа (рис. 7): локальные данные на ПК пользователя, объекты из хранилища S3 и таблиц DynamoDB или вручную сконфигурированные поставщики (например, файлы в текстовом формате). Для работы с поиском потребуется дополнительно задать политику доступа (рис. 8), после чего домен в облаке будет формироваться примерно в течение получаса.
Сервис предоставляет программный REST-интерфейс для выполнения поиска по структурированным и текстовым документам с возможностью создания логических условий в запросе, управления документами (добавление, замена, удаление), а также отдельный API для конфигурирования самих доменов поиска и управления ими. Самые популярные функции можно также выполнять из консоли, просматривать статистику, выявлять наиболее часто запрашиваемые документы и популярные запросы, настраивать схемы индексации (сама индексация ведётся автоматически), формировать список игнорируемых слов (например, предлогов и артиклей), синонимов и т. д. В консоли поддерживается и сам поиск: по ключевым словам, которые можно увязывать логическими условиями, будет выдан список найденных документов (рис. 9).
Цена сервиса зависит от объёма индексируемых документов: CloudSearch пытается определить, какой объем ОЗУ может понадобиться, чтобы из соображений быстродействия хранить в нем основную часть индексов, и подберёт подходящую конфигурацию виртуального сервера. Стоимость эксплуатации в зависимости от мощности сервера будет колебаться от 0,115 до 1,27 долл. в час. Со счёта также спишется 0,98 долл. за каждую индексацию гигабайта данных, размещённого внутри поискового домена (такая индексация выполняется, как правило, при добавлении новых документов в домен).
Конвертируем видео в облаке
Преобразование форматов медийных файлов, хранящихся в Amazon S3, выполняет сервис Amazon Elastic Transcoder. Процесс перекодировки происходит под управлением конвейеров (pipelines) — они нужны, чтобы разделять работу по приоритетам. Непосредственно преобразованием занимаются задачи (jobs), которые запускаются конвейерами. Одна задача работает всегда с одним медийным файлом. Для удобства сервис предлагает набор шаблонов конвертации (presets), которые привязываются к задачам (рис. 10). Эти “пресеты” также можно формировать самостоятельно.
Типичный конвейер в процессе создания запрашивает входной, выходной и промежуточный хранилища S3, после чего формируются задачи для него. Задача запрашивает название входного файла из указанного “ведра” S3 (рис. 11), дополнительно можно указать параметры результата: частоту кадров, пропорции видеоизображения, повороты видео и т. д. После создания задача запускается на исполнение. Так, широкоформатный видеофайл в формате mp4 размером 740 Мб преобразовывался в формат Generic 720p, типовой для большинства популярных видеохостингов, в течение примерно 10 мин (финальный размер получился 104 Мб). Главный недостаток Elastic Transcoder — это ограниченное число поддерживаемых кодеков (для видео — H.264 и vp8, для аудио — mp3, vorbis и AAC).
Деньги взимаются только за реально преобразованные файлы: каждая минута стандартного преобразуемого видео обойдётся в 1,7 цента, а минута HD-видео (к которому хитрые менеджеры Amazon отнесли и формат 720p) в два раза дороже. Преобразование аудиозаписей стоит 0,00522 долл./мин.