Как с помощью сервисов AWS улучшить производительность сайта и не потерять клиентов. Пример компании ROI4CIO
Компания: ROIFORCIO (Пользователь)
Продукт: AMAZON EC2
AMAZON Route 53
AMAZON S3
AMAZON Relational Database Service (RDS)
AMAZON Virtual Private Cloud (VPC)
AMAZON Elastic Load Balancing (ELB)
AMAZON ElastiCache
AWS Lambda
AMAZON CloudWatch
AMAZON Simple Notification Service (SNS)
AMAZON Elastic Block Store (EBS)
Amazon (AWS) решение для улучшения производительности
Производитель: Amazon Web Services
Поставщик: Softprom
Международный ИТ-дистрибьютор, компания Softprom помогла крупной контентной платформе ROI4CIO перейти на облачные сервисы AWS. Результатом проекта стал восьмикратный рост производительности сайта, а показатель ROI достиг 800%.
Проблема роста
Контент-платформа ROI4CIO изначально задумывалась как динамичный стартап, работающий в облаке. Площадка быстро растет и сегодня является одним из основных источников актуальной информации по тысячам ИТ-продуктов (ПО, оборудование, услуги) корпоративных пользователей, а также работает как эффективный инструмент продаж для поставщиков. Платформа содержит детальные характеристики огромного числа продуктов, данные о внедрениях, отзывы, сравнения различных решений. Также она рассчитывает ROI, помогает найти потенциальных покупателей и новых партнеров.С первых дней своего появления сервис быстро рос в объемах и вскоре столкнулся с техническими ограничениями — облачная платформа, на которой изначально был развернут ROI4CIO, попросту не справлялась с обработкой больших объемов данных, замедляя процесс работы и вызывая недовольство посетителей.
Особенно много нареканий возникало при работе со сложными фирменными функциями ROI4CIO, такими как ROI-калькулятор, калькулятор цены ИТ-продуктов и другими функциями, которые требовали интенсивного обращения к базам данных. При определенной нагрузке виртуальный сервер просто не выдерживал шквала запросов. Для обеспечения работоспособности ресурса необходимо было предпринять незамедлительные действия.
Так выглядела архитектура ROI4CIO до миграции в облако AWS
"Низкая производительность сайта — одна из проблем, с которой столкнулась наша команда при масштабируемости проекта. Во время тестирования при одновременном подключении определенного количества пользователей задержка отклика была более 10 секунд. При увеличении нагрузки база не выдерживала, сервис "отказывался" работать", — Олег Пицык, Архитектор ИТ-систем ROI4CIO, Agiliway.
Что делать? Мигрировать!
Приемлемых вариантов решения проблемы было всего три — расширить аренду ресурсов у действующего облачного оператора, перейти на собственное “железо” или мигрировать в другое облако. Первый вариант отпал естественным образом — предыдущий провайдер и так работал на пределе возможностей, второй был слишком дорогим и трудоемким, а вот третий…Третий вариант показался идеальным, только кого выбрать? Нужен был надежный, эластичный, легко масштабируемый сервис, который позволил бы не только получить нужную производительность, но и дал бы возможность настраивать необходимые сервисы, предоставлял бы удобные механизмы администрирования. Сразу стало понятно, что выбрать стоит кого-то из мировых операторов. Остановились на самом крупном и развитом из них — Amazon Web Services (AWS), хотя до этого что только ни тестировали — Vultr, goDaddy, Linode, всех и не упомнишь. Но AWS подошел почти идеально для всех основных задач ROI4CIO и технологий, на которых построен портал — PHP, Node.js, REST и пр.
Сегодня AWS — это крупнейший мировой оператор облачных услуг. Компания предлагает своим клиентам разнообразные элементы виртуальной ИТ-инфраструктуры в виде веб-сервисов:
- вычислительные мощности
- защищенные хранилища данных
- сервисы аналитики
- приложения для мобильных устройств
- сервис базы данных
- решения для Интернета вещей и т.д.
Доверяй, но проверяй
Конечно, было проведено полноценное нагрузочное тестирование, с помощью программы Apache Jmeter, которое имитировало одновременную работу на портале до 1000 пользователей. Использовались различные методики, воспроизводились все возможные ситуации, с которыми может (хотя бы теоретически) столкнуться портал в ходе работы. Но, все испытания однозначно показали, что облачный сервис AWS подходит на 100%.Кстати, по результатам тестирования ряд работ по оптимизации был проведен и для самой контентной платформы. В частности, вместо большой и сложной платформы было решено перейти на микросервисную архитектуру, при которой каждый сервис разворачивался в индивидуальном программном контейнере внутри облака AWS. Также был настроен ряд важный функций, таких как динамическое масштабирование ресурсов (auto scaling group). Теперь в моменты пиковой загруженности сайта вычислительные ресурсы автоматически масштабируются, что позволяет выдержать практически любую нагрузку.
С целью повышения надежности и отказоустойчивости, а также уменьшения затрат на администрирование, для размещения базы данных был выбран сервис Amazon Relational Database Service, выполняющий функции выделения аппаратного обеспечения, настройки БД, установки исправлений и резервного копирования данных. Для оптимальной производительности, были задействованы высокоскоростные диски Provisioned IOPS (обеспечивающие до 40 000 IOPS на каждую виртуальную машину с базой данных). Для повышения скорости работы сайта был также использован ElastiCaсhe — веб-сервис, упрощающий развертывание и масштабирование в облаке хранилища или кэша памяти, а также управление ими.
Обновленный вариант архитектуры ROI4CIO в облаке AWS
Расширенный мониторинг приложения и базы данных был организован с помощью сервиса AWS CloudWatch. Теперь в случае возникновения любой непредвиденной ситуации администратор сразу же получает уведомление по нескольким каналам (телефон, почта, мессенджер). Для отправки сообщений задействовали сервис AWS SNS (simple notification service). Но, чтобы не дергать администратора по любому поводу, с помощью сервиса AWS Lambda были настроены автоматические реакции на многие типовые события.
Сам домен сайта размещен теперь на DNS Amazon Route 53. Это высокодоступный и масштабируемый облачный веб-сервис, используемый многими известными мировыми компаниями.
Для обеспечения комплексной защиты от DDoS-атак задействовали сервис DDoS AWS Shield. А размещение, хранение и защита данных организована в эластичном облачном хранилище AWS S3. Там же создаются и размещаются все резервные копии данных, создаваемые автоматически по заданному расписанию.
Результат, который можно измерить
Если говорить о самой миграции ROI4CIO на новую платформу, то процесс этот происходил в результате взаимодействия специалистов Softprom (дистрибьютор AWS) и компании Agiliway, сотрудники которой, в частности разработали оптимальную архитектуру сайта и произвели настройку всех важных систем ROI4CIO, включая сервер приложений и базы данных и др. Компания Softprom выступала не только как поставщик сервисов AWS. Ее специалисты осуществляли профессиональные консультации по вопросам функционального использования облачных сервисов Amazon. Кроме того, сотрудники Softprom занимались настройкой инструментов мониторинга, уведомлений и автоматизации Lambda.Осязаемыми результатами проекта стали вот такие красноречивые показатели:
- Количество одновременно присутствующих на сайте пользователей выросло в несколько раз
- Снизились трудозатраты на задачи администрирования за счет их автоматизации
- Нагрузка на сайт и базу данных уменьшилась в 2 раза
- Производительность сайта увеличилась в 8 раз (при этом стоимость владения сайтом выросла лишь вдвое)
Фактический ROI от реализации проекта достиг 800%. Этот показатель возврата инвестиций был рассчитан достаточно точно на этапе планирования. Переработка сайта, его адаптация под облачную площадку, ежегодное техническое обслуживание - все это суммарно обошлось бы в 8-10 раз дороже, чем переход на AWS с обеспечением аналогичных параметров функциональности, надежности и поддержки.
Из более общих, но не менее важных характеристик, обеспеченных с помощью облака AWS, стоит упомянуть:
- Сокращение затрат
- Обеспечение безопасности и непрерывности бизнеса
- Организация централизованного контроля состояния ИТ-систем
- Рост пропускной способности каналов передачи данных
- Динамическое наращивание ИТ-ресурсов
- Автоматизация бизнес-процессов
- Радикальное снижение угрозы хакерских атак
- Поддержание ИТ-инфраструктуры в актуальном состоянии
“ROI4CIO — один из наших самых быстрорастущих проектов на AWS, наглядно демонстрирует, насколько легко стартапу “жить” в облаке. Вначале для размещения сервиса использовались в основном только вычислительные ресурсы (EC2) облака AWS. Архитектуру проектировали с упором на отказоустойчивость и высокую доступность, поэтому в обязательном порядке все компоненты проекта размещались в двух дата-центрах (availability zones). Для балансировки трафика были задействованы сервисы AWS. Проект развивается очень быстро и, благодаря гибкости облака, может с легкостью задействовать новые сервисы, при этом оплачивая только фактически используемые ресурсы. После этапа тестирования, инфраструктура была переведена на микросервисы. Контроль доступности, отказоустойчивости и размещения сервисов осуществляется через Amazon Elastic Container Service. Базы данных вынесены в Amazon RDS. Ключевые компоненты решения размещены на сервисах AWS (Redis, ELK, очереди и т.д). Большим преимуществом для проекта стали готовые решение от AWS. Например, сервис Amazon Polly, был задействован для озвучивания текстов”, — отметил Влад Гавриленко, Head of IT department Softprom.
Сегодня, работая в облаке AWS, портал ROI4CIO демонстрирует стабильную работу, высокую скорость обработки запросов и полную доступность даже при очень высоких нагрузках.
Детали внедрения на сайте ROI4CIO
Leave a Comment