ИТ-байки розницы — как это было 12 лет назад

1t4fegs7w5u-qsfj-icx6nlncpu.jpeg

Я работаю в КРОК уже 15 лет, сейчас директором по развитию бизнеса в рознице. Исторически большинство моих проектов тоже в ритейле. С согласия заказчика публикую байки про то, на что был похож ритейл по ИТ лет 12 назад от себя и коллег. Безопасники заменили некоторые неважные детали, чтобы не обижать конкретных людей.

В 2005 году в Москве вылетела подстанция, и все в стране внезапно поняли, что нужно делать резервные серверные. Банки делали их в 2006–2007-м, розница — с 2008-го. Почему так поздно? Потому что затраты на ИТ тогда ещё не казались чем-то таким же важным, как сейчас. Я вспоминаю историю, как моего заказчика чуть не уволили за простой в два дня по всей сети и заодно за другие особенности ритейла. Оказалось, многие в ИТ уже не верят, что так было.

А так было. Вот вам первая история из серии «да ладно, так не бывает» — про то, как магазин был зарезервирован по аналоговому модему для доступа к Интернету. Просто тогда был только один провайдер с волокном в этом месте, а из альтернатив — спутниковая тарелка или диалап. ЗССС — дорого, поэтому выбрали войс-модем. В один прекрасный момент экскаватор рвёт магистраль «Голден телекома». Они в это время перекладывали свою ВОЛС, поэтому временно не было резерва. Три дня магазин работает по модему. Днём 48 килобит в секунду, ночью 96 килобит в секунду. Как вы видите по скоростям, это был очень хороший Zyxel, он держался даже на шумной линии.

Интернет был нужен для отправки отчётов (при аварии их сразу решили отправлять потом, не приоритет) и для обновления цен по всей базе товаров немаленького магазина. Транзакция там длинная, если рвётся по тайм-ауту — всё заново. В общем, в первый день пробовали загрузить цены, но ничего не выходило. Одна команда разбиралась с ИТ, а вторая в это время по телефону записывала изменения вручную: в офисе и в магазине сидели несколько человек с распечатками. Чуть позже написали скрипт для импорта XLS-файлов, и стали отправлять почтой куски базы на домашний компьютер одному из админов, а он возил их на машине в магазин. В договоре с провайдером, кстати, авария не по вине оператора — первые три дня без штрафов, а дальше — 1/724 годовой суммы в час. На вопрос о компенсации убытков они махнули рукой и сказали: «Ну, следующий месяц услуги бесплатно!».

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

Вторая невероятная история про ошибку в ИТ. Крупная розница начинает разбираться в секрете успеха одного из партнёров. Дело в том, что у всех бизнес идёт явно по другому пути при той же модели. У него всё получается быстро, просто, и он примерно в 20 раз масштабировал бизнес за последние восемь лет. На том рынке это было примерно в десять раз больше, чем должно было быть по логике. Итак, начинают разбирать транзакции — и приходит понимание, что в SAP-карточке этого партнёра стоят умолчания, заведённые ещё десять лет назад для тестового клиента. А там немного другие множители по планам и вознаграждению. В итоге человек получает примерно в два раза больше, чем остальные партнёры. Розница провела внутреннее расследование. Выяснили, что это не сговор, а банальная случайность. А человек на этой случайности за десять лет построил крупный бизнес.

На одной из точек как-то воровал директор магазина. Точнее, корректировал вручную данные по кассам. Тогда это было можно, и ручной ввод воспринимался как приоритетный в сравнении со сгенерированным автоматически. Он три месяца был на испытательном сроке на этой должности и систематически создавал в конце дня небольшую дельту между отчётом и фактически принятыми деньгами в кассах. На 28-й день последнего месяца своего испытательного срока он написал заявление (неожиданно для офиса), и по процедуре осталось всего три дня на приёмку магазина. Естественно, инвентаризацию делали уже без него. Потери оценили в 700 тысяч рублей чистыми (цена Hyundai Sonata с «полным фаршем» на тот момент), и куда хуже было бы, если бы в этот момент магазин проверила налоговая. В итоге на него собрали доказательную базу, подали на него в суд. Судья звонит:

