Оценить:
 Рейтинг: 0

Тимлиды

Год написания книги
2022
Теги
<< 1 2 3 4 5 6 7 8 9 ... 23 >>
На страницу:
5 из 23
Настройки чтения
Размер шрифта
Высота строк
Поля

– Мальчики, коктейли сейчас принесут, готовьтесь, там много. Кто слабенький – прячьтесь! – Лиззи была весела, как и всегда в барах. – Ой, ты ещё и документы сюда принес. Я отказываюсь их смотреть до тех пор, пока не принесут коктейли!

– Лиззи, я с тобой, ты – лучшая! – Михаил с симпатией смотрел на единственную девушку за столом.

– Влас, как у вас там в Нерезиновой? Похорошела Москва? – Лиззи нравилось выглядеть хулиганкой и отвлекать собравшихся от дела. Все это понимали и подыгрывали ей.

– Хорошеет с каждым днем благодаря плитке и большому брату. Вот только я, кажется, для нее недостаточно хорош. Приехал в Питер и совсем не хочу возвращаться обратно. И это не потому, что я пьяненький. Бары у вас прекрасны. Но здесь будто жизнь есть, а там я не знаю, у кого жизнь есть. В общем, никому лид аналитики не нужен?

– Они тебя не потянут, – Рустам, приехавший вместе с Власом на выходные из Москвы, отпил из принесенного стакана коктейль, – провинция, нищеброды.

– Тут ты не прав, дорогой. За этот год благодаря пандемии зарплаты во многом выровнялись в айтишечке, – ответил, поднимая один из бокалов со стола, Лев. – У всех же теперь удаленка, хвала вирусу! Так что в зарплатах сейчас отстает только тот, кто не требовал повышения с допандемийных времен.

– Да я знаю, – поправляя воротничок обтягивающей рубашки, лениво ответил Рустам. – Но наш Влас все равно дорогой, его мало кто потянет.

– Это ты ещё счет в этом баре за коктейли не видел, увидишь – поймешь, что такое дорого! – хлопнув Рустама по выпирающему животику, сказала с вызовом Лиззи.

– Господа, Лиззи, давайте выпьем за встречу и за успех! – Вячеслав поднял бокал. Чокнувшись со всеми и пригубив, он продолжил. – Позвольте рассказать план.

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

– Короче, перед вами несколько компонентных схем, описывающих банковскую систему. Их несколько, они не согласованы между собой, были составлены в разное время. Я вкратце опишу их поделие, как мы его представляем по этим схемам. На первом листе вы видите верхнеуровневый взгляд на систему. Это отказоустойчивая распределенная система. Она располагается в десятке дата-центров, вон, сбоку вы видите лейбл tierIV, вероятно это означает класс надежности. Я буду слегка иронизировать сначала, пока схемы проговариваю, потом объясню почему. Не буду сейчас рассказывать про инфраструктурное программное обеспечение, виртуалки, контейнеры и прочее. Точная информация будет в понедельник, не раньше. На третьем листе, посмотрите, свежая схема компонентов системы: приложений, СУБД, очередей. Здесь не все, схема полугодовой давности, актуальна в общих чертах. Тут довольно стандартно. Сайтик на javascript+react, это часть Лиззи, мобилки на Swift и Kotlin, тоже она. С бэком сложнее, он вроде весь на джаве, но это не точно. В хранении зоопарк, используется баз десять, на схеме обозначены. Короче, все базы данных, которые придут на ум, есть в системе. Не спрашивайте зачем. Просто потому, что они могут. Ещё есть hadoop, там озеро данных, что туда льют, пока не ясно.

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

– У них нет десяти дата-центров. – Михаил с довольным видом, широко улыбаясь, подключился к дискуссии. – Мы выяснили, что эта архитектура есть только на бумаге. Инвесторам ее показали, чтобы обосновать расходы, и забыли о ней. В реальности есть три дата-центра: Москва, Нижний и Новосиб. Все они принадлежат Налоговой инспекции или ее подрядчикам, порядка там никакого нет. Банк арендует самые дешевые мощности, которые смог найти. Возможно, даже и совсем не платит за железо, а как-то мутит там, это же все окологосуха.

– Интернет-банк на трех узлах в несертифицированных дата-центрах? Это законно вообще? – Рустам удивленно смотрел на Михаила. – То есть задача в том, чтобы повлиять на работу этих центров?

– У нас уже есть возможность вмешаться в работу московского и нижегородского, – ответил Лев. – За Москву отвечает Миша, за Нижний – я. Лиз, расскажи свою роль.

– Ну а что Лиз? Слава же вещает, а вы все перебиваете! – ответила девушка.

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

