habrahabr

Бизнес в России — это гомерически смешно

  • суббота, 8 марта 2025 г. в 00:00:19
https://habr.com/ru/companies/h3llo_cloud/articles/888424/
image
Первая тестовая стойка дома, до заезда в ЦОД. Уже после сборки я понял, что держать 35 миллионов рублей в квартире — так себе идея

Когда вы внутри, это, конечно, тяжко, печально и всё такое, но снаружи это всегда смешно.

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

Про ад с бюрократией я писал вот здесь.

В этом посте, кстати, было про Ростелеком, речь про Даталайн, который им стал в процессе нашего заезда:

Дальше выбор ЦОДа. Один из партнёрских ЦОДов, где мы размещаемся в Москве, — это Ростелеком. Первую стойку нам выделили в моменте: мы направили запрос, нам сказали: «В этом ЦОДе нет, но встаньте вот сюда» и прислали коммерческое предложение на следующий день. Это заняло буквально два письма туда-обратно и пару звонков. А вот предложение на последнюю стойку менеджер отправлял нам уже месяц. Возможно, согласовывал внутри.

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

Знаете, в эти игры можно играть вдвоём.

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

И да, они собрали внутри себя совещание и сутки думали, что же именно нужно поменять. Мы до сих пор бы обменивались официальными письмами и шли бы им навстречу, если бы не решили оттуда уехать.

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

Наш интернет


Самое первое, что приходит в голову, — это история про провайдера, сапожника без сапог.

Это про наше подключение офиса к интернету.

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

У нас потребность была. Начали смотреть предложения, считать, думать.

В это же время мы очень активно строили между двумя ЦОДами свои оптические линии. И внезапно поняли, что дойти и до офиса тоже — вообще не проблема. Закинули вопрос, сколько нам будет стоить по тёмному волокну включиться где-то здесь? Есть оно вообще где-то ближайшее?

Получили очень адекватное такое предложение — прямое включение, скорость любая, всё зависит от той пары трансиверов, которые поставишь на концах. Два волокна TX/RX, то есть одно на приём, одно на передачу.

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

Решили, что сейчас поставим 40 и врубим, потом 100 Гбит/с. Удобно же для офиса. Тем более команда быстро растёт.

Начали делать. Всё хорошо, но был один нюанс. Последние 150 метров достроить — надо согласовывать с собственником здания, через которое проходит как раз от ближайшего колодца трасса. У нас что с одного ввода люка, что с другого стоят жилые дома. В подвале этих жилых домов лежит трасса МГТС, в которой лежит оптика ШПД. Но когда вы ведёте там свою жилу, это становится не вопросом ШПД для дома, а отдельным проектом.

Прокинуть оптику — дело 2–3 дней. А вот этап согласования с собственником занял почти четыре месяца, из которых три он всячески пытался набить цену.

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

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

А потом после примерно десятой итерации переговоров выяснилось, что председатель ТСЖ вообще не при делах. И его звёздный час прошёл. Подвал, через который всё идёт, давно выкупил другой человек — и он нам всё это очень быстро подписал. Безвозмездно.

Теперь по цене обычного офисного интернета у нас 40 Гбит/с напрямую к ЦОДу с минимальными задержками и без посторонних на пути. Но второй раз в такую игру я играть не хочу. Либо же сразу буду приходить с ультимативным коммерческим предложением.

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

Теперь представьте тех людей, которые строят трассу длиной не 150 метров, а 120 километров. И через сколько собственников она проходит. Сразу вспоминаются все эти жилые дома посреди скоростной трассы и прочие радости жизни.

Виртуализация туалета


Для офиса мы сняли почти весь этаж. Почти — потому что у нас только один сосед на этаже. Давно сидят в бизнес-центре, проверенные спокойные люди. У них там работает несколько человек, по нашей оценке, 4 плюс-минус 2.

И вот они с чего-то решили поделить территорию общего пользования, а конкретно туалеты.

Просто взяли и закрыли себе одну из двух кабинок туалетов.

Врезали в дверь замок и сделали выделенный персональный туалет.

