Скорость прохождения пути от идеи до запуска пилотного продукта является важной составляющей его успеха. Не менее важен бюджет, который компания тратит на разработку ИТ-сервиса. Чем качественней будет проработка инфраструктуры решения в начале проекта, тем быстрее произойдет релиз продукта и тем меньше дополнительных средств потребуется в будущем на его доработку и содержание. Кроме того, грамотно проработанная инфраструктура обеспечит стабильную и бесперебойную работу highload сервиса даже в пиковые нагрузки.
Cтоит отметить, что проектирование и разработка высоконагруженных систем имеют ряд особенностей, требуют серьезного подхода и, соответственно, наличия определенных компетенций. Если в инхаус-команде такие ресурсы отсутствуют, то компании привлекают внешних ИТ-инженеров. Именно за экспертизой в devops к нам обратился один из ведущих российских разработчиков.
Описание задачи
Для пилотирования высоконагруженного проекта (в перспективе, обработка нескольких терабайт данных в сутки), специалистам компании RedLab требовалось развернуть инфраструктуру для MVP нового сервиса. Клиент обозначил 2 основных требования:
- Использовать в проекте инструменты не привязанные к какому-либо поставщику облачных решений.
- Развернуть инфраструктуру для проекта в максимально сжатые сроки.
Реализация
Чтобы выполнить требования клиента и завершить разработку инфраструктуры и всех необходимых компонентов в строго установленные сроки, в первую очередь мы приступили к поиску и выбору подходящего сервиса. После проведения глубокого анализа и изучения характеристик релевантных технологий, наши специалисты остановились на следующем решении:
- В качестве основной платформы был выбран AWS.
- Мы использовали только те сервисы AWS, для которых есть полные аналоги on-premise.
- Для хранения файлов подобрали Amazon S3.
- Метаданные хранятся в Amazon Keyspaces (for Apache Cassandra).
- Очередь на обработку реализовали на Amazon MQ (for RabbitMQ).
- Воркеры расположили на независимых Docker нодах (полная загрузка сетевых интерфейсов).
- Полная автоматизация развертывания инфраструктуры осуществляется при помощи AWS CloudFormation, Terraform, Ansible.
- Автоматизация CI/CD процессов – через pipelines в Jenkins.
Используемый технологический стек
AWS, Amazon S3, Amazon Keyspaces, Amazon MQ, Docker, AWS CloudFormation, Terraform, Ansible, Jenkins.
Команда
2 инженера команды ИТ-инфраструктуры
Результат
Благодаря богатому опыту и глубокой экспертизе devops-инженеров RedLab, мы смогли быстро определить подходящую под требования заказчика облачную платформу – AWS и в рекордные сроки развернуть всю необходимую инфраструктуру для MVP высоконагруженного сервиса. Это позволило нашему клиенту своевременно начать пилотное внедрение нового продукта и уложиться во внутренние дедлайны.
Простое и гибкое управление потреблением ресурсов позволит заказчику максимально оперативно и эффективно реагировать на меняющиеся потребности бизнеса и легко осуществлять новые итерации по доработке пилотного продукта. А за счет использования подхода Infrastructure as Code и отсутствия vendor-lock’а в выбранном сервисе, текущее решение можно при необходимости быстро перенести на другую облачную платформу или в собственную инфраструктуру заказчика.