Привет! Меня зовут Валентин Щитов, я ИТ-директор компании «Магнит».
До прихода в «Магнит» весной 2020 года я возглавлял ИТ-отдел крупного проекта в сфере электронной коммерции и за 10 лет сформировал полное понимание того, как работает интернет-ритейлер.
Однако офлайн-ритейлер с четвертьвековой историей меня удивил.
Приятно это или нет, я вам расскажу дальше.
Валентин Щитов: Написал российскую электронную коммерцию с нуля.
Все еще любит PHP, несмотря ни на что.
Учится играть на фортепиано.
Размер имеет значение
Со стороны кажется, что магазин устроен просто – приезжает машина, ее разгружают, товар кладут на полку, кассир выбивает чек – все.Но когда в сети 22 000 розничных магазинов, даже перечислить все соединяющие их ИТ-системы — нетривиальная задача.
Хотя покупатель видит на полках магазинов пару сотен уникальных товарных позиций, весь накопленный объем каталога «Магнит» уступает только Amazon и содержит более 760 тысяч SKU. В то же время система управления основными данными ежедневно обновляет цены.
Делать это вручную было бы безумием.
Автоматизация складского комплекса площадью в десятки тысяч квадратных метров – задача непростая.
У «Магнита» их 45. Повсеместно поддерживаются процедуры приемки, сортировки и размещения товаров, контроля качества и отгрузки, а также долговременного хранения и формирования «оперативного резерва» для бесперебойной работы сети в течение необходимого периода.
Кроме того, каждый из тысяч магазинов — это, по сути, еще и прогрессивный склад: заложена логика комплексной приемки, когда каждый товар проверяется по нескольким показателям качества, наличия на складе, продаж и даже движения между торговыми точками.
Поэтому «Магнит» живет на тысячах серверов и использует сотни тысяч единиц сетевого оборудования.И хотя это звучит удивительно, по сути всё было создано нами самостоятельно.Все упаковано в более чем 600 информационных систем и сервисов.
Настоящее IT родом из 90-х
Сегодня в ИТ-команде около 3500 специалистов, половина из них занимается разработкой и внедрением, другая половина обеспечивает поддержку и сопровождение, в том числе на месте.В конце 90-х все было скромнее.
Компания родилась в Краснодаре, где были открыты первые магазины.
ИТ-отдел тогда состоял из 6 человек.
Магазин «Магнит» в конце 1990-х.
Самой первой собственной разработкой стала программа для управления складом и учета торговых операций.
Он был переписан из готового продукта под клиент-серверную архитектуру и быстро набиравшую популярность в то время операционную систему Windows. Так родился «Громовой склад» — основная система учета запасов и управления товародвижением; интерфейс написан на Delphi, база данных — на Firebird. Кстати, «Тандер» — юридическое название «Магнита», и в Краснодаре его любят едва ли не больше, чем привычную торговую марку.
И это тоже «Магнит», Сочи.
В 2006 году основная база данных не выдержала быстрого роста сети, ее передали Oracle, и она до сих пор живет под аббревиатурой БДСМ — «База данных сети Магнит».«Магнит» охватил 3700 населенных пунктов от Центрального округа до Сибири.Со временем мы устали жить в БДСМ и постепенно сокращаем базу.
Примерно 10% магазинов не имеют стабильного интернета.
Поэтому для складской программы важна децентрализация: наша система способна подниматься внутри магазинов даже при проблемах с Интернетом и низкой мощности оборудования.
За годы своего существования «Громовой склад» «оброс» артефактами и модификациями и очевидно сегодня требует реформирования.
Из больших коробок невозможно получить аналогичный функционал, поэтому мы «переписываем» систему.
Эта задача особенно нетривиальна, потому что большая сеть требует целостности цепочки поставок: мы обновляем складскую, транспортную системы и систему прогнозирования вокруг цифрового ядра на SAP.
Один из наших распределительных центров - склады
Что на самом деле находится под капотом фудтрака?
Прежде чем углубляться в инфраструктуру компании, я ожидал, что коробочных решений будет больше.Оказалось, что «Магнит» уже давно идет по пути собственного развития: в начале 2000-х годов, в условиях «дикого капитализма», поведение потребителей было сложно прогнозировать.
Было сложно предсказать, какая коробочная система будет работать, а какая нет. «Магниту» необходимо было создать кастомизированные сервисы, обеспечивающие возможность совершать покупки в любой точке сети в любое время.
Не случайно следующей ключевой исторической системой является кассовый аппарат.
Кассовый аппарат самообслуживания Кассовый аппарат был написан на C++, и через него до сих пор проходит около 15 миллионов чеков в день.
Система работает автономно практически на любом оборудовании и будет доступна даже в условиях Армагеддона.Такая ИТ-платформа обеспечила взрывной рост сети.
Это была невероятная скорость: фактически открытие магазина происходило как гонка: «Есть вывеска, есть товар! Кассовое оборудование? - Расходы.
«Мы открываемся!» Компания культивировала индивидуальный подход. Вот мы и построили свои дата-центры — у нас их четыре — раньше я видел только чужие дата-центры.
И все же такая история развития информационной части «Магнита» нетипична для крупного бизнеса.
Сейчас этот подход нельзя однозначно назвать преимуществом; скорее, это накопленная сложность.
Неизвестное об известных технологиях
В «Магните» я открыл для себя знакомые технологии с новой стороны.Например, мои представления о возможностях 1С были, скажем так, неполными.
Здесь я увидел, что реально можно выжать из этих систем.
Корпоративная информационная система (КИС) ERP в «Магните» интегрирована с 20 системами на платформе 1С.Центр кассового управления ежедневно формирует 15 млн платежных документов, формирует сводную аналитику и сверяет данные по видам платежей, собирает отчеты с учетом каждой транзакции по каждому магазину.В общей сложности все базы данных СНГ содержат более 110 ТБ информации.
Ежедневно в системе создаются сотни тысяч документов и осуществляются платежи на десятки миллиардов рублей.
И просто взять кассовый аппарат и отнести его в другое место нельзя: контроль места регистрации в случае несовпадения данных блокирует операцию и сигнализирует о нарушении.
Единый расчетно-кассовый центр Система управления транспортным предприятием (ТЕМ) вряд ли имеет аналоги в мире 1С.
«Магнит» обладает одной из крупнейших логистических сетей в Европе — УТП контролирует более 10 000 единиц собственной техники посредством онлайн-мониторинга.
Система обрабатывает около 130 тысяч рейсов в месяц, планирует маршруты, контролирует прибытие в точки, автоматически формирует документы при выгрузке/погрузке.
Здесь также обслуживаются взаиморасчеты, автосервис и даже медицинские осмотры водителей.
Продукция Технологии на любой вкус
Масштаб сети требует использования структуры управления корпоративной архитектурой — TOGAF (The Open Group Architecture Framework) была выбрана для более чем 600 информационных систем.Результатом архитектурного подхода является архитектурное хранилище, в котором хранятся паспорта информационных систем и сервисов, паспорта технологий технологического радара, а также большое количество архитектурных артефактов.
Технологический радар компании включает около 210 технологий, поэтому проще сказать, чего у нас нет. Назову только самые распространенные инструменты: Java, Python, Swift, Kotlin, C#, C++, PHP, Delphi, Oracle, PostgreSQL, продукты SAP, 1С.Наш технический радар отражает четыре этапа работы с технологией: Hold (не расширять и не вырезать), Assess (пробовать осторожно), Trial (активнее применять), Adopt (внедрять и распространять).
Технический радар многоканальной команды
Здесь новый поворот – жажда трансформации
Существующие подходы в ИТ прекрасно решили проблемы «классического ритейлера».Но сейчас нам важно быть омниканальными и постоянно запускать новые направления.
Таким образом, возникла необходимость проведения цифровой трансформации.
Наша главная цель — создать вокруг бренда «Магнит» экосистему дополнительных сервисов на базе SuperApp.Учитывая масштабы, смело разворачиваем наш грузовик, почти не снижая скорости.
Упрощенно, ИТ-трансформация включает в себя четыре направления:
- обновить архитектуру;
- развивать инфраструктуру дата-центров, PaaS (доступ к облакам) и Collocation;
- ускорить выход на рынок;
- создавать центры экспертизы и создавать новую, более открытую культуру.
Руслан Волков на митапе - «DevOps: от SVN к конвейеру в GitLab» Мы классифицировали все системы по категориям и выбрали стратегию для каждой категории:
- отключаем или уже отключили устаревшие части;
- заменяем системы на большие коробки;
- Мы продолжаем развиваться с некоторыми изменениями;
- Пишем с нуля, так как аналогов на рынке нет, и у нас есть опыт.
У нас уже есть системы в Таргете, а есть те, у которых цикл обновления составляет 1-3 месяца.
Это очень долго.
Для достижения этой цели мы разрабатываем подход DevOps. Первопроходцами в 2018 году стали команды разработчиков СУАГ — платформенной системы для управления ассортиментными матрицами.
Затем мы отобрали семь команд и поэтапно запустили проекты в тех областях, которые приносят ощутимую ценность для бизнеса.
Цель этих команд — пройти все этапы автоматизации и сохранить экспертизу, чтобы команда самостоятельно отслеживала и ускоряла цикл выпуска на основе метрик из Jira.
Мы строим DevOps на стеке Kubernetes, Ansible, Helm, Terraform, Docker, Grafana Loki, Prometheus. Мы многое предоставляем в качестве услуги.Кроме того, мы расширяем возможности нашей инфраструктуры.В настоящее время мы тестируем три внутренние системы, одна из которых — служба единого входа.
Чтобы избежать каких-либо ограничений, мы выбрали партнера по колокейшн, инвестировали ресурсы в дата-центры уровня Tier III и использовали распределенное облачное хранилище PaaS. В облаке PaaS уже запущены новые проекты — электронная коммерция и онлайн-сервисы.
Корпоративная платформа данных основана на решениях Teradata, Oracle Exadata и Informatica Hadoop. Здесь начинаются большие данные.
Технические головоломки нового века
В ходе активной продуктовой трансформации перед компанией стоит множество нестандартных задач.Например, мы создали собственную платежную систему Магнит Pay (Python/Go, Swift, Kotlin) для оплаты товаров виртуальной картой «Магнит».
Покупатель получает бонусы по программе лояльности, а компания – экономию на эквайринге.
Обсуждаем мобильное приложение в коворкинге на Белорусской Пример интересной и запутанной проблемы — решение проблемы выхода из системы.
Мобильное приложение «Магнит: акции и скидки» было запущено совместно с подрядчиком и ориентировано, прежде всего, на скорость.
После каждого обновления приложение вылетало, сейчас около 5 миллионов пользователей, а цель 50 миллионов, то есть мы хотим, чтобы приложением пользовался каждый участник программы лояльности.
Проблема логинов появилась не сразу, она постепенно нарастала и в какой-то момент стала критической.Несколько подсистем повлияли на время авторизации; время жизни сессий в них было разным, от 30 до 365 дней.Все регистрировались каждые 30 дней.
Мы привели время жизни к единому значению, но проблема не исчезла.
Оказалось, что при обновлении токенов время жизни сессии не обновлялось.
Однако это решение не решило проблему.
Затем мы изучили графики ошибок сервисов и поняли, что фрод-атаки влияют не только на нагрузку, но и на производительность сервисов.
Некоторые из них подали ошибочный сигнал о том, что доступ запрещен из-за недействительных сессий.
Хотя это был вопрос загруженности.
Мы научились избегать выхода пользователей из системы, даже если с сервера пришла ошибка авторизации.
Заодно мы настроили WAF (брандмауэр веб-приложений) и попутно решили проблемы с фродом и нагрузкой.
Кстати, поскольку проблема с логинами ушла не сразу, мы не смогли изменить время жизни уже созданных токенов в Keycloak. Сначала мы думали, что сможем забанить пользователей с помощью брандмауэра, поэтому включили аутентификацию и авторизацию в системные метрики.
Это позволило нам наглядно наблюдать, как наши действия влияют не только на мониторинг серверных сервисов, но и на общее использование приложения.
Приложение «Магнит: акции и скидки» В конце 2020 года мы сделали редизайн приложения.
Часто бывает, что перезапуск приложения вызывает недовольство, но у нас получилось наоборот — рейтинг приложения в магазине заметно вырос: с 2,2 до 4,5 в App Store и 4,2 в Google Play Store.
С большой силой приходит интеллектуальная стандартизация
В «Магните» работает более 315 тысяч человек, что почти равно населению Исландии.Это крупнейший частный работодатель в стране и самый крупный лично в моей карьере.
Управлять технологическим разнообразием в «Магните» — значит идти по пути разумной стандартизации.
Это большая ответственность и настоящий технологический вызов.
Мы не говорим, что сейчас возьмем и «все перепишем».
Скорее надо навести порядок: списать ненужное, заменить, включить в конвейер внедрение больших коробок, перезапустить и доработать.
В крупном ритейле невозможно всегда двигаться в одном темпе; это кропотливая работа: системы разбросаны по этапам жизненного цикла, каждая группа требует особого подхода.
С другой стороны, время быстрых перемен предоставляет большие возможности в плане выбора технологий и внедрения решений.
Например, в молодой команде разработчиков онлайн-сервисов мы двигаемся очень быстро; мы используем инструменты Kotlin, Swift, Golang, Python, PHP, GraphQL, Grafana и Kubernetes.Я сторонник плавного, но уверенного движения в выбранном направлении.
Мы проверяем наши технологические радары ежеквартально.
Некоторые вещи мы отложили, но также ввели в пробную версию много нового.
В то же время необходимо периодически проверять «накопленное богатство», сокращать ненужное разнообразие и внедрять новые технологии, контролируя таким образом стоимость владения.
Наша цель — снизить совокупную стоимость владения за 2022 год на 200 млн рублей.
Расширение магнитного поля
«Магнит» — самый известный ИТ-работодатель.в Краснодаре.
В 2019 году компания изменила отношение не только к информационным системам, но и к поиску талантов.
В результате были созданы два центра разработки: в Иннополисе под Казанью и в подмосковном Сколково.
Наша IT-команда на митапе в Иннополисе В «Сколково» мы тестируем идеи, которые пока не подходят для прямых инвестиций, но представляют бизнес-интерес.
Если нас интересует какая-то инновация, мы реализуем пилот. Таким образом, команда рассматривает около 2000 проектов в год. Розничная торговля — это мир физических объектов, поэтому нас интересуют решения IoT. Например, к датчикам, которые следят за состоянием шин.
В нашем автопарке более 4000 грузовых автомобилей.
Любая поломка из-за износа шин не только увеличит логистическую нагрузку, но и создаст опасность на дороге.
Решение IoT своевременно уведомляет вас о необходимости замены и помогает поддерживать ваш автопарк в идеальном состоянии.
Датчики недавно прошли испытания, и сейчас мы обрабатываем первые результаты.
ИТ-лаборатория в Иннополисе — это автономная команда EMMobile, занимающаяся разработкой системы для терминалов сбора данных и других корпоративных мобильных устройств.
Сотрудник склада с терминалом сбора данных Системы EMM (Enterprise Mobility Management) есть на рынке, но нам нужно было установить их на 100 000 терминалов сбора данных.
Для каждого устройства требуется лицензия, поэтому экономически выгоднее разработать собственный продукт. Здесь ставка сработала, и поэтому осенью мы расширяем наш кластер в Иннополисе.
Кроме того, переход на удаленную работу позволил нам нанимать людей в любом городе России, поэтому встретить нашего разработчика можно где угодно: от Керчи и Армавира до Омска и Барнаула.
Широкий спектр кейсов: от Tarantula и генерации кода в Go до битвы с Keycloak
В этой статье я рассказал о своей истории «погружения» в IT-часть розничной сети, магазины которой ежедневно посещает треть россиян.В нашем блоге мы будем делиться удачными техническими решениями, анализировать неудачи и продолжать тюнинговать наш большой автопоезд продуктами, косметикой и всем необходимым.
Что именно из нашего прошлого и будущего опыта будет вам полезно? Теги: #python #Разработка мобильных приложений #it-инфраструктура #DevOps #JavaScript #golang #java #php #Разработка электронной коммерции #ERP-системы #Kotlin #центр обработки данных #электронная коммерция
-
Aspire Продлевает Срок Службы Батареи
19 Oct, 24 -
Преимущества Технологии Xml
19 Oct, 24 -
Контроль Отрицательных Остатков
19 Oct, 24 -
Миниатюра Usb-Кнопки
19 Oct, 24