К книге
Тег #ПротивостояниеГлава 5
19%
Глава 5
5

Артём

На встречу меня вёз Кит, потому что мой Tucson стоял на сервисе. Не стал такси заказывать потому что Киту нужно самому было по рабочему вопросу в то время и примерно в ту сторону.

Я рассказал ему всё за тринадцать минут. Он молчал ещё дольше.

— Слышь, Артём. А если б я тебе сказал соглашайся?

— Тогда бы мы с тобой спорили.

— Долго?

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

Он покосился на меня, прищурившись на пол-лица.

— Я тебе и так верю.

— Знаю.

Кит подумал и хмыкнул.

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

* * *

Тарханов сидел за прежним столиком, и перед ним лежала плоская кожаная папка Balenciaga на молнии. Полный комплект документов на подпись, должно быть. Праздничное настроение. Он явно рассчитывал сегодня закончить переговоры.

Я сел и не стал тянуть.

— Владислав, я отказываюсь.

Он не удивился сразу. Профессионалы никогда не удивляются сразу.

— Могу я узнать почему?

— Можете. Причина одна, но к ней прилагается список.

Я достал свой листок, распечатка с неприемлемыми тезисами, которые я набросал, и положил перед ним.

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

Тарханов слушал молча, почесав нос.

— Дальше. Увеличение капитала только единогласно. Значит, если мне через год понадобятся новые деньги и я захочу привлечь другого инвестора, я сначала должен получить согласие Мезенцева. Или взять деньги у самого Мезенцева на его условиях.

— Это стандартный защитный механизм.

— Возможно. Но мне он не подходит.

Я пошёл по тексту дальше.

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

Тарханов чуть заметно пошевелил пальцами.

— Это предмет переговоров, Артём.

— Теоретически — возможно.

Я постучал пальцем по следующему пункту.

— Двенадцать месяцев я обязуюсь не вести переговоры с другими потенциальными инвесторами. За нарушение — неустойка. При этом в документе нет встречного обязательства с вашей стороны купить долю в установленный срок.

— Это из протокола о переговорах.

— Да. Я знаю.

— Он не обязывает нас закрыть сделку.

— Зато меня он кое к чему обязывает.

Тарханов промолчал.

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

Я убрал лист в сторону.

— И наконец, сама проверка. Вы хотите получить финансовую информацию, договоры, клиентскую базу, техническую документацию и исходный код.

— В рамках due diligence.

— Разумеется. Только у меня сейчас даже с правами на код не всё приведено в порядок. Я должен сначала разобраться, кому юридически принадлежат исключительные права и что именно я вообще могу вам показывать. С клиентскими договорами та же история. Они заключены на меня как на индивидуального предпринимателя. Если создавать общество, всё это ещё предстоит переносить и переоформлять. Возможно, найдутся те из клиентов, кто не согласятся, или согласятся только за дополнительные бонусы. В любом случае, это огромная работа.

— Это решаемые вопросы.

— Конечно. Только решать их буду я. За свои деньги, своим временем и до того, как вы вообще примете решение о покупке.

Он слегка подался вперед.

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

— Я допускаю.

— Тогда почему отказываетесь?

Я посмотрел ему прямо в глаза.

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

На несколько секунд между нами повисла тишина. Самое главное даже не спорные пункты, а то, что я не хотел взаимодействовать с таким инвестором, как Мезенцев. Ещё свежи были в памяти его махинации в мою сторону. А пункты эти… они лишь убедили меня, что я прав в своём нежелании.

Тарханов взял листок, перечитал его для видимости и положил обратно.

— Вы считаете, что мы пытаемся вас обмануть?

— Нет.

Он поднял брови.

— Тогда что?

— Вы защищаете интересы своего клиента. Это нормально. Я защищаю свои.

Я выдержал паузу в пару секунд.

— Мне не нужен инвестор, который после входа получает возможность держать руку на моём руле. Я не хочу каждый раз объяснять, зачем мне новое оборудование, новый дорогостоящий сотрудник или кредит на развитие. И тем более не хочу однажды обнаружить, что собственная компания выросла достаточно, чтобы стать сильно привлекательной, а управлять ею я уже не могу.

Тарханов несколько секунд смотрел на меня.

— Вы понимаете, что Мезенцев может воспринять отказ болезненно?

— Я не его сиделка, чтобы заботиться о его «болезненности».

— Я к тому, что он не то чтобы злопамятный…

Я ждал продолжения.

— Он просто не очень понимает слово «нет». Не привык к нему.

— Бывает.

Тарханов взял свою папку Balenciaga.

— Жаль. Рынок тесный, Артём Сергеевич. Особенно у нас.

