Перевели для вас цикл статей об эволюции технологической платформы Mercado Libre — от монолитной архитектуры начала 2000-х к современной мультиоблачной платформе Fury, которая обеспечивает разработчикам удобную, масштабируемую и безопасную среду для создания, развёртывания и управления приложениями. В этой — первой — части описывается переход компании от единой базы и медленных релизов к микросервисам и облачным технологиям, что позволило значительно ускорить разработку и повысить надёжность систем. Передаём слово автору — ведущему техническому руководителю Mercado Libre Хулиано Мартинсу (Juliano Martins).

Задумываетесь о переходе к мультиоблачной платформе? Тогда вы попали по адресу! В этом цикле статей мы делимся своим опытом реализации основных функций Fury — нашей внутренней платформы для разработчиков. Она предоставляет пользователям унифицированное окружение для эффективного создания, развёртывания, управления и мониторинга приложений.

Присоединяйтесь: вместе мы отправимся в сердце технической команды Mercado Libre, которая разрабатывает и оркестрирует приложения, составляющие нашу экосистему. Поговорим о технологической эволюции в компании и о том, как мы перешли от монолитной архитектуры к интегрированной и гибкой платформе-как-услуге, не зависящей от конкретной реализации облака.

Чтобы справиться с стремительным ростом, техническая команда Mercado Libre разработала решение, которое позволяет проводить массовое масштабирование и предлагает 15 тысячам инженеров компании пользовательский опыт мирового класса. Они ежедневно используют эту платформу для создания первоклассных приложений. Техническая команда в Mercado Libre управляет более чем 30 000 микросервисов, запущенных на 100 000 инстансов в production, и обеспечивает бесшовную интеграцию, гибкость, простоту и безопасность.

Экосистема Mercado Libre состоит из различных компонентов или бизнес-подразделений, таких как маркетплейсы, финтех, интернет-магазины и ERP, логистика и реклама. В своей работе все эти подразделения опираются на единую платформу Fury. Но как мы пришли к такому инновационному решению?

Взгляд в историю: что было раньше

В 1999 году мы выпустили первую версию маркетплейса Mercado Libre. Он был построен на монолитной архитектуре. В то время платформа насчитывала несколько сотен физических серверов, работающих на одной базе данных Oracle, с одним репозиторием кода, в котором ежедневно взаимодействовали более 200 разработчиков. То, что начиналось как небольшое предприятие, быстро превратилось в гиганта.

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

Разработчики сталкивались с серьёзными проблемами при развёртывании правок в одной и той же кодовой базе. В результате часто возникали конфликты: одни функции работали корректно, другие — ломались. Масштабирование системы превратилось в серьёзную проблему, что в итоге приводило к увеличению времени вывода новых функций на рынок (Time to Market).

Только представьте, какой при таких вводных начался бы хаос, если бы 3000 разработчиков развёртывали код по 10 раз в день, а то и чаще…

MeliCloud: инновации для сложных воркфлоу

Где-то в 2010 году Mercado Libre пришлось принять критическое решение. Было необходимо построить «новый мир», который смог бы освободиться от ограничений и перейти к более масштабируемой инфраструктуре, основанной на микросервисах. Бум мобильных технологий привёл к тому, что API теперь приходилось обрабатывать всё более мудрёные воркфлоу, поэтому наша команда Cloud & Platform занялась поисками и экспериментами. После внимательного рассмотрения мы решили перейти на передовую платформу MeliCloud.

MeliCloud реализовала подход инфраструктура-как-услуга, дающий ряд преимуществ, в том числе повышенную скорость и гибкость разработки. Мы смогли эффективно управлять большим количеством взаимосвязанных микросервисов, включая:

  • 17 500 инстансов;

  • более 1200 пулов трафика;

  • развёртывание более 1400 инстансов в день (практически десятая часть от общего числа инстансов);

  • частичную поддержку при сбоях в работе.

Окей, перешли на микросервисы. Что с хаосом?

После того как мы перешли на микросервисы, возник интересный вопрос: действительно ли хаос теперь под контролем? Слишком высокая гибкость в чём-то усложнила жизнь: значительное время уходило на решение вопросов, связанных с эксплуатацией production, а не на совершенствование продукта. Мы перешли от состояния полного хаоса, когда прогресс казался невозможным, к состоянию хаотической свободы, когда каждый имел неограниченный контроль.