К этому моменту у нас было уже под два десятка человек. А два десятка человек во вторую кабинку помещается не всегда.

Грубо говоря, их туалет dedicated, а у нас адская переподписка. Зашли на чай к собственникам бизнес-центра, они сильно удивились, и через 20 минут работы АХО, замок исчез. Всё, казалось бы, хорошо, я думал на этом и закончилось. Так нет, их учредитель пришёл к нам за эти туалеты качать права. Казалось бы, уже 25-й год на дворе, а кто-то додумывается поделить кабинки туалета. К счастью, быстро объяснили про общие права доступа.

Собеседования


Самое главное требование у нас — работа только из офиса, удалёнка невозможна. При этом у нас нет строгого расписания — кто-то приходит позже, кому как удобно. Отбор у нас идёт через два фильтра. Сначала с кандидатом обсуждают базовые условия, знакомятся. Потом проверяют технические навыки. И только после этого человек попадает ко мне на финальное интервью.

Как-то к нам пришёл парень, который назвался middle+ фронтендером. Когда он начал рассказывать о своём опыте, выяснилось, что на сайте одной крупной букмекерской конторы он просто вручную обновляет информацию о матчах.

— Я беру шаблон, копирую, вставляю весь контент в реактовские компоненты руками и загружаю на сайт.