Он достал из кармана визитку и положил её на стол передо мной лицевой частью вверх.

— Оставлю. На всякий случай.

— Да у меня есть ваша визитка.

Он посмотрел на меня пристально, ничего не ответил, поднялся.

Я тоже встал.

— Всего доброго, Владислав.

— Всего доброго, Артём.

Он кивнул и вышел.

Я остался за столом ещё на несколько минут. Забрал визитку, сунул её и листок с моими набросками в карман и заказал такси. Подождал.

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

Я шёл к машине и чувствовал себя очень хорошо. Как будто только что аккуратно и вежливо сжёг огнемётом осиный улей под козырьком пристройки у дома.

* * *

Закрыв или хотя бы временно закрыв вопрос с откровенно стрёмным предложением Мезенцева, я сразу вернулся к Dornet. Хейт и атака оказались не разовым штормом, который можно переждать, а первой проверкой на прочность. Сегодня положили мессенджер, завтра попробуют ещё раз, послезавтра найдут другую дыру. Я слишком хорошо знал эту механику, чтобы надеяться на человеческое благоразумие.

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

Первым делом, открыв блокнот, взяв ручку, я снова связался с московским хостером из своего офиса. Теперь разговаривал уже не через обычную поддержку, а попросил соединить меня с техническим руководителем — директором или начальником соответствующего отдела. Мне нужны были не обещания «мы посмотрим», а адекватная схема действий на случай следующей атаки: кто видит резкий рост трафика, кто включает фильтрацию, куда звонить ночью и что они вообще могут сделать со своей стороны, если забивается канал.

Паша сидел рядом и записывал.

— Что они сказали, Артём?

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

— Уже лучше.

— Ещё предлагают перенести фронт на отдельную машину.

— Вот это делаем.

Я не собирался повторять старую ошибку и пытаться лечить всё одним «подорожником». Dornet рос слишком быстро. Пользователей становилось больше, база раздувалась, запросов становилось больше, а теперь ещё выяснилось, что один удачный удар способен положить всю конструкцию. Вернее, про такие удары я, естественно знал. Сам бы мог при желании такое сделать, да только желания к такой грязи у меня не было. И… одно дело — знать, мол, это где-то там, не у меня. А другое дело, когда DDoS-атака постучалась в твою дверь.

Nginx Паша предложил поставить перед Apache ещё во время разбора последствий атаки. Я согласился. На отдельной машине он мог принимать соединения, отдавать статику и отсеивать часть мусорных запросов, не заставляя само приложение заниматься каждой мелочью. Для обычной нагрузки это тоже было полезно: когда пользователи приходят тысячами, совсем не обязательно гонять каждый запрос через весь стек. Nginx действительно существовал уже как два года и к тому времени применялся как обратный прокси перед Apache.

Но я отдельно сказал Паше, что это не волшебная таблетка.

— Если забьют сам канал, никакой Nginx нас не спасёт.

— Да-да, босс. Понимаю…

— Поэтому часть защиты должна быть у хостера. Наша задача — сделать так, чтобы до приложения доходило как можно меньше мусора и чтобы один перегруженный процесс не тянул за собой весь Dornet.

Мы разделили то, что раньше лежало в одной куче. Веб-часть — отдельно. База — отдельно. Файлы и растущий пользовательский архив — отдельно от системных вещей. Не потому, что я внезапно решил построить дата-центр имени Дорохова, а потому, что теперь каждая поломка перестала быть теоретической.

Одновременно я заказал у хостера дополнительный дисковый объём. База росла каждый день: сообщения, учётные записи, служебная информация, вложения. Места хватало, но запас уже перестал казаться достаточным. Я предпочитал заплатить за лишний диск сейчас, чем через месяц ночью смотреть на красную надпись о том, что свободное пространство закончилось.

Заодно взяли ещё одну машину под растущую нагрузку. Не «резервный сервер» в смысле моих ночных выгрузок — резервные копии как лежали у другого хостера, так и продолжали лежать там. Это была отдельная страховка. Новая машина предназначалась для самой работы Dornet, чтобы постепенно разнести нагрузку и не держать всё на одном железе.

Паша ответственно откликнулся касательно объём работы, полез разбирать конфигурацию.

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

Вторым пунктом шёл мониторинг.

До атаки я в основном смотрел на Dornet через людей. Паша видел ошибки, пользователи писали о проблемах, я сам замечал неприятности по факту. Это работало, пока проект был маленьким. Теперь перестало.

Мне нужен был человек, который смотрит на систему постоянно.

