Технологическая эволюция Mercado Libre: от монолита к мультиоблачной платформе. DevOps.. DevOps. Kubernetes.. DevOps. Kubernetes. Блог компании Флант.. DevOps. Kubernetes. Блог компании Флант. Микросервисы.. DevOps. Kubernetes. Блог компании Флант. Микросервисы. мониторинг.. DevOps. Kubernetes. Блог компании Флант. Микросервисы. мониторинг. монолит.. DevOps. Kubernetes. Блог компании Флант. Микросервисы. мониторинг. монолит. мультиоблачное решение.. DevOps. Kubernetes. Блог компании Флант. Микросервисы. мониторинг. монолит. мультиоблачное решение. Облачные сервисы.. DevOps. Kubernetes. Блог компании Флант. Микросервисы. мониторинг. монолит. мультиоблачное решение. Облачные сервисы. развертывание приложений.. DevOps. Kubernetes. Блог компании Флант. Микросервисы. мониторинг. монолит. мультиоблачное решение. Облачные сервисы. развертывание приложений. разработка приложений.. DevOps. Kubernetes. Блог компании Флант. Микросервисы. мониторинг. монолит. мультиоблачное решение. Облачные сервисы. развертывание приложений. разработка приложений. Системное администрирование.

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

Технологическая эволюция Mercado Libre: от монолита к мультиоблачной платформе - 1

Задумываетесь о переходе к мультиоблачной платформе? Тогда вы попали по адресу! В этом цикле статей мы делимся своим опытом реализации основных функций 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.

Технологическая эволюция Mercado Libre: от монолита к мультиоблачной платформе - 2

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.

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

Автор: kubelet

Источник

Rambler's Top100