— Привозите дискетку с системой, мы посмотрим.
— Я не могу. У меня инсталляция SAP 32 терабайта. Это поезд дискеток.
— Да ладно вам, давайте я телефон наших спецов дам. У нас хорошие спецы. У вас же 1С там?
— Эээ… Лучше вы к нам приезжайте.
— Нет, к вам мы не поедем.

Форенсику суд собрать не смог, и дело закрыли за недоказанностью.

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

На склад приходит оптика через соседнее здание. От соседнего здания — воздушный мост уже в заказчика. Cклад работает круглосуточно, но по ночам радиорелейный мост отваливается. Резервный канал — спутник, терминал прямо на крыше своего склада. Там хорошая скорость, 25 Мбит/с. По тем годам — космос как он есть. Но спутник — это большая сетевая задержка, минимум 0,8 секунды на прохождение сигнала от земли до спутника и обратно. Часть из этого — ограничения скорости света, ещё часть — куча преобразований на демодуляторах, работающих на протоколах с высоким коэффициентом избыточности. Аукается в итоге это тем, что складское оборудование начинает работать с задержками. При 0,1 секунды всё как часы, а при 0,8 — начинаются очень долгие обмены пакетами. Работник склада тыкает в паллету сканером, и дальше начинается хендшейк, отправка готовности, установка протокола, отправка пакета, отчёт о приёмке и так далее. Это уже годами позже появились протоколы, которые одним исходящим пакетом почти всё решают. Тогда надо было поменяться кучей данных с удалённой системой. В результате работа начинает реально тормозиться, потому что операции становятся долгими. Выстраивается очередь из машин, и к утру все в мыле. И так каждую ночь. Просто на соседнем складе вечером дёргают рубильник, и падает оборудование оператора оптики. Перенести канал невозможно: прокладка кабеля согласована владельцем площадки, а он даже не из России. Несколько месяцев сотрудники склада так и работали, пока не завели себе другого оператора — тоже радиомостом со здания за территорией, потом нормально оптику положили.

Склад фешн-ритейла, то есть место, где лежит огромная куча одежды в коробках. Там дико горели Wi-Fi-точки доступа Моторолы. Иногда просто слетала прошивка, а иногда они прямо реально сгорали. Они загружались с флешки, поэтому на складе был специальный человек с лестницей, который к ним подлазил. За несколько месяцев случилось около 60 инцидентов со сбросом прошивки, и сгорело полтора десятка точек. Грешили на производителя и сбойную партию, но после тщательного расследования выяснилось, что дело в статических разрядах. Пыль от синтетических тканей накапливалась так, что создавала проводник вокруг точки. Немного вибраций, всё это попадало одним концом внутрь, вторым — на линию питания где-нибудь. Если до этого слетала прошивка от статического разряда, точка отряхивалась на обслуживании. Если не везло — её пробивало уже серьёзнее. Повесили на точки заземление, это решило проблему на полгода. Потом точки стали опять гореть: смотрим, а заземление отошло от корпусов. Оказалось, перепады температур под крышей склада были такие, что постоянное сжатие-расширение просто кукожило и раскукоживало всё так, что жёсткая сцепка не выдерживала.

Частоты на радиомосты, конечно, по-хорошему, надо согласовывать, но тогда так почти никто не делал. Да и вообще народ был дикий. Пример. Одну из тарелок ЗССС в городской черте на магазине жильцы сбивали несколько раз. Потому что она излучает. Да, она излучает. Но вверх, в метре под ней уже можно жить годами. Но больше всего излучения вы нахватаетесь в фокусе, когда залезаете на крышу, встаёте ровно по пику диаграммы направленности и бьёте по тарелке палкой.