– Лентяй! Мастер делегирования, блин. Ну ладно. В общем, моя команда пишет им фронт. Там всё отлично, работало до недавнего времени всё без сбоев, но уже месяц как мы стали вводить в код баги[3 - Баг (bug) —ошибка в коде, сказывающаяся на работе приложения.], которые проявляются не сразу, при определенных обстоятельствах, плавающие такие, ну вы поняли. На будущей неделе у них должно рвануть.

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

– Опять ты говоришь о том, как должно быть. У них система так устроена, что нельзя откатиться назад без кучи ручных телодвижений. Нет автоматического деплоя. Есть куча конфигов, которые правятся руками, – Лиззи, нахмурив брови, посмотрела на Рустама, который поднял руки, давая понять, что сдается.

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

– Я посмотрю со своими, что можно сделать, – многозначительно подытожил Рустам.

– Слушайте, а у меня вопрос. Можно? План А – это поспособствовать прекращению работы банка на этой же неделе, верно? – Влас обвел взглядом коллег. Вячеслав, Михаил и Лиззи кивнули в ответ. – А что если план не сработает? Не обижайтесь, друзья, но мы не профи в этом деле, мы не хакеры, не взламываем банки, или даже не знаю как это назвать. Проектировать и делать системы – это не то же самое, что пускать эти системы под откос.

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

– Уверен, ты найдешь более интересные вещи для пролонгирования, – рассмеялся Михаил. Влас перехватил инициативу.

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

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

Понедельник, 25 января 2021 года. Вячеслав

1. Рабочее утро

Легкая вибрация на запястье разбудила и заставила открыть глаза. На часах было семь, утро понедельника, который обещал быть напряженным. Взгляд сквозь панорамные окна спальни пентхауса постарался остановиться на скованной льдом величественной Неве и не скользнуть вглубь стройки новых спальных кварталов на правом берегу реки. В детстве отец говорил Вячеславу: «Ученье – свет, а неученье – чуть свет и на работу». Эта присказка, как и другие советские истины, оказалась лживой: пробуждение до рассвета было привычкой, отделявшей успех от прозябания. Подъем, зарядка, душ, взвешивание на электронных весах, беглый просмотр аналитики сна и биоимпедансометрии, завтрак. В восемь утра Вячеслав включил в кабинете iMac. Небольшое смещение графика из-за вчерашней встречи Профсоюза уменьшило время сна и ощущалось в теле, 39 лет давали о себе знать.

Садиться за рабочий стол не хотелось – это могло затянуть на весь день, Вячеслав взял планшет и вышел из кабинета на просторный теплый балкон своей квартиры. Вид на предрассветный Петербург – проспекты почти без машин под светом уличных фонарей по оба берега реки, мосты через реку – заряжал энергией. Эта часть города была родной и знакомой. Проспект Обуховской обороны связал несколько поколений семьи Вячеслава, которая была свидетелями его появления и метаморфоз от проспектов Шлиссельбургского тракта до нынешнего вида. В нескольких кварталах жили его родители, неподалеку когда-то жили его дед и прадед. Получив на планшет почту и посмотрев расписание, Вячеслав представил свой график на этот день: из трех слоев параллельных встреч с девяти утра до восьми вечера надо было составить одну стройную последовательность важного, посетив все заслуживающее внимания, при этом успев поработать. Про себя он не называл эти многочисленные встречи в zoom, skype, teams[4 - Популярные средства для видеоконференций.] и прочих сервисах работой. Работой для него была деятельность в своих командах, программирование, решение технических задач. Он любил работу и недолюбливал праздную болтовню совещаний, в первой находя силы для сопротивления второй. Ответив в почте и мессенджерах на все необходимое, Вячеслав вернулся в кабинет, сел за стол и бегло просмотрел сделанное командами с вечера пятницы в репозиториях и таск-менеджерах проектов, за которые отвечал.

Основным проектом была крупная федеральная система документооборота, где Вячеслав был техническим директором, cto. Система позволяла обмениваться юридически значимыми документами и была основой электронного документооборота четверти компаний страны, в том числе крупнейших банков, энергетических компаний, телекома. Все значимые технические решения и решения по организации команд разработки принимались при его непосредственном участии. Впрочем, ему этого было недостаточно: он был знаком с ситуацией в каждой команде разработки и старался регулярно смотреть код основных сервисов системы. Это позволяло быть погруженным в проект, не терять связь с технарями и следить за новым в разработке: языками, фреймворками, библиотеками, паттернами. Любя работу программиста всем сердцем, он держал в уме возможность опять ей заняться как основной.

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

