JustGiving – одна из крупнейших в мире социальных платформ для сбора средств на благотворительные цели со штаб-квартирой в Лондоне. На сайте зарегистрировано 24 миллиона пользователей, с помощью которых удалось собрать 3,5 миллиарда долларов США более чем для 13 000 благотворительных акций, таких как исследования болезни Альцгеймера, помощь пострадавшим от землетрясения на Гаити и усилия по прекращению торговли людьми. Сайт JustGiving был запущен в 2001 году. За каждое пожертвование взимается сбор в размере 5 %, который идет на развитие платформы.

JustGiving создает новую платформу для обработки больших данных в облаке AWS (3:35)

thumb_justgiving

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

«Последние несколько лет мы видим, что люди все больше и больше делятся информацией о сборе средств через социальные сети и аналогичные информационные каналы, – говорит директор по информационным технологиям компании JustGiving Ричард Аткинсон. –  Порой информация распространяется как социальный вирус, и внезапно объем трафика многократно увеличивается. Мы использовали оборудование в колокационном центре обработки данных, но его масштабирование требовало увеличения расходов и создавало дополнительные трудности – и поэтому не представлялось целесообразным».

«Значительное увеличение объема данных также усложняло внутренний анализ данных, – считает Ричард Фриман, кандидат наук, архитектор решений и специалист по работе с данными в JustGiving. –  Мы расширяли команду аналитиков и увеличивали возможности так быстро, что сервер Microsoft SQL не справлялся с объемами и скоростью поступления данных, а также со сложностью запросов, создаваемых нашими специалистами».

Чтобы справиться с этими проблемами, компания решила перенести основные операционные нагрузки в облако, а также разместить в нем новую платформу для анализа больших данных RAVEN (Reporting, Analytics, Visualization, Experimental, Networks), которая будет функционировать параллельно с существующим хранилищем данных. Цель состояла в том, чтобы предоставить аналитикам JustGiving инструменты для экспериментов с данными о посещении веб-сайта и транзакциях, журналами и данными из внешних источников. Команда аналитиков также хотела использовать традиционные инструменты получения отчетов и исследовать ключевые показатели эффективности (KPI) без необходимости постоянно повторять процессы извлечения, преобразования и загрузки данных (ETL).

JustGiving выбрала Amazon Web Services для размещения среды тестирования и рабочей среды, чтобы в первую очередь расширить возможности анализа. Аткинсон поясняет, что выбор был обусловлен доверием: «Нашему бренду доверяют 24 миллиона пользователей и 13 000 благотворительных организаций, которые собирают средства с помощью нашей платформы. Мы искали решение, соответствующее этому уровню. Единственным вариантом оказалась платформа AWS».

JustGiving переработала свои программные продукты в микросервисы, которые развертываются с помощью конвейеров непрерывной доставки, а с помощью различных сервисов AWS удалось сократить участие сотрудников JustGiving в процессе обслуживания и поддержки инфраструктуры и использовать масштабируемость и отказоустойчивость платформы AWS. Используемые сервисы включают Amazon Elastic Compute Cloud (Amazon EC2), Auto Scaling, Elastic Load Balancing, Amazon ElastiCache, Amazon Relational Database Service (Amazon RDS) и Amazon Simple Storage Service (Amazon S3).

Организация также использует ряд сервисов AWS для своей аналитической платформы RAVEN: это Amazon Redshift, Amazon Elastic MapReduce (Amazon EMR), Amazon Kinesis, AWS Lambda, Amazon DynamoDB, Amazon Simple Queue Service (Amazon SQS) и Amazon Simple Notification Service (Amazon SNS).

«Многие поставщики предлагают графический интерфейс для анализа больших данных, но мы считаем, что для конкретных практических целей более эффективно загружать и запрашивать данные средствами SQL, которые можно использовать спонтанным образом для экспериментов с данными или автоматически для отображения аналитических панелей KPI и стандартных отчетов, – говорит Фриман. – С помощью AWS мы создали конвейер ETL, состоящий из систем, которые реагируют на различные события и взаимодействуют друг с другом через систему сообщений SNS и SQS. Мы также рассматривали существующие системы организации рабочих процессов с открытым исходным кодом, но все они требуют выделенных серверов, которые нужно настраивать и поддерживать. Их слишком сложно переделать под наши примеры использования».