Однако, учитывая имеющиеся на тот момент ресурсы, такая инфраструктура представляла собой серьёзную проблему с точки зрения технического обслуживания:

  • множество окружений и конфигураций;

  • сложность в развитии инфраструктуры;

  • значительные расхождения между окружениями Deployment, Stage и Production;

  • крутая кривая обучения;

  • необходимость наличия глубоких знаний инфраструктуры, которые нужны для эксплуатации;

  • раздувание команд и увеличение числа центров разработки.

Что нам было нужно

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

Мы поняли, что необходима надёжная платформа, которая позволила бы разработчикам создавать и запускать приложения всего в три клика. Цель заключалась в том, чтобы они могли загрузить приложение, внести в него изменения и протестировать их за чашечкой кофе: легко запускать, легко развёртывать в production. Поэтому мы спроектировали и создали Fury.

Fury: Hello, world

Так в 2015 году на свет появилась Fury. Это внутренняя платформа разработчика (IDP), созданная в компании и позволяющая инженерам создавать, развертывать, мониторить приложения и управлять ими.

Вот её основные моменты:

  • Единая платформа с определённым технологическим стеком, языками, фреймворками и инструментами, приспособленными к нашим потребностям и стандартам качества.

  • Переносимость и единообразие развёртываний благодаря контейнеризации.

  • Подобные и воспроизводимые окружения с переиспользуемыми компонентами и сервисами.

  • Управление затратами и их оптимизация.

  • Поддержка мультиоблачности и абстракция облачных провайдеров.

  • Готовая к использованию инфраструктура развёртывания.

  • Встроенные в платформу инструменты мониторинга.

  • Простой процесс разработки.

  • Ориентированный на пользователя и адаптированный под платформу UI, которым легко управлять и пользоваться.

  • Масштабируемость для продуктов и команд.

Какие плюсы привносит Fury в Mercado Libre

Fury предлагает ряд преимуществ для Mercado Libre:

  1. Упрощённый процесс разработки: Fury предоставляет централизованную платформу самообслуживания, на которой разработчики получают доступ к необходимым инструментам, сервисам и инфраструктуре для создания и развёртывания приложений. Это повышает производительность разработчиков и ускоряет цикл разработки.

  2. Снижение когнитивной нагрузки: предлагая единую платформу, Fury освобождает разработчиков от когнитивной нагрузки, связанной с использованием множества систем и процессов. Это позволяет им сосредоточиться на создании высококачественных приложений.

  3. Повышенная безопасность и соответствие нормативным требованиям: Fury применяет стандартизированные политики и средства контроля, обеспечивая согласованность и снижая риски, связанные с нестандартными методами разработки. Это повышает безопасность и помогает соблюдать соответствующие нормы.

  4. Гибкость и масштабируемость: благодаря мультиоблачной абстракции команды могут использовать наиболее подходящие услуги и ресурсы от разных облачных провайдеров. Такая гибкость и масштабируемость позволяют Mercado Libre адаптироваться и расти по мере необходимости.

В целом Fury внесла значительный вклад в ускорение, повышение эффективности и безопасности разработки программного обеспечения в Mercado Libre.

Создание приложений ещё никогда не было таким простым

Для создания приложений разработчики могут использовать фронтенд Fury. Он позволяет за пару кликов выбрать нужный тип приложения и технологию. За кулисами платформа автоматически создаёт репозиторий кода на GitHub с необходимыми правами, настраивает CI/CD-пайплайн и формирует базовую структуру с предварительно сконфигурированным контейнеризованным образом.

Кроме того, интерфейс командной строки (CLI), встроенный в Fury, позволяет разработчикам загружать приложение локально, запускать его, тестировать и создавать готовые к развёртыванию версии с помощью терминала на своём компьютере. Такая бесшовная интеграция распространяется не только на инфраструктуру, но и на локальное окружение разработчика, обеспечивая целостность процесса разработки.

Упрощение развёртывания приложений со Scopes

В Mercado Libre мы ввели понятие областей (Scopes) — средства управления версиями, развёртываниями и сегментацией приложений. Scopes служат упрощённым представлением Fury в контейнерах облачных провайдеров вроде AWS или GCP. С помощью Scopes приложения могут быстро переходить из dev-окружения в интегрированную инфраструктуру, что позволяет проводить эффективное тестирование в специальном тестовой или демонстрационной области (scope). Как только финальная версия готова, её можно развернуть в production-области (scope).

При создании области (scope) автоматически создаётся необходимая инфраструктура, включая балансировщик нагрузки, группы автомасштабирования и инстансы. Трафик направляется на эти ресурсы с преднастроенными логами, метриками и мониторинг-алертами. Fury также помогает анализировать расходы на инфраструктуру и применяет автоматическую оптимизацию для их сокращения. Для обеспечения надёжности критически важные приложения разнесены по отдельным областям (scope). Такой подход не даёт сбоям в одной области повлиять на другие, что позволяет более эффективно реагировать на непредвиденные ситуации.

