Традиционные методы привлечения подписчиков, которыми ранее пользовались отечественные СМИ, исчерпали себя. Издателям необходимы иные, способные сократить издержки и задействовать новые каналы привлечения подписчиков, инструменты.
Основой таких инструментов должна стать модель непрерывного персонифицированного взаимодействия периодического издания с подписчиком, основанной на цифровой трансформации традиционных бизнес-процессов. Разработанный в компании «Димео» облачный сервис может служить прототипом подобного инструмента как для отдельного периодического издания, так и для издателей группы изданий, и даже подписного агентства будущего. Проект создания прототипа был выполнен в рамках НИОКР по теме «Исследование требований и создание прототипа облачного сервиса подписки, непрерывных коммуникаций и обслуживания читателей — для издателей» при поддержке Фонда содействия развитию малых форм предприятий в научно-технической сфере (fasie.ru).
Ключевым этапом разработки сервиса стал выбор оптимальной платформы разработки и развертывания. Как показало исследование потребностей в области автоматизации редакционной подписки, запросам издателей в данной области отвечает использование типового программного решения, допускающего быстрое внедрение, не требующего значительных первоначальных инвестиций и наличия собственного ИТ-персонала и предусматривающего гибкий выбор задействуемых ИТ-ресурсов, используемого функционала и соответствующего тарифного плана.
Архитектура сервиса
Технически разрабатываемый сервис должен состоять из серверной части, включающей личные кабинеты издателей и подписчиков и автоматизированные рабочие места руководителя, маркетолога, клиентского менеджера, логиста и бухгалтера, а также из интерфейсной части, позволяющей создавать экранные формы для оформления заказов, внедряемые на сайт изданий.
Серверная часть системы представляет собой виртуальную машину с необходимым стеком системного программного обеспечения, размещенного в ЦОД коммерческого провайдера на территории РФ, обеспечивающего необходимый уровень надежности, доступности, независимости от выбранного поставщика и защиты пользовательских данных.
Опрос требований издателей и подписчиков показал, что они, как правило, не предъявляют жестких требований к уровню доступности онлайн-сервиса подписки, допуская отдельные сбои, приводящие к перерывам в обслуживанию длительностью в несколько минут, а также плановые технологические перерывы в обслуживании до 1 часа в ночное время не чаще одного раза в неделю. Таким образом, признан приемлемым уровень недоступности сервиса подписки вследствие сбоев ИТ-инфраструктуры 0,5% (217 минут в месяц, 7,2 минуты в сутки). Такой уровень доступности гарантированно перекрывается предложениями всех рассмотренных провайдеров центров обработки данных.
Программный стек
В рамках проекта было принято решение в качестве инфраструктурного, системного и инструментального программного обеспечения использовать свободное ПО, предоставляемое на условиях публичных лицензий, допускающих его неограниченное и бесплатное использование как на этапе разработки прототипа, так и на этапе их последующей эксплуатации издателями.
В качестве операционной системы выбрана платформа Debian Linux 8, один из самых популярных дистрибутивов GNU/Linux, хорошо протестированный и надежный; обладает наибольшим среди всех дистрибутивов хранилищем пакетов, обеспечивает необходимую стабильность и предсказуемость поведения пакетов.
При выборе технологии виртуализации учитывался тот факт, что функционирование разрабатываемого сервиса подписки не будет связано с исполнением большого количества разнородных приложений и использованием нескольких различных операционных систем. В то же время в перспективе может оказаться актуальной задача выделения самостоятельных экземпляров сервисов подписки отдельных клиентов-издателей и обособления соответствующих ИТ-ресурсов.
С учетом этих факторов было решено отказаться от использования механизма виртуальных машин в пользу контейнерной виртуализации. В дальнейшем было рассмотрено несколько вариантов механизмов контейнеризации — Docker, LXC, systemd-nspawn, Porto, их достоинства и ограничения; проведено ограниченное тестирование по поддерживаемым нагрузкам. Экспертным путем сделан выбор в пользу программного обеспечения Docker. В то же время предполагается необходимым дополнительно проанализировать работу виртуализированного приложения на этапе испытаний прототипа и учесть результаты этого анализа при доработке прототипа по результатам испытаний.
СУБД — MySQL 5.5.54, стабильная и современная версия наиболее популярной в среде разработчиков веб-систем свободной реляционной СУБД. Наряду с этой системой рассматривалось еще несколько вариантов серверов баз данных, прежде всего также получившая значительное распространение свободная СУБД PostgreSQL; по результатам анализа ее использование в целях разработки прототипа системы редакционной подписки было признано избыточным.
Основной язык разработки — PHP, скриптовый язык общего назначения, максимально широко применяемый для разработки веб-приложений. Используемая версия — 5.6.30, последняя версия до новой 7-й, наиболее устойчивая и достаточная для выполнения исследовательских работ, предусмотренных проектом.
В качестве инструментария мониторинга выбрана Zabbix 3.2, свободная система мониторинга и отслеживания состояния сервисов, простая в развертывании, универсальная, совместимая с другими компонентами ПО, используемыми в рамках проекта, и достаточная для его целей.
При разработке активно используется концепция Model-View-Controller, позволяющая разделить данные приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента (модель, представление и контроллер) — в нашем случае, базу данных и файловое хранилище системы, внедряемую на сайты изданий и серверную части системы соответственно; благодаря этому модификация каждого компонента может осуществляться независимо, что существенно для системы, пользовательские интерфейсы которой предполагается внедрять в сайты большого числа разных независимых организаций.
Серверная часть системы будет реализована на языке программирования PHP с использованием Yii 2, объектно-ориентированного компонентного фреймворка с поддержкой парадигмы разработки MVC. Ключевое достоинство Yii — высокая производительность в сравнении с другими фреймворками, написанными на PHP.
Кроме Yii было рассмотрено еще несколько фреймворков, в том числе, такие известные, как Zend Framework и Laravel. Оба этих варианта — зрелые средства разработки, однако Zend Framework в последнее время недостаточно интенсивно развивается, его часто критикуют за громоздкость, а Laravel популярен прежде всего, за рубежом. Yii, в сравнении с ними, — более свежий и динамично развивающийся фреймворк, с большим и активным сообществом, популярный в русскоязычном сообществе, хорошо документирован. Активно развивается.
Несколько слов о выборе программной технологии клиентской части информационной системы.
Экранные формы, предназначенные для внедрения на сайты изданий, технически реализуются как код на языке JavaScript, который порождается автоматически на основании информации об издателе и издании, содержащейся в личном кабинете издателя; этот код передается издателю для внедрения на его сайт.
Необходима максимальная совместимость с браузерами, поддерживающими WebKit. Для более ранних систем предусмотрен режим ограниченной функциональности.
Cредства интеграции существующих информационных систем
Полноценное решение задачи автоматизации бизнес-процессов, связанных с редакционной подпиской, невозможно без эффективной интеграции программной системы, обеспечивающей оформление подписки и последующее обслуживание подписчиков. Особое значение уделялось интеграции сервиса подписки и используемой на предприятии системы бухгалтерского учета.
В силу доминирования на рынке бухучета продуктов компании «1С» было решено ограничиться созданием средств интеграции сервиса подписки с программным обеспечением этой фирмы.
Взаимодействие информационной системы подписки с системой бухгалтерского учета предполагает выполнение как минимум следующих операций:
— синхронизация справочников контрагентов (банковские реквизиты, данные юридических и физических лиц и т. д.);
— синхронизация номенклатуры товаров;
— обмен данными об оплаченных заказах, включая идентификатор заказа, оплаченную сумму и т. д.;
— обмен данными по отгрузкам товаров;
— формирование бухгалтерской документации — товарных и транспортных накладных, счетов-фактур и т. п.
Платформа «1С» предоставляет широкие возможности для интеграции с внешними программами на основе открытых стандартов и протоколов передачи данных (см. http://v8.1c.ru/overview/Term_000000581.htm), включая HTTP- и веб-сервисы обмена данными, которые могут иметь различный формат, в том числе простой текст, JSON, XML, обмен файлами в различных открытых форматах, включая PDF.
Основными механизмами интеграции были выбраны веб-сервисы c обменом XML-данными (по сравнению с другими вариантами это позволяет обмениваться структурированными, самоописываемыми данными, при необходимости гибко меняя и расширяя структуру передаваемых данных), а также передача из «1С» в сервис подписки бухгалтерских документов, сгенерированных по запросу.
Сервис подписки понадобится интегрировать с различными платежными сервисами. В рамках прототипа реализовано подключение одного платежного сервиса (например, «Яндекс.Касса») с последующим расширением выбора вариантов.
Вспомогательные внешние сервисы, которые планируется сопрягать с сервисом подписки (например, сервисы почтовых рассылок, сервисы работы с почтовыми адресами и т. п.) как правило, имеют хорошо спроектированные документированные API, а потому их интеграция не должна вызвать значительных проблем.
Большинство издателей использует либо простейшие «самописные» программы почтовых рассылок, либо такие сервисы, как MailChimp, UniSender, GetResponse, Digital Contact. Внешние сервисы имеют API, схожие в части базового функционала. В рамках работы над прототипом было принято решение спроектировать и реализовать собственный сервис рассылок с минимальной функциональностью, интегрируемый с сервисом подписки на уровне API, который издатели в дальнейшем смогут заменить на тот сервис рассылок, который они предпочтут.
Развертывание виртуальной инфраструктуры
Определение технических требований к виртуальной инфраструктуре опиралось на масштабирования информационной системы, а также на измерении технических параметров функционирования системы редакционной подписки издательства «Открытые системы».
Общая нагрузка на систему зависит от общего количества пользователей системы; пиковая же нагрузка скорее связана с количеством подписчиков на одно издание и может возникать в периоды выхода свежих выпусков, а также массовой рассылки писем с предложением подписки. Наиболее вероятны пики нагрузки в моменты массового скачивания цифровых версий изданий. Для сглаживания таких пиков предусмотрен механизм кэширования.
Основываясь на этих данных, экспертным путем определены параметры арендуемого виртуального сервера: ЦПУ — 4 ядра x 2,4 ГГц; RAM – 4 Гбайт; соединение — 100 Мбит/c.
Размещение виртуального сервера в ЦОД коммерческого провайдера облачных сервисов позволит при необходимости оперативно увеличить изменить параметры арендуемой виртуальной инфраструктуры.
Расчет необходимой емкости для хранения PDF-файлов основывается на предельных показателях масштабирования системы (100 изданий в каталоге, 100 архивных выпусков на издание, 100 Мбайт — максимальный объем файла). Таким образом определен объем файлового хранения — 1 Тбайт.
Пополняя архив выпусков изданий, издатель загружает файл в систему, связывает его с конкретным выпуском и получает постоянную ссылку на загруженный файл. Ссылка уникальна и действует без регистрации в системе и временных ограничений.
При раздаче файлов подписчикам для каждого из них создается уникальная «персональная» ссылка; для нее можно установить «время жизни»; если значение не указано — время жизни ссылки не ограничено. В случае если издатель обновляет файл выпуска, все ранее созданные ссылки, продолжают работать. По этим ссылкам доступен обновленный файл; старая версия файла не сохраняется.
С целью контроля возможной компрометации ссылок для каждого выпуска анализируется количество скачиваний. При достижении некоторого порогового количества скачиваний выпуска издатель может быть уведомлен о том, что та или иная ссылка скомпрометирована. Это примитивный механизм борьбы с контрафактной раздачей файлов; тем не менее, приемлемый для прототипа. В дальнейшем, при соответствующих система логирования загрузок файлов может быть дополнена более мощными средствами выявления фрода, например, на основе технологий машинного обучения.
Расчет необходимой емкости для хранения базы данных основывается на предельных показателях масштабирования информационной системы, а также на измерении технических параметров функционирования системы редакционной подписки издательства «Открытые системы», в том числе, размера основных таблиц базы данных. Основываясь на этих данных, экспертным путем определен предельный размер базы данных — 50 Гбайт.
В соответствии с этими параметрами был соответствующим образом настроен сервер баз данных MySQL.
***
Выбрана платформа для разработки и внедрения прототипа сервиса подписки позволила реализовать функционал, предусмотренный техническим заданием проекта. В настоящее время сервис в опытном режиме используется совместно с издательством «Открытые системы» при организации массовых маркетинговых акций для подписчиков таких изданий, как «Лечащий врач», «Классный журнал» и «ПониМашка».