Про диких людей ещё вспоминается отличная история с терминалами на складе. За 3500 баксов за штуку на один из складов привезли в Россию одни из первых полноценных мобильных терминалов. Фактически это были защищённые по военному классу смартфоны. С ними можно было делать любые операции на складе. И вот работники склада регулярно приносили их с повреждёнными экранами. «Начальник, нэ работаэт!». Нет, ИТ-команда розницы понимала, что они их как-то портят, и скорее всего, — злонамеренно. Чтобы не работать. Чего никто не понимал — это как они это делают с учётом корундового экрана и, главное, зачем, если у них оплата посдельная, и они сами себе этим режут заработок. Как раз тогда в рознице почти повсеместно начали внедрять видеонаблюдение, и айтишники решили чуть ускорить проект на складе. У них там стояли и муляжи, и настоящие камеры. Они поменяли часть устройств местами и посмотрели, что происходит. Первая сцена: сидят двое на подножке погрузчика и пытаются наждачкой стереть экран. «Спорим, ты слабак, наждачкой пользоваться не умеешь?» — вот примерно такой был мотив. Они так разыгрывали новых работников. Оказалось, что реальная причина повреждений — заточенные монеты, которыми удавалось нанести хоть какой-то вред устройству. Но один такой потеряли полностью — на него просто поставили погрузчиком груз в несколько центнеров. Он был единственной точкой опоры и просто сплющился. Но продолжал передавать данные, то есть пострадала только периферия. Кстати, эти Ханивелы работали на складе без потерь, пока рядом сменилось два поколения Моторол.

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

В это же время ходили разговоры, что в магазинах будут внедряться терминалы сбора данных на новомодном вайфае. А это требовало широких резервных каналов. К счастью, в этот же момент появился Skylink: это широкополосная сеть (CDMA-800), и она зависела от состояния атмосферы куда меньше спутника. Переключались на неё, когда переходили на резерв — поднимали их терминалы-телефоны на удочках из окон, чтобы лучше ловило.

Сейчас мы много занимаемся консалтингом розницы в КРОК, но тогда практика в России была не очень распространена. Но есть одна замечательная история про это. Примерно десять лет назад мои уважаемые коллеги разработали бизнес-модель, которая бы убила тогдашнего единственного онлайн-продуктового оператора. Было видно, что многие процессы можно улучшить за счёт правильной организации логистики и ИТ, и это прямо очень сильно снижало себестоимость заказа. Сейчас нечто подобное использует Яндекс.Еда, но десять лет назад всё это смотрелось очень, очень странно. Зашли на пилот, взяли участок земли даже, но после определённых изменений в составе правления проект похоронили. Решили продать модель, просто описали в виде здоровенного проекта и поехали в Англию. Параллельно предложили тому самому нашему единственному онлайн-оператору. Его манагеры назначили встречу, попросили показать разные части процессов. Звучало как переговоры с Яндексом: «мы посмотрим, и если поймём, что сами не сделаем, то, может быть, купим». Но история не про это, а про то, что в ходе переговоров решили поехать на их склад. Там несколько этажей, по бокам здания лифты, и бегают люди туда-сюда. То есть разнорабочий берёт тележку, дальше начинает гонять по этажам и комплектовать заказ. Лифты — узкое место, перед ними огромные очереди. И это много лет так работает. Тогда на это пять минут посмотрели, потом предложили на встрече:

  1. Прямо сегодня сделать все левые лифты только на подъём, а все правые лифты только на спуск. Это очень упростит погрузку-разгрузку.
  2. Потом заняться физическим разделением тележек и людей. Пускай в лифте ездят только тележки с заказами, а заранее закешированные люди ждут их на этаже.
  3. Как почувствуете эффективность — вот, купите талмуд, где написано, как делать другие вещи нормально, а не такие азы алгоритмизации.


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

Очень много раз слышал байки про то, что можно перепутать тест с продом. Казались фантастикой до определённого момента. Итак, в ночь с 31 декабря на 2 января (судя по состоянию страны, это одна сплошная ночь), как обычно это происходит в ритейле, была профилактика и апдейты. Среди прочего подняли новую тестовую инсталляцию SAP из трёхмесячного бэкапа и развернули её в отдельный тестовый сегмент, чтобы передать разработчиком на тесты. Сегмент заизолирован. 2 января начинаются звонки в поддержку:

