Привет! Меня зовут Валентин Щитов, я CIO компании «Магнит».
До момента прихода в «Магнит» весной 2020 года я руководил IT-департаментом большого e-commerce проекта и за 10 лет сформировал полное представление, как работает онлайн-ритейлер.
Однако и офлайн-ритейлер с историей в четверть века меня удивил. Приятно или нет — расскажу дальше.
Размер имеет значение
Снаружи кажется, магазин устроен просто — приехала машина, разгрузили, товар выложили на полку, кассир выбил чек — всё. Но когда в сети 22 000 розничных магазина, то даже перечислить все связывающие их IT системы — нетривиальная задача.
Хотя покупатель видит на полках магазинов пару сотен уникальных товарных позиций, весь накопленный объем каталога «Магнита» уступает разве что «Amazon» и содержит более 760 тысяч SKU. При этом система управления мастер-данными ежедневно актуализирует цены. Делать это в ручном режиме было бы безумием.
Автоматизация складского комплекса в десятки тысяч квадратных метров — дело нелегкое. У «Магнита» таких — 45. Везде поддерживаются процедуры приемки, сортировки и размещения товара, контроля качества и отгрузки, а ещё долгосрочное хранение и формирование «оперативного запаса» для бесперебойной работы сети в течение необходимого срока. Кроме того, каждый из тысяч магазинов — это, по сути, тоже прогрессивный склад: заложена логика комплексной приемки, когда сверяется каждый товар по нескольким показателям качества, инвентаризации, продажи и даже перемещения между торговыми точками.
Поэтому «Магнит» живет на тысячах серверов, использует сотни тысяч единиц сетевого оборудования. Всё упаковано более чем в 600 информационных систем и сервисов.
И хотя звучит удивительно, в основном всё создавалось собственными силами.
Тру айти родом из 90-х
Сегодня в IT команде около 3500 специалистов, половина из них — разрабатывает и внедряет, другая половина осуществляет поддержку и сопровождение, в том числе на местах.
В конце 90-х все было скромнее. Компания зародилась в Краснодаре, там же открывались первые магазины. Отдел IT тогда состоял из 6 человек.
Самой первой собственной разработкой стала программа управления складом и учетом торговых операций. Её переписывали из готового продукта под клиент-серверную архитектуру и операционную систему Windows, в ту пору стремительно набирающую популярность. Так родился «Тандер-склад» — основная система товарного учета и управления товародвижением, интерфейс написали на Delphi, базу данных — на Firebird.
Кстати, «Тандер» — это юридическое название «Магнита», и в Краснодаре его любят чуть ли не больше, чем знакомое всем название бренда.
В 2006 году стремительного роста сети не выдержала основная база данных, ее перенесли на Oracle, и до сих пор она живет под аббревиатурой БДСМ — «База данных сети Магнит». Со временем мы устали жить в ̶с̶т̶и̶л̶е̶ БДСМ и постепенно распиливаем базу.
«Магнит» охватил 3700 населенных пунктов от Центрального округа до Сибири. Примерно в 10% магазинов нет стабильного интернета. Поэтому для складской программы важна децентрализация: наша система способна подниматься внутри магазинов даже при проблемах с интернетом и слабой мощности оборудования.
«Тандер-склад» за годы существования «оброс» артефактами и доработками, и очевидно, сегодня требует реформации. Из больших коробок невозможно получить аналогичный функционал, поэтому мы “переписываем” систему. Такая задача особенно нетривиальна, потому что большой сети необходима целостность цепочки поставок: мы обновляем складскую, транспортную системы, систему прогнозирования вокруг цифрового ядра на SAP.
Что на самом деле под капотом у фуры с продуктами
До погружения в инфраструктуру компании я ожидал, что коробочных решений будет больше. Оказалось, «Магнит» долго шел по пути собственной разработки: в начале нулевых в условиях «дикого капитализма» спрогнозировать поведение потребителя было трудно. Было сложно предвидеть, какая коробочная система подойдет, а какая нет.
«Магниту» нужно было создавать кастомизированные сервисы, чтобы давать возможность покупать в любой точке сети в любой момент времени. Не случайно следующая ключевая историческая система — касса.
Кассу писали на C++, и через нее до сих пор проходит около 15 миллионов чеков в день.
Система работает автономно почти на любом железе и будет доступна даже в условиях Армагеддона.
Такая IT-платформа обеспечивала взрывной рост сети. Это была невероятная скорость: по сути, открытие магазина происходило, как гонка: «Вывеска есть, товар есть! Кассовое оборудование? — Стоит. — Открываем!».
Компания культивировала подход «всё своё». Так построили собственные дата-центры — у нас их четыре — раньше дата-центры я видел только чужие.
И всё же такая история развития информационной части «Магнита» нетипична для крупного бизнеса. Сейчас однозначно назвать такой подход преимуществом нельзя, скорее, это накопленная сложность.
Неизвестное об известных технологиях
В «Магните» я открыл привычные для себя технологии с новой стороны. Например, мои представления о возможностях 1С были, скажем так, неполными. Здесь я увидел, что реально можно выжать из этих систем.
Корпоративная информационная система (КИС) ERP в «Магните» интегрирована с 20 системами на платформе 1С. Суммарно все базы данных КИС содержат больше 110 ТБ информации. Ежедневно в системе создают сотни тысяч документов и проводят оплаты на десятки миллиардов рублей.
Центр управления кассами ежедневно формирует 15 миллионов платежных документов, создает сводную аналитику и сверяет данные по видам оплат, собирает отчеты с учетом каждой транзакции в разрезе каждого магазина.
А еще кассу нельзя просто взять и унести в другое место: контроль места регистрации в случае несовпадения данных блокирует работу и сигнализирует о нарушении.
Система Управления Транспортным Предприятием (УТП) вряд ли имеет аналоги в мире 1С. У «Магнита» одна из крупнейших в Европе логистических сетей — УТП контролирует более 10 000 единиц собственной техники через онлайн мониторинг. Система обрабатывает около 130 тысяч рейсов в месяц и планирует маршруты движений, контролирует прибытие на точки, автоматически формирует документы при разгрузке/погрузке. Она же обслуживает взаиморасчеты, автосервис и даже медосмотр водителей.
Т̶о̶в̶а̶р̶ы̶ Технологии на любой вкус
Масштаб сети требует использовать enterprise-фреймворк управления архитектурой — для более чем 600 информационных систем выбрали методику TOGAF (The Open Group Architecture Framework).
Результат архитектурного подхода — архитектурный репозиторий, где хранятся паспорта информационных систем и сервисов, паспорта технологий из технологического радара, а также большое количество архитектурных артефактов.
Технологический радар компании включает около 210 технологий, так что проще сказать, чего у нас нет. Назову лишь самые распространенные инструменты: Java, Python, Swift, Kotlin, C#, С++, PHP, Delphi, Oracle, PostgreSQL, продукты SAP, 1С.
Наш техрадар отражает четыре стадии работы с технологией: Hold (не расширяем или выпиливаем), Assess (пробуем осторожно), Trial (применяем активнее), Adopt (внедрили и распространяем).
Вот, новый поворот — жажда трансформации
Сложившиеся подходы в IT отлично решали задачи «классического ритейлера». Но сейчас нам важно быть омниканальными и постоянно запускать новые направления. Так появилась необходимость совершить цифровую трансформацию.
Наша главная цель — создать вокруг бренда «Магнит» экосистему комплементарных сервисов на базе SuperApp.
С учетом масштабов мы смело поворачиваем наш грузовик, почти не сбавляя скорости.
Упрощенно, IT трансформация предусматривает четыре направления:
обновить архитектуру;
развить инфраструктуру дата-центров, PaaS (выход в облака) и Collocation;
ускорить time to market;
создать центры экспертиз и сформировать новую, более открытую культуру.
Мы классифицировали все системы по категориям и для каждой категории выбрали стратегию:
выключаем или уже выключили отжившие части;
заменяем системы крупными коробками;
продолжаем развивать с некоторыми доработками;
пишем с нуля, так как на рынке нет аналогов, а у нас есть экспертиза.
Важный вопрос в рамках общей стратегии — сократить релизный цикл до среднего показателя в 14 дней. У нас уже есть системы в таргете, а есть такие, цикл обновления которых 1-3 месяца. Это очень долго. Для этого мы развиваем DevOps подход.
Первопроходцами в 2018 году стали команды разработки СУАГ — платформенной системы управления ассортиментными матрицами. Затем мы отобрали семь команд и запустили проекты волнами по направлениям, которые приносят ощутимое business value. Цель этих команд — пройти все шаги по автоматизации и сохранить экспертизу таким образом, чтобы команда самостоятельно отслеживала и ускоряла релизный цикл на основе метрик из Jira.
Мы строим DevOps на стеке Kubernetes, Ansible, Helm, Terraform, Docker, Grafana Loki, Prometheus. Многое предоставляем как сервис. Сейчас идет пилотирование трех внутренних систем, одна из которых — SSO сервис.
Кроме того, мы расширяем инфраструктурные мощности. Чтобы избежать любых ограничений, выбрали партнера для Colocation, вкладываем ресурсы в Tier III ЦОД, используем распределенные облачные хранилища PaaS. В PaaS клауде уже запущены новые проекты — e-commerce и онлайн-сервисы. Корпоративная платформа данных организована на решениях Teradata, Oracle Exadata, Informatica Hadoop. Здесь начинается Big Data.
Технические головоломки нового времени
Во время активной трансформации продукта перед компанией встает много нестандартных задач. К примеру, мы создали собственную платежную систему Magnit Pay (Python/Go, Swift, Kotlin) для оплаты товаров виртуальной картой «Магнит». Покупатель получает бонусы по программе лояльности, а компания — экономию на эквайринге.
Пример интересной запутанной задачи — решение проблемы разлогинов. Мобильное приложение «Магнит: акции и скидки» запускали вместе с подрядчиком и ориентировались в первую очередь на скорость. После каждого обновления приложение “взлетало”, сейчас там около 5 миллионов пользователей, а цель - 50 миллионов, то есть мы хотим, чтобы каждый участник программы лояльности пользовался приложением.
Проблема разлогинов проявилась не сразу, постепенно росла и в какой-то момент стала критической. Разлогирование шло у всех раз в 30 дней.
Несколько подсистем влияли на время авторизации, время жизни сессий в них было разное, от 30 до 365 дней. Мы привели время жизни к единой величине, но проблема не исчезла. Оказалось, что при обновлении токенов не обновлялось время жизни сессии. Однако и это решение не избавило от проблемы. Тогда мы изучили графики ошибок сервисов и поняли, что атаки фродеров влияют не только на нагрузку, но и на работоспособность сервисов. Некоторые из них давали ошибочный сигнал о том, что доступ запрещён из-за невалидных сессий. Хотя дело было в нагрузке. Мы научились избегать разлогинивания пользователей, даже когда от сервера приходила ошибка авторизации. Одновременно настроили WAF (файрвол веб-приложений) и попутно решили проблемы фрода и нагрузки.
Кстати, так как проблема разлогинов ушла не моментально, мы не могли изменить время жизни уже созданных токенов в Keycloak. Поначалу думали, что можем банить пользователей файрволом, поэтому покрыли аутентификацию и авторизацию системными метриками. Это позволило явно наблюдать, как наши действия влияют не только на мониторинг бекенд-сервисов, но и на обычное использование приложения.
В конце 2020 года мы провели редизайн приложения. Часто бывает, что перезапуск приложения провоцирует недовольство, а у нас получилось наоборот — рейтинг приложения в store заметно вырос: с 2.2 до 4.5 в App Store и 4.2 в Google Play Store.
С великой силой приходит разумная стандартизация
В «Магните работает больше 315 000 человек — это почти население Исландии. Это крупнейший частный работодатель в стране и крупнейший лично в моей карьере.
Управлять технологическим многообразием в «Магнит» — значит идти по пути разумной стандартизации. Это большая ответственность и настоящий технологический challenge.
Мы не говорим, что сейчас возьмем и «всё перепишем». Скорее нужно навести порядок: выводить из эксплуатации ненужное, заменять, включать в pipeline внедрение крупных коробок, перезапускать и дорабатывать. В крупном ритейле невозможно всегда двигаться в одинаковом темпе, это кропотливая работа: системы разбросаны по этапам жизненного цикла, к каждой группе нужен особый подход.
С другой стороны, время стремительных перемен — это большой простор в плане выбора технологий и реализации решений.
Например, в молодой команде разработки онлайн сервисов мы движемся очень быстро, используем инструменты Kotlin, Swift, Golang, Python, PHP, GraphQL, Grafana и Kubernetes.
Я сторонник плавного, но уверенного движения в выбранном направлении. Мы пересматриваем радары своих технологий раз в квартал. Что-то ставим на hold, но и в trial привносим немало нового.
При этом нужно периодически осматривать «накопленное богатство», сокращать излишнее многообразие и внедрять новые технологии, таким образом контролируя стоимость владения. Наша цель — уменьшить TCO на 2022 год на 200М рублей.
Расширяем магнитное поле
«Магнит» — самый известный IT-работодатель.... в Краснодаре. В 2019 году компания поменяла отношение не только к информационным системам, но и к поиску талантов. Как следствие, создали два центра разработки: в Иннополисе, недалеко от Казани, и в подмосковном Сколково.
В Сколково мы тестируем идеи, которые пока не подходят для прямых инвестиций, но представляют бизнес-интерес. Если нас заинтерсовала какая-то инновация, мы реализуем пилот. Так команда за год рассматривает около 2000 проектов.
Ритейл — мир физических объектов, поэтому у нас есть интерес к IoT-решениям. Например, к датчикам, которые следят за состоянием покрышек. В нашем автопарке более 4000 грузовиков. Любая поломка из-за износа покрышек не только увеличит логистическое плечо, но и создаст опасность на дороге. IoT-решение вовремя сообщает о необходимости замены и помогает поддерживать автопарк в идеальном состоянии. Датчики недавно протестировали, сейчас обрабатываем первые результаты.
IT-лаборатория в Иннополисе — автономная команда EMMobile, которая разрабатывает систему для терминалов сбора данных и других корпоративных мобильных устройств.
Системы EMM (Enterprise Mobility Management — управление корпоративными мобильными приложениями) присутствуют на рынке, но нам необходимо было установить их на 100 000 терминалов сбора данных. Каждое устройство требует лицензии, поэтому экономически эффективнее разработать свой продукт. Тут ставка сыграла, и поэтому с осени мы расширяем наш кластер в Иннополисе.
Кроме того, переход на удаленку позволил нам нанимать людей в любом городе России, поэтому встретить нашего разработчика можно где угодно: от Керчи и Армавира до Омска и Барнаула.
Широкий ассортимент кейсов: от Tарантула и кодогенерации на Go до битвы с Keycloak
В этой статье я рассказал о своей истории «погружения» в IT-часть ритейл-сети, в магазины которой ходит треть России каждый день. В нашем блоге мы будем делиться удачными техническими решениями, анализировать фейлы и продолжать тюнинговать наш большой автопоезд с продуктами, косметикой и всем необходимым.
Что именно из нашего прошлого и будущего опыта будет полезно вам?
Комментарии (99)
ChePeter
03.08.2021 12:28+4Очень хорошая статья. Нужно расписать поподробней, по мере возможности, особенно техническую, алгоритмическую стороны. Был бы рад прочесть.
Ну и как старый кризисный управляющий не могу не задать вопрос:
Вы, IT мастера, тихо тихо отстраняете от принятия решений мастеров торговли. Большую часть решений начинает принимать программа и, фактически, торгуют те, кто этому не обучен и те, кто обучен торговать, не пишут код и не влияют на архитектуру.
Вот директор Магнита в спальном районе может повлиять на алгоритм заставки полки? Да никак, он даже не знает куда ему написать про это.
Или программист, аналитик, архитектор представляют себе тонкости и результат своего вмешательства в торговлю?
Мне кажется это большая и сложная проблема компетенции и администрирования. Очень интересно мнение @Mahor
Спасибо.
Mahor Автор
03.08.2021 13:32+1Спасибо за вопрос. Вместо отстранения IT от бизнес функции и доменной экспертизы, мы наоборот начинаем их сближать, запуская совместные продуктовые команды. Это позволяет инженерам глубже понимать результаты, а доменный экспертам представлять особенности технической реализации. И очень важно, что все начинают оценивать результат одинаково - через метрики, которые максимально объективно раскрывают суть.
kolabaister
03.08.2021 13:33Отличная статья, много интересного.
А можно поподробнее про Magnit Pay? В частности меня удивила ремарка про экономию на эквайринге - если это не тайна, то о каких цифрах идет речь? И что входит в издержки поддержания решения?
FODD
03.08.2021 14:12+1Был опыт работы в пятерочке на кассе в 2016. Но тут это не так важно
В городе миллионике магазин в спальном районе генерил около 1,2кк руб товароборота. Исходя из моего опыта на кассе - примерно треть денег шло безналом.
Допустим, что такой крупной и выгодной сети эквайринг встанет в 1% по спец.договору (в среднем по рынку 2-3%), т.е. около 4к рублей на магазин. У магнита магазинов 44к. Итого сторонний эквайринг вставал им минимум 176кк в месяц.
Не знаю точно, что нужно для организования эквайринга с правовой точки зрения, оставим более знающим людям.
Но с технической, мне кажется, человек 100 разношерстного персонала (менеджеры, тестеры, разрабы, начальство) хватит за глаза. Допустим их зарплата около 10кк. Еще столько-же - обслуживание оборудования.
На вскидку имеем 150кк руб/мес экономии (читай - профита) за счет своего эквайринга. По факту цифры будет больше - большая популярность карт из-за технического прогресса и законов - больший % денег через безнал.
kolabaister
03.08.2021 14:24Представить себе абстрактные цифры я могу, в масштабах Магнита даже сотые доли процента экономии на комиссии будут весьма существенной суммой.
Но меня смущает себестоимость поддержки решения, и на чем тут собственно экономия будет - то есть как владелец кобрендинговой виртуальной карты может влиять на стоимость операции.
mgnthorn
03.08.2021 18:09БОльшая часть эквайринговой комиссии через Interchange Fee возвращается эмитенту карты. Соответственно если оплата идет через карты, эмитентом которых является Магнит, экваринговая комиссия сводится к минимуму.
SinsI
03.08.2021 15:59Интересно бы узнать, сколько на таких карточках хранят денег?
Потому что покупатели беспроцентно кредитуют Магнит на ту сумму, что хранят на карточке, и прибыль с этого - вполне сравнима с эквайрингом:
Допустим, у каждого магазина в среднем 30 клиентов с такой картой, и каждый в среднем держит по 10к на ней. Тогда 44к*10к*30=13ккк беспроцентного кредита, выдаваемого этими лояльными покупателями. При 10% ставке по кредитам для юридических лиц это эквивалентно 130кк в месяц экономии на процентах по ним.
kolabaister
03.08.2021 18:31Нет, деньги лежат на счету в банке. ВТБ как я понял. Для того чтобы можно было так делать, Магниту была бы нужна банковская лицензия со всеми вытекающими.
Так что такая логика неприменима.
SinsI
03.08.2021 19:35FAQ говорит про Западно-Сибирский коммерческий банк.
А конкретные обстоятельства определяются каким-нибудь соглашением между этим банком и Магнитом, так что вполне себе может быть применима.
SADKO
04.08.2021 11:02Да, но не обязательно. Можно просто продавать подарочные карты, что многие уже давно делают, а можно условия по этим картам сделать интересными и тогда, почему бы и да. И никакой лицензии.
Дружба с банком тоже может быть хороша и обоюдно интересна, хотя и не так как прежде.
Soarerru
18.08.2021 08:24Деньги лежат на счету, но используются Магнитом как свои. То есть вполне себе бесплатный кредит. Плюс банк ещё и процент на остаток на депозите накинет.
Другой вопрос, что вряд ли кто держит там по 10к. Я побаловался один месяц с картой Мегафона, потом мне "внезапно" убрали кэшбек, и история закончилась. Так же и тут: кэшбек+процент по обычной карте может быть выгоднее кобрендингового предложения.
arxell
03.08.2021 15:31+1В мобильном приложении «Магнит» мы с партнёрами из ВТБ реализовали платежное решение Magnit Pay. Для оплаты покупателю нужно пополнить счёт на карте Magnit Pay и добавить ее в один из сервисов бесконтактной оплаты (Aplle Pay и пр.), чтобы затем воспользоваться картой на кассе. Оплата происходит без участия платежных систем, непосредственно со счета покупателя. Если телефон не поддерживает NFC, то оплатить можно по QR коду. Настройка решения стала одной из технических «головоломок» для команды
edo1h
03.08.2021 20:52это карта какой-то МПС (visa, mastercard, …) или внутренняя?
arxell
04.08.2021 09:10это виртуальная карта VISA
SADKO
04.08.2021 11:10Используемая в качестве id и гаранта? Или как иначе платёжная система остаётся безучастной?
nadya_blau
05.08.2021 08:48Добрый день! При оплате виртуальной картой мы экономим на банковской комиссии, а не на комиссии платёжной системы. А вот при оплате через PQR уже на комиссии платёжной системы. Экономия реинвестируется - возвращается покупателю в баллы по программе лояльности.
nadya_blau
12.08.2021 00:00Добрый день! При оплате виртуальной картой мы экономим на банковской комиссии, а не на комиссии платёжной системы. А вот при оплате через PQR уже на комиссии платёжной системы. Экономия реинвестируется - возвращается покупателю в баллы по программе лояльности.
Mishiko
03.08.2021 13:57+3Извините, но пользуясь случаем напишу что мобильное приложение от Магнита ужасно.
При регистрации требует излишне сложный пароль (длина 8 символов + цифры), который конечно мгновенно забывается (в подсказке, предлагающей автоматически сгнеренный пароль, он еще страшнее и однозначно не запоминаем). Аутентификации с помощью отпечатка пальца не предусмотрено.
Если пароль забыт (что более чем естественно), то есть процедура восстановления которая подразумевает отправку ссылки для web-страницы (!) смены пароля с помощью СМС (денег Вам своих не жалко?). Открытие предложенной ссылки в Яндекс.Браузере на платформе Андроид дает насладиться формой смены пароля не более секунды, так как после полной загрузки страницы (то ли не адаптированной под мобильные устройства, то ли криво адаптированной) форма исчезает и найти ее не представляется возможным. Справедливости ради отмечу что Хром под Андроид с разметкой этой страницы справляется гораздо лучше.
После неоднократных попыток и экспериментов с попыткой восстановить пароль, меня залочили (что логично), но узнал я об этом не сразу (сообщение о причинах отказа в доступе пришло явно не сразу, а до этого был молчаливый отказ).
Есть стойкое ощущение что снести приложение, установить его заново и заново зарегистрироваться будет проще (но учитывая предыдущую часть повествования предвижу иные косяки - типа такой пользователь уже зарегистрирован) чем восстановить пароль.
arxell
03.08.2021 16:31Здорово, что вы используете наше приложение и пишите, что нужно поправить. Сейчас как раз готовим к релизу новую версию с упрощенным флоу авторизации, где будет только код из смс. Будет здорово, если после обновления напишите, как изменились впечталения от использования
zaveryukha
03.08.2021 18:13Почему-то мне ваша "касса" через продавца каждый раз сообщает - обновите приложение. приложенька обновлена, карта из apple wallet.
arxell
04.08.2021 08:46К сожалению, из комментария не совсем понятно как именно воспроизводится ошибка. Как вариант, можно удалить и снова добавить карту в валлет через приложение.
zaveryukha
04.08.2021 09:13Не знаю, ошибка ли это. Просто мне каждый раз на кассе сообщают, что надо обновить приложение. Оно обновлено.
Вот я тоже так подумал, что надо удалить и добавить снова. Напишу, что получилось. А то кассиры даже не понимают, какой воркэраунд нужен.
arxell
06.08.2021 16:57Напиши потом получилось или нет пожалуйста
zaveryukha
06.08.2021 17:10неа, тестил из валета - пишет обновите приложение для начисления бонусов (может это и ок, просто кассиры не обученные), а из приложения самого - все ок.
nadya_blau
12.08.2021 00:02добрый день! полезный комментарий, спасибо. Напишу в ЛС, чтобы узнать детали.
tagir_valeev
03.08.2021 14:24А еще кассу нельзя просто взять и унести в другое место: контроль места регистрации в случае несовпадения данных блокирует работу и сигнализирует о нарушении.
А были попытки унести кассу? С какой целью?
tgorokhov
03.08.2021 15:32+3Иногда наши кассиры берут работу "на дом" - живем в эпоху удаленки :) А если серьезно, речь конечно же не про попытки хищения, а про ротацию кассовой техники, которая должна сопровождаться обязательным процессом перерегистрации в учетных системах
Zarclaw
03.08.2021 18:53Магазины закрываются и оборудование необходимо переиспользовать на открывающихся объектах, с учётом процедур и требований регулятора.
drfisher
03.08.2021 15:22Интересный материал, спасибо. Наверно очень непросто было уместить в одну статью 25 лет истории, даже в виде краткой выжимки :)
nadya_blau
03.08.2021 16:03+1Признаемся, первая версия статьи тянула по количеству строк на несколько статей :) Спасибо за положительную оценку нашего подхода "писать и сокращать".
mihmig
03.08.2021 15:47+5Раз уж представился случай, а расскажите нам, Валентин о такой проблеме Магнита(и Пятёрочки, и Перекрёстка и Карусели) - когда на ценнике одна цена, а на кассе пробивается другая.
1. Довод "ой, не успели поменять" не принимается - на кассе пробивается всегда больше чем на ценнике, но никогда - меньше.
2. В торговой сети Глобус (немецкая франшиза) и Леруа (французы) площади торгового зала и SKU поболе вашего будет, но ни разу за 7 лет расхождения между чеком и ценником не было.Fi1osof
03.08.2021 16:56+4Какой хороший и неудобный вопрос! :)
И я под ним подпишусь обеими руками (хоть левой и плохо получается). Чуть не каждый день с этим сталкиваешься (справедливости ради в Дикси то же самое, хотя в Ашане сам ни разу не натыкался (а он сильно больше будет любого магнита)).
Ndividuum
03.08.2021 17:28+1Подозреваю, что проблема с ценниками в первую очередь в ручном труде, а не в ИТ. Не раз замечал, как работники магазина сидят вечерами режут эти бумажки с ценами.
barbaris76
03.08.2021 17:46+2Всё можно решить электронными ценниками на e-ink с обновлением по радиоканалу с сервера (https://habr.com/ru/company/croc/blog/552638/). Надеюсь, наши торговые сети всё-таки внедрят эту технологию.
Manguss
04.08.2021 11:15Еще года четыре назад в Семейном Магните как раз напротив офиса головного Тандер были такие ценники, но через пару лет пропали, что то не взлетело все же у них с ними.
ErshovNV
05.08.2021 16:23Электронные ценники вещь хорошая, но дорогая, современные технологии их производства подразумевают что они проработают до 2-3х лет, и как правило они не обслуживаемые. как мне кажется вопрос -когда будут технологические решения , которые будут: 1- более долговечны в эксплуатации, 2- их себестоимость будет, условно меньше 0.5 доллара.
ИМХО
Bellerogrim
03.08.2021 17:37Неправда ваша. В перекрёстке сейчас нередко не успевают поменять ценник на акционный. Впрочем, перекрёсток в последние годы стал мало отличаться от пятёрочки, раньше более чётко следили, чтобы ценники менялись вовремя. Хотя раньше был другой прикол — сделать скидку на «чипсы Lays Сырные», и над их ценников поставить «чипсы Lays Крабовые».
juray
03.08.2021 20:35Несоответствие соседства ценников и товаров я лично наблюдаю почти постоянно.
Причем, бывает не только перестановка, но и полное отсутствие элемента в паре.
Причем отсутствие товара еще можно понять — «ну, наверно, раскупили» — это тем более вероятно если скидка хорошая. Но встречается и отсутствие ценника.
Надо сказать, это не только в Магните, у других сетей тоже. Но если в других магазинах можно однозначно сопоставить ценник с товаром по штрихкоду — почти всегда на ценнике тот же код, что и на самом товаре, то у Магнита для ценников генерируется какой-то свой код, не совпадающий с товарным.
А по названию сопоставить бывает сложно, когда название сильно сокращают (всякие «шок нач с печ»). Недавно вот выбирал мороженое — хотелось бы взять недорогое, рублей за 50-100 а не за 200-300. Ценники тупо в линейку на краю морозильного ларя. Полностью различить товары можно только по комбинации производитель+название+вкус+вес (ну, к примеру «Морозофф пломбир клубничный 70 г»), но на ценниках полных комбинаций нет, что-то да пропущено…
И ладно бы, если все пары «товар+ценник» были полными, можно было бы решить эту головоломку в стиле «На улице стоят пять домов. Англичанин живёт в красном доме. У испанца есть собака. В зелёном доме пьют кофе.», но нет, пропущенные ценники и пропущенные товары сводят этот шанс к нулю.
Но вообще, это все-таки проблема не техническая, а проявление человеческого фактора (случайное или умышленное — это разговор отдельный).Soarerru
18.08.2021 08:34+1Отсутствие товара при наличии ценника тоже нарушение. Но, видимо, раз его регулярно повторяют - никто за это не наказывает. Славно же: оставить акционный ценник, чтобы приманить покупашку, а товара нет - в любом случае возьмёт похожее по обычной цене. Иногда такие ценники без товара по несколько дней висят. Но это не про ИТ история.
SinsI
24.08.2021 15:23Отсутствие товара при наличии ценника тоже нарушение
А можно узнать, где это прописано?
Как вы вообще представляете его исправление - за каждым покупателем ходит продавец, и если тот забрал последний экземпляр какого-то товара, то немедленно убирает ценник?
Потому что даже проверка по базе данных не гарантирует наличие данного товара - какой-нибудь покупатель запросто может оставить последний экземпляр где-нибудь в торговом зале, не положив его на место.
gremlin244
03.08.2021 22:40+1Все просто же, там тупо не успевают переклеивать ценники, потому что жуткая нехватка рабочих рук. Не знаю уж какие там условия для айтишников, подозреваю что вполне пристойные, но для рядовых работников магазинов там сущий ад, соответственно лютая текучка и постоянный недобор персонала.
На ютубе на канале «Все работы хороши» есть подробное описание того как оно там, тема ценников тоже задета.
ErshovNV
04.08.2021 09:24+1в Магнит ИТ системах нет правил или ограничений, создающих разницу в ценах на кассе не в пользу покупателя. Причина увы банальна- частая смена цен из за акций, или изменения закупочных условий, например от локальных поставщиков. с учетом постоянного дефицита торгового персонала (везде в ритейле в принципе)- персонал не успевает их развесить. Чтобы не ущемлять права покупателя Мы (ИТ) сделали механизм продажи на кассе по цене ценника. Вам достаточно обратиться к кассиру или администратору, и в чеке вам пробьют товар ровно по той цене , что была на ценнике. Ну и конечно мы сделали некоторую защиту от фрода-не получится самим распечатать ценник и принести его в магазин из соседнего магазина например)))
с уважением,
Николай, ДД развития ИТ Магнит
juray
04.08.2021 13:28Наблюдал такую картину: при обращении к администратору тот беспечно произносит «а, забыли поменять» и идет менять ценник, после чего «по цене ценника» превращается в тыкву.
Ну и выясняется несоответствие обычно уже после того как чек пробит — при внимательном изучении чека. Дополнительный дисплей кассы не всегда виден покупателю под углом, позволяющим там что-то прочитать.
Один раз случай пробивки в чеке более высокой цены, чем на ценнике произошел и у меня. Когда я указал на это кассирше, она стала ныть и ворчать — от «мне из зарплаты вычтут» до «да подавись ты, вот тебе разница наличкой из моего кармана» (а платил я картой).
В общем, человеки такие человеки…
В таких условиях отдел ИТ может сколько угодно подстраиваться под покупателя — но пока так же не начнут делать все сотрудники, вплоть до сотрудников зала (и даже в особенности сотрудники зала) — технические меры или не закрывают все кейсы, или потихоньку эскалируются до ситуаци «хакер с солонкой». И да, ИТ-решения это только часть технических мер.ErshovNV
05.08.2021 16:11Что тут сказать, торговый персонал-проблема всех розничных сетей. можно и в ГУМе словить негатив:) наши операции работают над повышением уровня вовлеченности сотрудников.
TyVik
05.08.2021 09:51+1А вы посмотрите на работу в Магните глазами продавца. Там нереально всё успеть. Когда в случайный момент может поменяться цена у нескольких сотен товаров, а вас на смене трое.
mihmig
09.08.2021 12:47+1Эта проблема отлично решается технически (программно):
1. Пришли "изменения цен" на товары.
2. Распечатываем на А4 несколько ценников. Среди них - штрих код подтверждения, что например 8 ценников заменены в зале.
3. Меняем ценники (цена пока старая, т.е. меньше)
4. Возвращаемся к кассе, "пикаем" штрих код подтверждения.
5. Тогда, и только тогда цена на эти товары меняется в БДSoarerru
18.08.2021 08:41Да можно просто не менять цены, пока администратор не подтвердил в компьютере, что они всё поменяли. И давать определённый срок на это. Если срок регулярно пропускается - то работать с этим, там или администратор халатно относится, или рук не хватает. Более того, мне кажется, что срок и сейчас даётся, только после его истечения это становится проблемой администратора магазина, и "шерифа не волнует". А вопли недовольных покупателей - лучшая мотивация, чем звонок "сверху", куда пойдёт стандартный ответ "а у меня персонала только половина".
Soarerru
18.08.2021 08:30Я иногда такой вопрос задаю в магазине. Это больше к ним, так-то. Ну мне вот буквально недавно ответили "а что вы тогда сюда ходите, раз не нравится?"
xxxyurixxx
03.08.2021 18:13+1Очень большой минус магнитов - в магазинах нет прайс-чекеров. С учетом того, что ценники расположены практически в рандомном порядке. Как-то раз вообще наблюдал на одном наименовании три разных ценника с разными ценам. Из сетевиков прайс-чекеров еще только у дикси не было, но и тех магнит купил :)
tgorokhov
03.08.2021 19:42+1На текущий момент прайс-чекерами оборудованы все магазины больших форматов (супермаркеты и гипера), однако уже запущен пилот по оснащению магазинов малых форматов, в рамках которого около 150 магазинов у дома в Москве Санкт-Петербурге и Краснодаре предоставляют данный сервис своим покупателям. В планах компании оснастить прайс-чекеоами все магазины в течении ближайших нескольких лет
mihmig
04.08.2021 10:59А нет планов встроить прайс-чекер в мобильное приложение?
Ходить с каждой позицией через ползала как-то неудобно...
Хотя что это я спрашиваю - конечно же такого не будет, так как это не выгодно в первую очередь сети.nadya_blau
05.08.2021 08:53Добрый день! Конечно такие планы есть: мы очень хотим эту фичу и сейчас прорабатываем, возможно ли это сделать за осмысленные сроки и ресурсы.
Big-Bag
03.08.2021 18:46Кроме того, переход на удаленку позволил нам нанимать людей в любом городе России, поэтому встретить нашего разработчика можно где угодно: от Керчи и Армавира до Омска и Барнаула.
Помню, разговаривал с HR из «Магнита» (удаленная вакансия) — меня отвергли, не доводя до собеседования, из-за разницы в часовых поясах с основной командой.sofya_dongauzer
03.08.2021 20:10Добрый день! Тут все-таки многое зависит от проекта, где-то критично быть на связи с командой большую часть рабочего дня. Предполагаю, что в тот раз был именно такой случай. Мы сейчас активно растем: появляются новые IT-вакансии и варианты сотрудничества, запустился карьерный сайт для tech-направлений Магнит, где вакансии можно выбрать по технологиям и формату работы - посмотрите, может, какая-то заинтересует)
Krat0S
03.08.2021 20:31+1Как забавно)
Вы внедрили гит и пайплайны)
Правда с точки зрения IT, GitLab выбили для использования мы. В частности я. Его по тихому, как обычно, развернули где-то у бизнеса, а ИТМ сидел и жрал SVN.
Потом Игорь Борсов притащил TeamCity.
Я притащил SonarQube.
И мы их продвигали год, наверное. Проталкивали через дебри СИБ, АШ и прочие круги ада. Ну ОАРы там и вот это вот всё.И только после этого заработали первые полноценные "пайплайны". Полный цикл деплоя, от пуша в гит, до автоматического деплоя на сервер или мобилку.
После этого начали подключаться остальные департаменты.
К слову это работало уже в 2017.
tgorokhov
03.08.2021 22:28+2Настоящее и долгосрочные изменения происходят при достижении определенного уровня зрелости всего организма в целом, накоплении критической массы изменений во многих направлениях деятельности ИТ. Чтобы сейчас уверенно говорить о внедрении современных практик потребовалось провести большую работу по упрощению внутренних процессов , включая подходы к документированию, по снижению внутренних барьеров. Это эволюционный процесс, который был запущен когда то новаторами, но результат показал только сейчас, став воплощением в жизнь большого количества усилий многих служб и по настоящему командной работы. Пользуясь случаем, хочу поблагодарить @Krat0S за новаторство и неоценимый вклад в технологическое развитие компании и отметить, что именно благодаря таким людям мы когда то начали шагать вместе в сторону улучшений.
Krat0S
03.08.2021 22:52-1Тимофей, вопрос же не в долгосрочных изменениях (хотя и в них тоже, было сложно)), а в подаче - "мы то, мы это", и нет ничего о тех, кто эти самые "мы", а статью пишет человек, который к этому даже отношения не имел, зато радостно говорит что "переключим на коробки".
ТандерСклад и его система плагинов, Робот, Касса, СУАГ, Автозаказ, Карта точек продаж, Себестоимость, СПРИНТ, ЕГАИС, EMM, это только самые крупные, за каждым из проектов стоят конкретные люди и о них в статье ни слова.Как вообще можно писать "...через кассу до сих пор проходят...", учитывая, что касса в Тандере, проект не имеющий сравнимых аналогов.
Да вообще, как можно употреблять в одном тексте слова "касса" и "Тандер", без фамилии "Крикунов"? :)
tgorokhov
04.08.2021 10:14+2Олег, когда Валентин говорит "мы" он конечно же имеет ввиду всю текущую команду ИТ, и тех, кто присоединился к ней недавно и тех, чей вклад в развитие компании сложно переоценить. Магнит на протяжении все своей истории был закрыт от ИТ сообщества и цель данной статьи в первую очередь приоткрыть завесу. Можно много дискутировать о том, "кто более материи истории ценен". Такие ребята как Саша Крикунов уже вписали свои имена золотыми буквами в историю компании, но они вряд ли известны широкой публике.
svcoder
04.08.2021 08:15Компания, которая десятилетия не вкладывала деньги в архитектуру программных систем думает что с помощью CI/CD быстро совершит революцию. Ну, ну...
Обычно в таких случаях возникает технический долг, но тут технический дефолт. Я вообще поражаюсь, как до сих пор все работает.
tgorokhov
04.08.2021 10:02Ваша правда - до сих пор все работает :) Сложно рассказать обо всем в одной статье. В Магните идет масштабный процесс цифровой трансформации, изменения коснулись практически всех областей: технологий, процессов, инфраструктуры, данных. Мы обязательно расскажем в том числе о том, как управляем техническим долгом в следующих статьях
sobolev_va
04.08.2021 08:50Ну и есть некоторые неточности про Систему управления транспортом и УТП.
В Систему управления транспортом(СУТ) идет полностью операционное управление транспортом и контроль 12000 тс от контроля на маршруте до контроля всех датчиков АМ а их там мама не горюй, кому расскажи истории появления необходимости контроля конкретных датчиков будут очень удивлены. А УТП 1С занимается путевой документацией экономикой.
У тут взяли с все возложили на 1С УТП.
У команды СУТ был даже лозуг или два.
1. Сут не ссут.
2. Бывших СУТ не бывает.
))) ну а откуда такие лозунги, вы наверно понимаете, что все там было не просто))
И нет слов о практике прототипирования новых решений и продуктов. Неужели отказались от этой идеи?tgorokhov
04.08.2021 09:57Виталий, спасибо за дополнение, в формате первой обзорной статьи мы намеренно упрощали изложение материала. Вы правы - в Магните все не просто :). Можно как угодно относится к применяемым архитектурным решениям, но есть факт, и он заключается в том, что они позволяют управлять самым большим в стране парком автомобилей, обеспечивать своевременную доставку товаров в более чем 22 тысячи магазинов. И в этом конечно же заслуга команды развития СУТ.
А что касается прототипов, то мы обязательно расскажем о том, как Магнит работает с инновациями в одной из следующих статей
sobolev_va
04.08.2021 13:17Тимофей, я все прекрасно понимаю что история развития Продуктов ДРИТ тянет на многотомник сочинений ВИ Ленина, поэтому не получится все уместить.
Мне просто чуть чуть стало обидно, что развиваемую мной когда-то систему назвали УТП)).
А так статья действительно интересна, не только для тех кто это создавал, но и для новых соискателей.
netlink4
04.08.2021 08:50Как человек видевший многое изнутри, хочу сказать, что далеко не все "велосипеды", которыми так гордится Магнит, работают адекватно, а у некоторых даже не круглые колеса... Та же система ЕММ это вообще отдельная боль.
ErshovNV
05.08.2021 16:02Любой новый продукт, выходящий в свет , имеет свои детские болезни (вспомни SSJ-100- все плевались, а он летает и очень даже неплохо). Что до ЕММ, в 2020 мы растиражировали ее на на ТСД и прайс чекеры, коих больше 50 000 устройств. сейчас натягиваем на устройства партнеров, которые работают с нами по доставке Интернет заказов. Мы активно инвестируем в этот продукт, и дальше также будем развивать эту историю
netlink4
14.08.2021 13:17Именно ЕММ на ТСД и доставляет головную боль на местах. ТСД может без видимых причин потребовать повторный ввод в ЕММ. А последняя фишка ЕММ на ТСД - это бутлуп. Устройство просто уходит в перезагрузку сразу после запуска агента ЕММ и так по кругу.
nadya_blau
17.08.2021 10:22Добрый день! Спасибо за комментарий. Изучили его внимательно. По описанной проблеме обращения от сопровождения в команду разработки EMM не поступало. Мы хотим отработать этот вопрос: отправьте, пожалуйста, подробности на адрес feedback_emm@magnit.ru. Благодарим за помощь!
vasyavvvasin
04.08.2021 11:16+2Очень интересная статья, прочитал не отрываясь и практически плакал от ностальгии (без сарказма).
Прожил с ИТ Тандера 10 лет и ни капли не жалею, только позитив. Даже не смотря на то, что все это время был классический "кровавый энтерпрайз" и много бессмысленных и беспощадных задач и процессов
@Mahor Раз уж вы вышли в публичную область, можно задать вам пару неудобных вопросов?Со временем мы устали жить в ̶с̶т̶и̶л̶е̶ БДСМ и постепенно распиливаем базу.
В 18 том году - размер был 120+ ТБ и физически оставалось СХД на полгода. Т.е. было прямо все не очень. И был план "обрезания и распила", где-то до 80-90 ТБ.
На сколько знаю - сейчас БДСМ "весит" 180+ ТБ. Как так вы ее "распилили" за три года?мы обновляем складскую, транспортную системы, систему прогнозирования вокруг цифрового ядра на SAP.
Скажите, когда вы обновите "все вот это вот старое и устаревшее на старых технологиях" на модные современные промышленные коробочные решения на основе SAP - что вы будете делать с теми аналитиками, разработчиками, тестировщиками и специалистами поддержки, которые все эти старые системы делают, развивают и поддерживают сейчас? Переучите, влив колоссальные ресурсы в это обучение? Уволите и наберете новых? Продолжите сопровождать и развивать системы силами подрядчиков?
tgorokhov
04.08.2021 13:27Все верно, к концу 2017 года, суммарный объем данных составлял около 120 ТБ, квартальный прирост данных около 12 ТБ. Действительно, у нас были планы по существенному "обрезанию" данных, но ввиду требований бизнеса по увеличению горизонта хранения данных, сокращение объемов оказалось не таким значительным. Тем не менее, нам удалось принять меры по сдерживанию прироста данных на 40% (до 6-7 ТБ в квартал за счет органического роста), это позволило "оттянуть момент" и провести в середине 2019 года замену СХД на более емкое и производительное. В качестве комплексной меры так же был проработан и принят план по выносу некоторого функционала из монолита в отдельные сервисы, что позволило снизить объем redo-генерации и уменьшить нагрузку по CPU в среднем на 20%. Работы по выносу сервисов продолжаются, наш текущий таргет - дополнительное снижение нагрузки на БДСМ еще на 10%
vasyavvvasin
04.08.2021 14:23В БДСМ никогда не было " горизонта хранения", так же как закрытия периода и удаления исторических данных. Там всегда было все за все время жизни, с условного 2006 года.
В сухом остатке - на план "обрезания и распила" забили (либо не дали тратить ресурс разработки, либо не нашли силы воли принять решение), залили проблему с местом баблом (покупкой нового железа), вернулись к операционной поддержке производительности.
Ну так себе в общемtgorokhov
04.08.2021 18:27Не могу с Вами согласиться. Инициатива по "распилу" БДСМ имеет активную фазу реализации и вполне конкретные результаты. Горизонт хранения отдельных структур данных был согласован с бизнесом, производилась и производится на постоянной основе очистка исторических данных, возможно не в тех объемах , которые ожидались командой ИТ в начале пути, но на сегодня все согласованные KPI по оптимизации работы базы данных достигнуты
ErshovNV
05.08.2021 15:58это не так, мы постепенно , шаг за шагом выносим приложения из этой "комуналки", деталей в публичном месте не буду раскрывать, но до свет в конце тоннеля уже рукой можно дотянуться. что до Железа- мы регулярно заменяем Ит инфр-ру, которая end of life, при этом подходим весьма рачительно. мы же в ритейле работаем, а не на нефтяной трубе сидим.
tgorokhov
04.08.2021 13:28Теперь по поводу перехода на SAP. Изменение технологического стека решений по автоматизации бизнеса не означает, что нужно всех уволить и набрать новых ИТ специалистов. Мы по прежнему делаем основную ставку на собственные ресурсы. Для некоторых ИТ команд это возможность пройти обучение по целевым технологиям. Для этого мы уже создали несколько центров компетенций, запускаем новые, подготовили комплексную программу корпоративного обучения
netlink4
04.08.2021 19:32На рядовых сотрудников ит иногда сверху спускают очень странные корпоративные курсы, никак не связанные с их рабочим процессом. Например курс по ведению переговоров, проведению совещаний, подбор стиля общения под психотип личности собеседника. Почему так?
ErshovNV
05.08.2021 16:05Как правило курсы подбираются исходя из профиля работы. есть некие общие soft skills. которые надо развивать всем, особенно в эпоху удаленки. слушать и слышать друг друга- это залог партнерских отношений как внутри команды , так и при общении с заказчиком. и чем выше должность ИТ сотрудника, тем больше к нему требования. ИМХО.
v3tr0v
04.08.2021 12:33Жду продолжения, так как пока это больше поверхностное и беглое овервью по всему. Очень слолжно, но как начало - ок.
Особенно интересна тема CI/CD и прочего DevOps, так как помню с этим было довольно много сложностей.
tgorokhov
04.08.2021 13:05Спасибо за интерес и идеи новых статей. Готовы делиться сложностями и успехами в DevOps , а также DevSecOps и DataOps направлениях
CyaN
05.08.2021 11:58Кассу писали на C++, и через нее до сих пор проходит около 15 миллионов чеков в день.
Это 5,5 млрд чеков в год.
Было бы интересно узнать, как эти чеки обрабатываются, и какие аналитики по ним строятся (ну там Top-10 продуктов по магазинам/регионам/сети, Top-100 комбинаций продуктов в чеках и т.п), да впрочем и весь пайплайн. Узких мест то на нем много, и как вы их обходили, не менее интересно.
Да, судя по их количеству, объем хранилища должен быть под петабайт.
trdm
09.08.2021 08:24ReactOS есть желание поддержать? Windows ведь тоже лицензии требует.
А так будет предсказуемая ОС с маленьким оверхедом.
Shrk66
03.11.2021 14:26Сегодня в IT команде около 3500 специалистов, половина из них — разрабатывает и внедряет, другая половина осуществляет поддержку и сопровождение, в том числе на местах.
Очень интересно. Не могли бы вы подробнее раскрыть состав ИТ специалистов. Сколько каких программистов, сколько тестировщиков, сколько обслуживают сервера, сколько магазины. Распределение по языкам программирования примерное. Если это не коммерческая тайна. Любая информация будет интересна..
По моему читал про 100 тестировщиков Java, это правда?
Maxim_Evstigneev
материал - огонь, собеседовался несколько лет назад к вам и еще тогда поражался амбициям в ИТ-аспекте компании, успехов вам!
nadya_blau
Спасибо за пожелания успехов. Надеемся, спустя несколько лет после знакомства с нашими вакансиями удалось показать над чем ИТ-команда "Магнит" работает сегодня.