Я осторожно выдохнул и спросил опытного middle+ про концепцию DRY (Don't repeat yourself) и как он применяет её в работе.

— DR что?

Я объяснил. На что кандидат просто сказал: «Нет, сдаюсь» и вышел с собеседования.

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

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

Вторая история с собеседования была ещё веселее. И вот она уже заставила надолго задуматься.

Два Scala-разработчика. Забегая вперёд, скажу, что в итоге-то мы столкнулись с очень большими проблемами с набором Scala-команды и после выхода Sonnet 3.6 переключили часть компонентов на Go, но про это чуть позже. А Sonnet 3.7 вообще поставил точку в вопросе.

Но вот собеседование. Откликов совсем немного. Scala-разработчики — это нечто очень экзотическое, днём с огнём не найдёшь.

Пришёл, значит, к нам первый кандидат нормальный такой. Пообщались, всё понравилось, пригласили в офис. Дали небольшое тестовое задание — спецификацию OpenAPI с описанием эндпоинтов REST API для веб-сервера. Говорю: «Подними. Стек любой. Инструментарий любой. Как тебе удобно, так и делай. Главное — без нейронок». Мы же скил оцениваем. Так-то мы за LLM. Дали всё, что он попросил. Отошёл заварить кофе. Возвращаюсь. Он:

— Вот. Готово.

Я не понял.

Смотрю — действительно готово.

У него был свой фреймворк написанный, который берёт спеку OpenAPI и поднимает веб-сервер. Он просто несколько строчек кода имплементировал во внутреннюю логику к каждому методу, а всё остальное за него делал фреймворк. Потому что задача встречается не первый раз. Классная вещь. Я прям воодушевился: 10 минут и выполнен рабочий веб-сервер. Но денег этот кандидат хотел прям очень много. Мы ещё поговорили и решили, что надо подумать, потому что один такой человек с правильными инструментами заменяет целый отдел. А с нейросетками, возможно, два.

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

Спустя полтора часа на Play! Framework эта штука еле-еле завелась и выдавала один работающий метод. Не микросервис, а именно один метод. Без логики.

Контраст, конечно, был очевиден.

Денег он запросил столько же много. А за сакральное знание, как выйти из Vim, мы столько платить не готовы.

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

Ещё одна интересная особенность в том, что современные LLM обучены очень хорошо кодить на Go, но очень плохо на Scala, и использовать их возможности просто не выйдет. Возможно, выборка была не очень большая. Мы надеялись на o1 и R1, но тоже нет. В общем, Go. Там и проблем с разработчиками нет.

Третья история с собеседований — аналитики ИБ. Руководитель по ИБ в компании должен завестись сам, потому что публиковать вакансию всё равно не выйдет со всеми деталями. Да и на рынке специалистов по ИБ нет от слова «совсем». Как и самого ИБ в малом и среднем бизнесе.

Мы всё же взялись строить SOC и более-менее открыто прописали, что делать и как. И начался поток людей, которые умеют поднимать файрвол на роутере. И это потолок их навыков. До строки квалификационных требований про спокойствие так и не дошли. А спокойным надо быть.

Специфика бизнеса — в том числе не допустить открытия канала к ОРМ. Мы, как хостер, должны определённый формат СОРМ поддерживать. К счастью, мы не должны закупать никакое дорогостоящее железо как телеком-операторы. Но мы должны наружу выставить для них защищённые концы с доступом к определённой информации. Её перечень, структуры и так далее, они все открыты в нормативке. Там 70-страничный документ с описанием GraphQL схемы. Собственно, мы должны её поддерживать и не давать посторонним лицам. Это персональные данные и, в принципе, репутация. Ну и помимо СОРМ есть базовая гигиена ИБ, за которой необходимо следить.

Поиски, кстати, всё ещё продолжаются.

35 миллионов в квартире — плохая идея


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

У меня несколько розеток отдельных под домашний кинотеатр, акустику и так далее. По идее каждый сервак — блоки питания 800–1400. После включения всё это начинает жужжать адски, как рой дронов. Я думал, что соседи испугаются, что сейчас атака будет.

Потом ёлочка начинает гореть, то есть греться. Естественно, включаешь кондей либо открываешь окно, когда холодно. Дальше можно с этим сидеть, жить, настраивать.

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

Но самое смешное случилось, когда мы это через неделю настроили и повезли уже в ЦОД. Вызвали «Грузовичкоф». Приехала к нам Лада Ларгус и такой типичный водитель Ларгуса, который откуда-то с региона, видимо, приехал на заработки.

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

Выезжаем из паркинга, и он говорит:

— Ребята, а незамерзаечки у вас не будет? У меня что-то закончилась.

Мы ему отдали канистру незамерзайки. Он, значит, что-то залил, а что осталось — положил в багажник.

Уже приехав в ЦОД, мы поняли, мало того, что он её хреново закрыл, он в багажник её кинул прям поверх серверов.

И вся незамерзайка по ним течёт!

Пока я матерился страшными словами, он всё поспешно выгрузил и уехал.

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

Это были наши первые серваки для Proof-of-Concept. Сейчас эти серваки будут доживать в наших инстансах под CDN, а мы закупаем уже HPE Gen12. Надеюсь, скоро покажу. Их точно сразу в ЦОД и не на Ларгусе.

VDI


Изучали рынок VDI в России, когда думали, кому и что будем продавать.

Получилось как с той рисоваркой, для запуска которой нужен админ, Senior-разработчик, тимлид и уборщица.

Садится команда людей, среди которых DevOps опытный, который сам Linux-драйверы низкоуровневые пишет для железа. Тимлид, который поднял десятки проектов руками, до этого много в студии Лебедева отработал и в блокчейн-проекте. Собственно, L1veStack (наш контейнерный хостинг) под его руководством вышел. Другой тимлид (тоже с хорошим опытом за плечами), разработчики и я.

И вот мы логинимся в VK и начинаем делать себе VDI. Прям по кнопке «создать VDI». Перед нами мастер на 7 шагов. Проходим первый экран, и там такая хитрая кнопочка «протестировать, всё ли правильно». Нажимаем. Просто начинает крутиться кругляш, и ничего не происходит.

В ресурсах смотрим — херак, создалась виртуалка. Что-то там крутится, крутится, крутится и не меняется. Минут через пять вместо кругляша появляется галочка, что у нас всё окей.

Но виртуалку он не удаляет. Тарификация на неё капает.

Едем дальше. Дальше сетевые настройки, надо зайти в настройки сети, создать новую сеть. Причём диапазон 24-й ей маловат, ей подавай сразу минимум 22-й — и иди ещё с этим всем разберись и пойми из их описания. Ладно, курим маны и кое-как этот этап проходим.

Начинается третий шаг. Называется «введите данные для домена». И просит разные параметры LDAP. Прикол в том, что выскакивают всякие подсказки с ошибками, что введённая строка не соответствует формату. Проверка прикручена. Но вот авторизации по этим данным нет, и можно вставить чужой домен.

На следующем шаге запуск виртуалки под уже выбранную конфигурацию.

1 рабочий стол, 1 контроллер, минимальные ресурсы.

Запустить виртуалку невозможно, потому что квоты не хватает.

Дальше курим ман, и оказывается, что ни один новый аккаунт это всё запустить не сможет никогда.

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

Мы всё это посмотрели и поняли, что вряд ли кто-то эти сценарии проходит легко и хорошо.

Пошли тестить других. На третий день случайно вспомнили про ту виртуалку, которая включилась во время теста, пошли тушить. Тоже непросто, удаление заняло минут 20, потому что её нельзя просто удалить (кнопка тупо заблокирована). Сначала надо удалить все связанные с ней ресурсы — сеть, VDI-группу и так далее. А до этого надо ещё додуматься. Прикинули, сколько таких у других крупных клиентов )

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

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