— Почему цены квартальной давности?
— Нет таких акций уже!
Звонок спецам:
— Привет, парни! Вы инсталляцию развернули в закрытом сегменте?
— Да.
— Точно?
— Да, зуб даём.
— А проверьте ещё раз, пожалуйста.
— … Да, в закрытом. Хотя подожди…

Единственный мостик между закрытым тест-сегментом и продом был в системе мониторинга. Она общая между ними. А SAP даже в той ещё ревизии оказался очень хитрой штукой: он стучался сначала в свои адреса, а потом, когда не получал ответа, стучался вообще во все доступные. И достучался в итоге через мониторинг до кассовой подсистемы. И увидел, что её пора обновить. А тестовая база примерно четырёхмесячной давности, ну SAP и залил цены на прод. Возможно, ему было тяжело, но он справился. Потом сам прод залил туда новые цены. Возможно, тест почувствовал себя обиженным и снова залил свои. С трудом. И так продолжалось несколько раз.

Вообще, конечно, в те годы SAP был редкостью. Наличие его говорило о том, что розничная сеть смотрит очень далеко в будущее. Все делали 1С, допиливали его на коленке и ещё раз допиливали. Среди кассовых решений боролись несколько десятков (!) крупных офлайн-решений, причём наших и западных, проприетарных и свободных. Предлагали кучу всего, и каждое решение всё равно надо было допиливать. Из кадровых систем боролись SAP, Босс-Кадровик и 1С. 1С все тогда боялись, она была сырая. Вторая была более-менее понятным минным полем с известными багами, а третья — вроде как получше, но неразведанная и иностранная, и подорваться можно было где угодно. Боролись даже сами архитектуры — централизованная и децентрализованная. Мой коллега работал в жёстком дискаунтере, поэтому сразу поставили всё это на централизованную систему. Чтобы минимизировать количество оборудования в магазине, кроме касс ставили всего один модуль (компьютер и маршрутизатор) — и всё. Резервный компьютер был под столом. Маршрутизатор по мере необходимости привозили со склада вместе с молоком, потому что каждый день завоз. Админ не нужен был на точке. Кто-то типа директора или товароведа знал, как менять модуль и включать его. По соплям в сети многие помогали сами на месте, компьютерная грамотность людей была очень даже хорошая. На всю сеть из почти 700 магазинов и 3500 касс в ИТ-отделе было менее 100 человек, и это включая разработчиков, консультантов, админов, делопроизводителей и ИТ-финансистов. SAP-практика была 11 человек (для сравнения, у крупнейшего ритейлера страны тогда было порядка 2800 магазинов и более 2000 айтишников). Они же первыми в ритейле внедрили параллельную отчётность на in-memory и OLAP-технологиях. Это было почти космосом по тем временам, но породило несистемную конфигурацию. Переход с SAP 4.6 на 4.7 занял полгода, а потом ребята решили вообще остановиться на 4.7 и дальше не модернизироваться. Первыми в стране отказались от вендорской поддержки. А больше до них никто так не делал, и наши коллеги — представители вендора — не знали, как себя при этом вести: тогда они даже дали доступ ко всем SAP-нотам (это то, за что обычно и платят, основа поддержки), а потом уже другим стали давать только доступы к critical и security-нотам.