Третьим проектом, социальным проектом pro bono был Профсоюз, который Вячеслав возглавлял, будучи первым среди равных тимлидов в этом сообществе. Вначале это было тяжело, но с течением времени и приобретением опыта, он впервые почувствовал, что оказался среди близких ему людей. Близких не как небольшая семья, где разные роли, возраста, пол, а как стая примерно одинаковых животных, где нивелированы различия и участники проживают примерно одну и ту же жизнь. Почти все участники Профсоюза были белыми мужчинами 30–40 лет, женатыми или в паре, с высшим техническим образованием, с русским как основным языком и английским как вторым, с привычкой к чтению и аналитическому мышлению, родившиеся и выросшие в СССР или России, православные или атеисты. Удивительным было находить в других свой прожитый опыт. Именно с этим проектом Вячеслав связывал свое будущее.

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

Этому плану и было посвящен первый за день стендап – необычный zoom-стендап с участниками Профсоюза, взявшими на себя ключевые роли авантюры. Подключившись, Вячеслав в привычной манере начал:

– Приветствую всех, давайте начнем, кратенько по статусу. Михаил, ты первый. Выспался?

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

– Про первые два новости хорошие, по третьему какие идеи?

– Пока никаких, знаю, что это моя зона ответственности, но если кто-то готов помочь, буду рад.

– Принял, давайте дальше, Лиззи.

– Привет, зайчики. Ну и дали вы вчера: пили как в последний раз, будто больше и работать не надо и план наш сам себя реализует. Брали бы пример с меня – в полночь я уже крепко спала в своей кроватке. К делу, сегодня мы выкатим релиз[5 - Релиз (release) – версия приложения или системы.] мобильных приложений и веб-морду банка на препрод[6 - Стенды, на которых работают приложения, делятся на несколько типов. Стенд, с которым работает конечный пользователь, называется продуктивным, продом, боевым. Стенд, на котором происходит тестирование перед релизом на продуктив, называется, препродом.], команда эксплуатации банка за день его спустя рукава потеснит и к вечеру примет, так всегда бывает. В релизе есть баги, которые не будут видны на препроде, и выстрелят они только на продуктиве. Там запутанная система конфигурационных файлов, и изменился api на бекенде. Проблемы были и в предыдущих релизах – они торопят разработку и не следят за качеством. Откатиться не смогут, система там и правда дурная, мы по sla[7 - В данном случае соглашение между банком-заказчиком и аутсорсером-исполнителем о порядке и сроках выполнения определенных типов работ.] спешить не сильно обязаны, так что во вторник, максимум к утру среды доступ пользователей к интернет-банку будет сильно ограничен.

– Отлично, Лиз, звучит как план! Лев, твое слово.

– Доброе утро, господа и Елизавета! И правда, оно было бы добрее, не будь коктейли в этих барах, куда ты нас, Вячеслав, заманил, такими вкусными. Если без шуток, мы отсмотрели код основных сервисов бэкенда банка. Видно, что пишут второпях, покрыто тестами процентов пять, много дублирований, статические анализаторы[8 - Статический анализатор (линтер) – инструмент разработки, проверяющий качество кода без его исполнения.] в гневе, но эти ребятки, похоже, линтеры не уважают. Мы нашли несколько зависимостей на внешние сервисы, которые реализованы таким образом, что при отсутствии или задержке ответа от внешнего сервиса банк тоже падает. Эти ошибки банк не обрабатывает: или уходит в вечный ступор, или говорит пользователю что-то невнятное. Можем повлиять на доступность этих сервисов или на их видимость из контура банка. Работаем над этим, к вечеру будет конкретика.

– Лев, мерси! Держи меня в курсе. Кто с тобой работает над анализом кода?

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

– Отлично, давайте дальше. Алексей, твой черед.

– Привет, алкоголики! Пока вы все вчера пили, я работал. К сожалению, у меня и моей команды знаний не хватит на анализ кода: джава и котлин у нас не в ходу. Мы успели следующее. Недавно несколько эксплуатационщиков[9 - IT-специалисты, занимающиеся эксплуатацией стендов, прежде всего продуктива, обычно обладающие навыками девопсов и тестировщиков.] банка уволились и приземлились в моей команде. Так что у нас на борту есть инсайдеры из команды эксплуатации банка и есть связь с текущей командой эксплуатации банка. Там разброд и шатание, люди крайне недовольны новым руководством, переработками и хаосом.

– Леш, правильно поняла, что код, который я задеплою[10 - Деплой (deploy) – размещёние приложения на стенд и его запуск.] на препрод-стенд через пару часов, с твоей помощью будет принят сразу же и поедет на продуктив? – вмешалась в перекличку Лиззи, почувствовав, что подвезли супероружие.

– Давайте пока этот козырь держать при себе. Парни на нашей стороне, но подставлять их не хочется.
<< 1 2 3 4 5 6 7 8 9 ... 23 >>
На страницу:
5 из 23