Как покинуть офис


Лучшая история с офисом была, когда мы устроили вечеринку в пятницу с пиццей. Бизнес-центр у нас относительно небольшой, арендаторов не сотни, все уходят около 20–21. Охранник по стандартной привычке закрывает выход из здания и уходит на обход.

У нас корпоратив до 22. Мне понадобилось срочно уехать. Спускаюсь, охранника нет, выход закрыт. Соответственно, наши, кто любит просыпаться в 16 и работать вечером, делятся со мной лайфхаком — надо выйти в окно.

Показали окно. Я и вышел.

Охранник это увидел снаружи, и нам чуть не накрыли корпоратив группой быстрого реагирования. Дальше уже объяснили, что мы, айтишники, дикие люди, и можем не только приехать после завтрака в 17, но и уходить ночью. Больше таких инцидентов не было.

Привет Таймвебу


Ну и чисто хабровская история. Про комментарии к статьям. Буквально недавно столкнулся с тем, как SMM-щики работают в лучших традициях.

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

Сначала от них пришёл засланец просто, у которого стояла отметочка в профиле, что он работает в Таймвебе. Он накатал длинную-длинную телегу про то, какое мы говно. Его начали минусовать, спустили до -5. И внезапно попёрли плюсы, причём очень кучно! И это совпало с моментом, когда он отредактировал профиль и убрал, что он работает в Таймвебе. Прям отличная переобувка в воздухе — чудо, человек уволился, чтобы нас прокомментировать.

«Я вам оборудование закину погонять»


Напомню, когда мы только взяли площадку под ЦОД, там были развёрнуты ванны под асики. И ещё контейнеры стояли. И вот один из наших знакомых спрашивает, раз уж мы купили площадку, можно ли поставить своё оборудование.

Соглашаемся, но не проговариваем все детали. А важной деталью была цена этого оборудования, а не только условия аренды нашей площади.

Асиков там было почти на миллиард. Комплект майнера включал в тот момент травматический пистолет, и не один.

image
Набор майнера

Мы тогда с сооснователем вместе дополнительно дежурили в будущем ЦОДе в нагрузку к росгвардейцам, которые нас охраняли. Потому что места дикие, и если что — росгвардейцы убегут первыми. Потому что вопрос на миллиард и 15 минут погрузочно-погрузочных работ.

Объект мы за первую ночь утыкали камерами с детекцией движения, но детекцию нормально настроить не успели. И камеры реагировали не только на росгвардейцев, но и на птиц. Птицы летали не только снаружи, но и внутри ангара, и сильно чаще, чем я думал. А я на измене, представляю, что кто-то полезет это оборудование вытаскивать.

Когда история с асиками кончилась и в ванны мы перезалили другой диэлектрик под серверы, очень сильно выдохнули.

Всё же облаком в России заниматься гораздо спокойнее и предсказуемее.