С помощью AWS мы сможем повысить надежность и избыточность сервисов для своих пользователей по всему миру и открыть для себя безграничные перспективы дальнейшего развития. 
Виджай Рамеш Ведущий инженер по обработке данных

Change.org – крупнейшая в мире платформа для проведения социальных кампаний, которой пользуются более 130 миллионов человек из 196 стран. Change.org – это сертифицированная благотворительная корпорация. Такие корпорации используют инструменты бизнеса для решения социальных проблем. Миссия компании – дать возможность каждому жителю планеты поддержать изменения, которые они хотели бы воплотить. Это открытая платформа, на которой кто угодно может создать собственную кампанию, собрать сотни единомышленников из своей страны или миллионы по всему миру и добиться общих целей: от прекращения травли в школах до предотвращения обливаний кислотой в Индии. Штаб-квартира Change.org расположена в Сан-Франциско. В число инвесторов компании входят Билл Гейтс, Ричард Брансон, Арианна Хаффингтон, а также основатели компаний LinkedIn, Yahoo, Twitter и eBay.

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

Кроме того, Change.org активно использует непрерывную интеграцию – парадигму разработки ПО, при которой исходный код интегрируется в репозиторий несколько раз в день, за счет чего повышается качество конечного продукта. При этом в организации использовалась собственная система непрерывной интеграции, и это замедляло выпуск новых возможностей. «Каждая сборка в нашей системе непрерывной интеграции требовала до одного часа, то есть выполнялась слишком долго, – говорит Рамеш. –  Это затрудняло тестирование и развертывание новых возможностей». К тому же много лишнего времени уходило на обслуживание самой системы. «Некоторые инженеры тратили по несколько часов в день на обслуживание рабочих процессов системы непрерывной интеграции, что не входило в наши основные задачи, – рассказывает Рамеш. – Мы хотели направить все свое время на разработку новых возможностей».

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

В поисках более гибкой и масштабируемой сетевой платформы специалисты по работе с данными компании Change.org решили перенести часть ресурсов для машинного обучения на Amazon Web Services (AWS). «Нас привлекли гибкость и масштабируемость AWS», – отмечает Рамеш. Подразделение начало использовать инстансы Amazon Elastic Compute Cloud (Amazon EC2) для адресной рассылки электронной почты и конвейера пакетных задач.

Затем компания Change.org подключила два кластера Amazon Redshift, по 16 ТБ каждый. На обоих кластерах хранились все реляционные и событийные данные компании. Первый кластер работал с бизнес-аналитикой и передавал данные о клиентах из БД MySQL в Redshift. Второй использовался для аналитики и исследований в автономном режиме; он собирал данные журналов событий и данные об экспериментах из Amazon Simple Storage Service (Amazon S3) и загружал в Redshift. Обновление этого кластера было реализовано с помощью сервиса AWS Data Pipeline. «Мы любим экспериментировать с возможностями и изменениями на сайте, так что мы создали систему, в которой инженеры могут творить что хотят, не беспокоясь о статусе рабочей среды», – поясняет Рамеш. Более того, на базе данных потоков событий Redshift теперь можно было создавать подробные панели и отчеты для нужд бизнес-аналитики компании. Многие почтовые инструменты компании создают запросы в Redshift.

Change.org все еще использует некоторые локальные ресурсы, но все активнее переходит на ресурсы по требованию AWS, а также переносит в AWS всю свою среду разработки.

Change.org также перешла к использованию размещенного решения для непрерывной интеграции Solano CI. Solano CI полностью работает на AWS и использует Elastic Load Balancing для маршрутизации входящего трафика, Amazon S3 для хранения данных и Amazon Relational Database Service (Amazon RDS) для управления базой данных. Solano CI – это масштабируемая система, которая сокращает время, уходящее на тестирование ПО, упрощает управление системой непрерывной интеграции и оптимизирует использование инстансов AWS, значительно снижая совокупную стоимость владения. «С появлением Solano CI мы смогли полностью отказаться от собственной системы управления непрерывной интеграцией», – говорит Рамеш.

Эластичность сервисов AWS по требованию позволяет Change.org быстрее разрабатывать новые возможности. «Благодаря эластичности AWS скорость итераций значительно повысилась, – отмечает Рамеш. –  Например, при сборке сервисов рекомендации требуемые объемы вычислительных ресурсов очень сильно зависят от типа выбранного алгоритма или объема используемых данных. Теперь, благодаря AWS, все эти вопросы решаются на лету, и мы используем ровно столько ресурсов, сколько требуется для выполнения конкретного проекта. В результате мы обходимся без закупки серверов и лишнего долгосрочного планирования».

В организации также используется среда автоматизированного тестирования Solano CI, сокращающая сроки тестирования и развертывания новых возможностей. После перехода на Solano CI компании удалось сократить среднее время сборки с одного часа до 15 минут благодаря автоматическому распределению параллельных процессов. «Мы можем развертывать больше сборок каждый день и регулярно реализовывать новые возможности на нашем сайте, – рассказывает Рамеш. –  Благодаря Solano CI мы быстрее создаем эффективные решения для наших конечных пользователей». Возможность использовать больше тестов в Solano CI позволяет Change.org быстрее идентифицировать дефекты. «Оперативно определяя дефекты, мы добиваемся большего уровня качества кода и, следовательно, можем предлагать пользователям возможности более высокого качества», – говорит Рамеш.

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

Среда Solano CI разработана с учетом масштабируемости, так что у Change.org не будет проблем с расширением тестовых и сборочных ресурсов. «Иногда перед запуском каких-нибудь новых серьезных возможностей, когда сроки уже поджимают, у нас на руках оказывается необычно много сборок, которые требуется обработать, – рассказывает Рамеш. –  Solano CI масштабируется под эти требования, поскольку использует эластичные ресурсы AWS».

Теперь, когда система непрерывной интеграции Change.org размещена в облаке, разработчики больше не тратят время на обслуживание ресурсов. Solano CI автоматически выполняет интеллектуальную оптимизацию тестов, так что разработчикам Change.org не приходится заниматься управлением, настройкой виртуальных машин и мониторингом узлов системы. «Наши разработчики забыли о проблемах, связанных с поддержкой собственной системы непрерывной интеграции, – говорит Рамеш. –  Solano CI берет все это на себя, и они могут сосредоточиться на своей работе: создании отличных инструментов для нашего сайта и максимально эффективных решений для конечных пользователей по всему миру».

По завершении миграции в облако Change.org планирует значительно расширить рамки использования AWS. «У AWS много регионов и зон доступности по всему миру – в нашем прошлом решении такого не было, – отмечает Рамеш. –  Архитектура веб-сайта, которая может адаптироваться к трафику в разных частях планеты, станет для нас большим преимуществом. В последние годы мы активно развиваемся на международной арене, и вместе с AWS этот рост только ускорится. Нам удастся повысить надежность и избыточность сервисов для своих пользователей по всему миру и открыть для себя безграничные перспективы дальнейшего развития».

solano-labs-logo

Опытный партнер-технолог AWS Partner Network (APN), подтвердивший компетентность в сфере DevOps. Solano Labs разрабатывает мощные масштабируемые системы непрерывной интеграции и непрерывного развертывания, повышающие эффективность и качество программных продуктов и снижающие расходы на их разработку.

Подробнее о том, как Solano Labs может помочь вашей компании разработать и управлять собственной средой AWS, см. в описании компании Solano Lab в каталоге партнеров AWS.
 

Подробнее о том, как с помощью AWS организовать работу веб-сайта, см. на странице сведений о веб-сайтах и веб-хостинге.