2014-02-09

Заставившие задуматься эпизоды из жизни эникейщика

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

Эпизод 1. Сетап

Нужно было сконфигурировать и поставить в Питерскую гостиницу AAA систему из шести устройств для доступа в интернет по карточкам. Вообще это была эпичнейшая история, как студент без опыта, на совершенно диком и незнакомом стеке технологий (FreeBSD/C++) пол года корячил фичу, на которую у опытного разработчика ушла неделя.

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

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

Эпизод 2. Телефония

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

Но веселье было не с железкой. Казалось бы: перенести железку из одной комнаты в серверную и переткнуть пару проводов. Пароля от модема нет, настроек нет. Первый день потратили чтобы поехать в ростелеком и получить настройки. Переподключили, все работает, собрался домой, только отошел - звонок, возвращайся, все сломалось. Пришел, вернул всё как было - заработало, потом опять отвалилось. Вот зе фак. Главбух на меня смотрит волком: им нужно базу синхронизировать, ADSL не работает, хорошо что есть резервный диалап, но сильно медленней, еще я её из-за компа выгоняю и она вынуждена бездельничать. Вызвали техников, те приехали проверили, все работает. Посоветовали заменить модем. Новый дорогой модем с вайфаем вел себя точно так же. Опять вызвали спецов, на этот раз приехали два очкастых усача с чемоданами и начали проверять линию. Долго ковырялись. Потом достают дешевый китайский модем, он подключается. Наш дорогой, пытается подключиться и отваливается. Директор покраснел и начал кричать матом: мне что солить эти модемы что-ли. Поехал, поменял на дешевый китайский. И настало счастье. Все это длилось почти неделю и я сильно задумался о затратах бизнеса на всё это веселье.

Эпизод 3. Админ

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

Первый квест был - найти договор, инструкцию, хоть что-то чтобы выйти на провайдера. Тетка ушла, долго копашилась в своем архиве, принесла пачку бумаг. Мы долго искали, наконец нашли название конторы (без контактных данных). Хорошо, что у меня был на телефоне интернет и мы быстро нашли телефон саппорта. Дозвонились, у нас потребовали аутентифицировать себя фамилией, хорошо, мы вам перезвоним. С третьей попытки мы успешно прошли этот этап, чтобы узнать, что они всего лишь перепродажники и техподдержкой не занимаются. Дали нам телефон провайдера, номер договора и пароль. Дозвонились, там саппорт сходу: на рабочем столе нажмите иконку со спутником. Я: воу-воу, палехчи, на рабочем столе миллион иконок, но нет ни одной со спутником. Куда обычно ставится программа - на диск C, там тоже нет. А как называется программа? Нашел поиском - админ её скинул с какую-то папку с неочевидным названием. Дальше уже был одело техники: поправить коэффиценты подключения, попытки с третьей всё завелось. В итоге я им остали подробнейшую инструкцию со всеми номерами телефона, и секретными фразами которые надо произносить, что где находится и куда вбивать цифры, которые будут произносить по телефону. Больше я туда не ездил.

Эпизод 4. Автоматизация

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

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

Кстати, еще один момент был: JRE можно было не устанавливать, а просто копировать прописав правильные пути. Болевой точкой был Oracle XE, который очень долго устанавливался и хотелось просто копировать его с минимальными усилиями. Это было возможно, поскольку на моем компе Оракл пережил три переустановки системы и две материнки. Я даже расковырял сценарий установки и сумел руками выполнить все команды, чтобы получить рабочий инстанс. Но, как это часто бывает, решаемая задача становится резко неинтересной, да и пропала необходимость в связи с переездом. Но быстрый установщик Оракла на NSIS - это было бы очень круто. Because I can.

Эпизод 5. Пароль

Контора с непроизносимым названием КРИПКиПРО выделил нам сервер, чтобы водрузить туда нашу систему (то непередаваемое веселье от работы с ними заслуживает отдельного поста). Шеф сказал, сходи забери сервер. Ну ок, пару сотен метров, системник донесу. Пришел к ним, давайте ваш сервер. А где твой товарищ? Какой товарищ? Ну сервер нести. Эээээ?! Показывают медицинскую каталку с полноценным одноюнитовым серваком. Звоню шефу: приезжайте, забирайте меня. Ок, отвезли в офис, я настроил всё это дело. Помня предудущие эпизоды (у сервера пять салазок для жестких дисков и шестая - пустая) подумал: надо куда-то засунуть пароль. Взял стикер, написал пароль и засунул в пустой слот. Отвезли, воткнули в стойку.

Приходим спустя какое-то время. Нам жалуются: сервера и так шумные, но ваш как-то особенно громко тарахтит, что аж в актовом зале слышно (а серверная это такая админская каморка в углу актового зала). Ну фиг знает, тарахтит и тарахтит. Иду перетыкать клавиатуру (кстати, хотелось послать лучи ненависти тому мудаку-инженеру, который кнопку сброса расположил прямо над USB разъемами так, что большой палец очень удобно нажимал на эту самую кнопку при втыкании флешки). KVM у них не было. Смотрю на заднюю панель - что-то цветное. И тут закрадываются подозрения. Срочно вырубаем, вытаскиваем, открываем крышку и что мы видим: кулера-турбины всосали ту самую бумажку с паролем, порубили в мелкое конфетти и выплюнули через зад. А те части, что были с клеевой полоской налипли на турбину. Они-то и тарахтели, как в детстве картонка по спицам на колесе велосипеда. В следующий раз я более тщательно относился к выбору коврика, под который спрятать ключ от двери.