Что это означает для нас? Благодаря платформе Fury инфраструктура автоматически управляется и масштабируется в зависимости от потребностей бизнеса; инстансы добавляются и удаляются по мере необходимости. Так мы максимизируем эффективность и оптимизируем расходы.

Эффективная интеграция кода с Release Process

В 2018 году мы внедрили функцию Release Process для эффективного управления интеграцией кода в приложения. В ней используются концепции непрерывной интеграции (CI) и непрерывной доставки (CD). А инструменты с открытым исходным кодом упрощают и ускоряют процесс, подстраивая его под наши потребности в разработке.

Release process обслуживает более 26 000 репозиториев и автоматически выполняет семь комплексных проверок качества, контролируя целостность каждого приложения. Эти проверки включают в себя зависимости, модели ветвления, CI, покрытие кода и наличие учётных данных в коде. При ошибке в любой из проверок весь процесс прерывается до тех пор, пока проблема не будет устранена. Результат? Бесшовный и эффективный процесс интеграции кода, который поддерживает наших разработчиков на каждом шагу.

Различные стратегии развёртывания в зависимости от критичности сценария

Когда речь заходит о развёртывании приложений, не существует универсального подхода. У каждого сценария уникальные требования и соображения. Поэтому Fury предлагает разработчикам ряд стратегий развёртывания в зависимости от критичности сценария и потенциального влияния на бизнес.

Некоторые стратегии предполагают переиспользование существующей инфраструктуры, что делает их быстрыми и экономически эффективными. Однако в случае ошибок их бывает сложно откатить, что может привести к простою. Эти стратегии идеально подходят для тестирования небольших изменений или для областей с низкой степенью критичности.

С другой стороны, такие стратегии, как blue-green-развёртывание, предполагают создание нового окружения и постепенное переключение трафика. Они идеально подходят для production-областей, требующих быстрого восстановления в случае ошибок. Они обеспечивают быстрый откат без простоев и минимизируют воздействие на пользователей благодаря тщательному мониторингу трафика.

Предоставляя различные стратегии развёртывания, Fury позволяет разработчикам принимать взвешенные решения, основанные на специфических потребностях каждого сценария, обеспечивая эффективное и надёжное развёртывание приложений.

Расширение возможностей разработчиков с помощью инструментов мониторинга приложений

Fury предоставляет разработчикам надёжные инструменты для поддержки работы приложений. Уделяя особое внимание метрикам, логам и мониторингу, мы выявляем проблемы на ранней стадии и сводим к минимуму возможные простои. От отслеживания параметров инфраструктуры (CPU, память) до мониторинга бизнес-показателей, таких как пиковое время обработки платежей, — мы обеспечиваем полный контроль над состоянием системы.

Разработчики полностью владеют своими приложениями и могут настраивать алерты обо всех видах ошибок. Такая культура проактивного мониторинга позволяет принимать меры до того, как проблема обострится. В Fury разработчики могут использовать возможности DataDog, NewRelic и Opsgenie со стандартными мониторами, адаптированными к конкретным используемым сервисам.

Продолжаем стимулировать инновации и рост

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

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

Переход к мультиоблачному подходу открыл новые возможности, обеспечив гибкость в использовании лучших услуг и ресурсов от различных облачных провайдеров. Такое стратегическое решение не только повысило нашу производительность и устойчивость к внешним воздействиям, но и позволило оптимизировать расходы.

Следующие шаги в нашем путешествии

В Mercado Libre мы всегда ищем новые возможности для внедрения инноваций и расширения границ возможного. Именно поэтому мы создали стратегический альянс с компанией OpenAI, вместе с которой изучаем возможности генеративного искусственного интеллекта (GenAI). Мы убеждены в огромном потенциале GenAI в нашей экосистеме в плане создания революционных решений, которые принесут пользу разработчикам.

Продолжая развиваться и расширять границы возможного, мы по-прежнему стремимся обеспечить лучший опыт для разработчиков. Наша цель — снабдить их лучшими инструментами и ресурсами для выполнения миссии по демократизации торговли и финансовых услуг, чтобы изменить жизнь миллионов людей в Латинской Америке.

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

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

P. S.

Читайте также в нашем блоге:

Комментарии (2)


  1. Dhwtj
    07.07.2025 07:46

    Заходите, здесь не глубоко ©


  1. Dhwtj
    07.07.2025 07:46

    Да, если кто не в курсе

    Это Амазон по бразильски