JustGiving-AWS-diagram-overview-091815

Архитектура платформы RAVEN для JustGiving на AWS.

Фриман в восторге от функциональных возможностей, предоставляемых платформой AWS. «Платформа AWS предоставляет все, что нам нужно для создания прототипов, анализа данных, экспериментов с данными, вычисления метрик и генерации отчетов в нашей платформе для анализа больших данных», – заключает он.

Фриман отмечает, что для команды аналитиков JustGiving сервис Amazon Redshift оказался очень эффективным инструментом для анализа данных и выполнения запросов на больших структурах, включающих миллиарды точек данных в различных кластерах. «Мы создали пакет инструментов для запуска ETL-заданий на основе событий и интеграции с внутренними и внешними API, – рассказывает Фриман. –  Если на сервере SQL для выполнения запроса требовалось 30 минут, сейчас такие запросы выполняются за секунды. Мы можем выполнять сложные запросы, которые раньше казались невозможными. Мы даже обнаружили, что более простые графовые запросы, например для обнаружения зависимости между благотворительными мероприятиями и пользователями, выполняются быстрее, чем в выделенной графовой базе данных. Мы впервые смогли предоставить нашим корпоративным пользователям совместный просмотр транзакционных и нетранзакционных данных, таких как количество посещений страниц, количество пожертвований и перечислений. Redshift работает быстрее, прост в использовании и предоставляет множество полезных инструментов для поддержки рабочей среды, которых у нас раньше не было».

С помощью AWS EMR специалисты JustGiving могут запускать масштабные автоматизированные аналитические процессы ETL на терабайтах данных без необходимости настраивать и поддерживать инфраструктуру кластеров. «До того как мы начали использовать Amazon EMR, наши специалисты по обработке данных могли запускать алгоритмы, которые работали только на одной машине и на выборочном наборе данных. Для обработки больших объемов требовалось несколько дней, – объясняет Фриман. –  Теперь, используя Amazon EMR с кластерами Hadoop или Spark, мы легко можем запускать кластеры с сотнями инстансов Amazon EC2 и использовать масштабируемые алгоритмы обработки данных, такие как анализ графов, обработка естественных языков, машинное обучение или анализ потоковых данных. Например, мы используем их для рекомендации проектов краудфандинга, анализа пользовательских сетей, автоматического присвоения тегов и увеличения заинтересованности пользователей».

Команда аналитиков использует Amazon Kinesis, AWS Lambda и Amazon DynamoDB для выполнения заданий, которые раньше вызывали значительные трудности. Например, события навигации пользователей по веб-сайту теперь записываются в Amazon Kinesis практически в режиме реального времени. В ответ на эти события исполняется функция AWS Lambda, которая обрабатывает их и сохраняет в Amazon DynamoDB. Кроме того, Lambda используется для тестирования, отслеживания событий и отправки активных оповещений, а DynamoDB – в качестве постоянного хранилища данных событий Kinesis и средства визуального мониторинга.

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

Масштабируемость и экономичность платформы AWS, в особенности модель оплаты по факту использования, являются ключевыми факторами, благодаря которым организация продолжает расти. «Мы всегда сопоставляли затраты с производственными процессами и степенью их важности, – говорит Аткинсон. –  Раньше много денег уходило на оборудование, которое просто приобреталось и не отличалось высоким коэффициентом использования. Сервисы AWS позволили нам автоматизировать процессы и создать новую платформу анализа, в которой мы тратим деньги только на инструменты и данные, которые помогают получать важную информацию, создавать ценность и принимать решения в реальном времени для всех посетителей веб-сайта JustGiving».

Подробнее о том, как платформа AWS помогает обрабатывать и анализировать большие данные, см. на странице по работе с большими данными: http://aws.amazon.com/big-data/.