Костю Лаптева мне рекомендовал знакомый из Новосибирска, один из клиентов, скажем так. Двадцатичетырёхлетний парень, работал программистом, довольно хорошо разбирался в Linux и сетях, часть работы уже выполнял удалённо для пары других компаний. Мы поговорили по телефону, потом ещё раз — уже по конкретным задачам.

— Что именно от меня хотите? — спросил он.

— Следить за Dornet. Нагрузка, доступность, ошибки, резкие скачки трафика. Если что-то выглядит ненормально — сначала разбираешься сам, если не получается — звонишь Паше или мне.

— А если ночью?

— Особенно ночью.

Он согласился.

С Костей договорились на обычный рабочий график с одним условием: после окончания работы он не сидит у монитора, но остаётся на аварийной связи. Если мониторинг видел серьёзную проблему, SMS с повтором сигнала оповещения будила его раньше будильника. Либо, если он не спал, но был не дома, ему нужно было добраться до компьютера или ноутбука и подключиться к серверам удалённо. Все эти моменты мы согласовали в ходе собеседования — что приемлемо, что нет. К моей радости Костя оказался тем ещё компьютерным гиком. Уровень оплаты я обозначил с учётом покрытия неудобств, что его вполне устроило.

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

Паша после этого получил повышение (с повышением и уровня зарплаты) и возглавил новый отдел мессенджера Dornet. Я специально вывел его напрямую на себя, не касаясь Кита.

В отделе у Паши появились Костя Лаптев и ещё трое молодых ребят, джунов. Двое парней и девушка, всем около двадцати с небольшим. Задачи у них были попроще: тестирование, проверка исправлений, обработка типовых обращений, поиск повторяющихся ошибок, работа с логами, подготовка данных для Паши и Кости.

Одного из трёх ребят я посадил на отдельную работу — девушку, Катю, с татуировками и пирсингом в ушах и носу. Но она просила называть её Кэт. Не Катя, не Екатерина, не Катюша. А именно — Кэт. Обычная такая неформалка, не фемка.

— Что у нас происходит, когда человек жалуется, Кэт?

— Смотрим обращение.

— А до обращения что предусмотрено?

Она не сразу поняла.

— Эмм… Получается — ничего?

— Вот именно.

Я попросил её начать собирать библиотеку для Центра Помощи мессенджера, параллельно с основном работой. Не красивую энциклопедию и не сотню страниц текста, а обычную человеческую базу типовых проблем: не приходит письмо, не получается войти, потерял пароль, не работает функция, куда нажать, что проверить самому. Если вопрос повторяется двадцать раз, двадцать первый человек не должен писать нам, не должен задействовать ценный человеческий ресурс нашей компании, а просто должен для начала поискать решение своей проблемы в Центре Помощи.

Работа эта только начиналась. Быстро её не сделать. Нужно собирать реальные случаи, смотреть, какие ответы действительно помогают, переписывать их нормальным языком и постоянно дополнять…

Часть жалоб у нас уже разбиралась автоматически, конечно. Простые вещи система умела отсеивать сама. Но там, где требовалось понять контекст, решить спор или разобраться, кто действительно нарушил правила, автоматике было нечего делать. Мой прототип службы поддержки — три человека (пока), которые разбирают то, что автоматика не понимает, следят за жалобами, смотрят на спорные случаи и постепенно превращают накопленный опыт в правила для системы. Хотя, по сути этот прототип начался с Паши, но теперь был более выразительный по функционалу вид.

В целом, говоря про концепцию, мне не хотелось превращать Dornet в место, где десять модераторов с утра до ночи вытирают чужие сопли о том, как у кого-то «не было не единого разрыва», если вы понимаете, о чём я. Я хотел, чтобы сама система постепенно училась справляться с типовыми проблемами, насколько позволяло развитие технологий того времени. На роль Сэма Альтмана я не претендовал.

Хотя… Хах! Кто знает!

* * *

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

И в итоге получилось так, что атака ещё и принесла Dornet новых пользователей. Да, кто-то отвалился и ушёл. Но не так много. Пришло больше. А те — вернутся ещё.

Я смотрел на цифры и усмехался. Гнилая, беспринципная дрянь Марина хотела подмочить мне репутацию, а в некоторых местах только заставила людей впервые узнать, что Dornet вообще существует.

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

Сколько ей тогда было? Судя по бизнес-хватке, по слогу в статьях, в осведомлённости о методах теневой атаки, явно не восемнадцать. Не двадцать, не двадцать пять. За тридцатник? За сорок? За полтинник? Ну да, в таком возрасте, если у мадамы снаряд в голове — никакие перемещения во времени и пространстве не помогут. Поэтому, если не успела выйти замуж в молодые годы — ходят злые до последних дней в одну каску, как неприкаянные.

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

Предыдущая главаГлава 5 из 27Следующая глава