Теперь про Disaster Recovery. Если в 2005 году накрыло подстанцию, то в 2010 году уже горели торфяники в области вокруг города. А горели они потому, что была нетипичная жара. 56 дней в офисе крупной розницы кондиционеры работали с перегрузкой, то есть не справлялись. Но началось так: сначала просто поднялась температура по городу. Ввели в строй все кондиционеры, включая резерв. Более-менее хватило. Через четыре дня стало понятно, что история будет долгой, и наши клиенты из розницы начали ждать блэкаута. Электрики запустили профилактику дизеля, он прочихался и умер. Там погиб аккумулятор. Кое-как починили, перекоммутировали и убедились, что дизель сможет запуститься и проработать. В это же время администрация здания, где компания сидела арендатором, установила им квоту на электричество — их входящий луч был рассчитан с небольшим запасом на типовое потребление, и питания на всех не хватало с учётом кондиционеров. Ребята привезли этот дизель в контейнере, поставили рядом и включили. Каждое утро приезжали бензовозы заправлять его. Нужно было мерить температуру ЦОДа, а он тогда был без мониторинга. Повесили термометр, раз в час бегунок поддержки спускался с седьмого этажа на первый записывать его показания. А света на лестнице вечерами и ночью уже не было: в здании отключили всё некритичное. Когда первый сотрудник поддержки навернулся в темноте и чуть не уехал в больницу, им сразу выделили денег на автоматический мониторинг ЦОДа. Потом стало ещё хуже, квота дальше понизилась: дошли до того, что отключали часть кондиционеров в офисе и ставили вентиляторы. Это была очень непопулярная мера, и никто не понимал, зачем же так издеваться над людьми. Но иначе упал бы ЦОД, а у них централизованная архитектура. В итоге ребята пережили и вынесли для себя много уроков про DRP, но полностью независимую площадку начали делать только через год.

И напоследок байка про справедливость, которой желаю всем читателям. Цитата:

Итак, когда-то сеть была первым ритейлером, который запускал акции «Возьми 2 по цене 1» и «Возьми 3 по цене 2» на федеральном уровне. Это было в первую неделю июля, потому что летом падает спрос, и люди пропадают из Москвы. А в субботу в июле самый большой спад по неделе. Маркетинг решил, что нужно что-нибудь продать по акции так, чтобы люди пришли в магазины. Например, стоят упаковки яиц в два раза дешевле — народ пойдёт за ними и, глядишь, наберёт полные сумки. Мы всё настроили, перепроверили, запустили. В пятницу вечером сижу в ресторане с друзьями. Звонок:
— У нас диски посыпались! SAP упал! Аааааааааа!
Последний раз диски сыпались за три года до этого. Тогда мы восстановились за несколько часов. Ночь, магазины закрываются. Решили подниматься из бэкапа. И вот выясняется, что, чтобы полностью развернуть таблицу, свободного места стойки не хватает. Ночью решили восстанавливать уже кусками и класть всё на внешние жёсткие диски. Купили железок, собрали, но полностью всё восстановили только к утру понедельника. Полсубботы почти ничего не работало (включая склады), следующие полдня и воскресенье — работало только бизнес-критикал, то есть без акций и всего остального. Во вторник внеочередное собрание совета директоров, мне приходит отдельное письмо, что явиться обязательно. Прихожу:

— Добрый день. Увольнять будете?
Финдиректор долго на меня смотрит, молчит. Потом говорит:
— К тебе вопросов нет.
Ещё молчит, потом продолжает:
— Помним, ты нас предупреждал про резервную стойку. Вот тот документ, вот расчёты. Время прошло, можешь сказать, что нужно сейчас для полного резерва?
Я показываю документ, у меня всё давно посчитано. Финдиректор вздыхает:
— Эх, хорошо. Дорого, но всё равно меньше, чем мы на выходных сэкономили.
И подписывает.

Я стою в лёгком шоке. Во-первых, не уволили, хотя это обычный кейс для смены работы CIO. Во-вторых, дали зелёный свет на DRP. И что такое «сэкономили»? Потом, после совета уже выяснилось, что маркетинг обсчитался, и если бы акция запустилась, то был бы убыток больше, чем от простоя. Но самое удивительное в том, что ИТ-отдел в проблеме никто не обвинял, даже слова не сказали. Потому что мы предупреждали. С расчётами и графиками, что будет, и что надо сделать уже вчера. Регулярно.


Наверное, это единственный известный мне случай, когда в такой ситуации не искали козла отпущения именно в ИТ.

Ещё байки


© Habrahabr.ru