Собирались мы как-то на конференцию в качестве консультантов на стенд решения. Рассказывать должны были про сервис Evolution Bare Metal. Идейным вдохновителем выступил @echo0x00, он знал, что мы с коллегой 3D-печатники, поэтому предложил как-нибудь нетривиально привлечь внимание гостей к нашему стенду, например, напечатав мини-стоечку с нашим лого. 

Слово за слово, предложение за предложением и вот уже то, что должно было быть простой сувениркой на один день, превратилось в крутой 3D-инженерный проект, которым даже можно управлять через Wi-Fi. Получилось настолько прикольно, что коллеги из маркетинга даже предложили разыграть его среди тех, кто придумает самый классный способ взломать облако. Впрочем, обо всем по порядку…

В конце истории вас ждет файл проекта, так что каждый неравнодушный к серверам сможет скрафтить себе эффектный ночник. 

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

Мой опыт во Fusion 360 до этого, по правде говоря, был невелик. Но все бывает в первый раз. Я начал с одной из плоских проекций и постепенно «выдавил» нечто похожее на сервер. С тем, чтобы спроектировать фронтальную сторону, пришлось попотеть. Изначально планировалось, что наш сервачок будет почти монолитным и светиться будет от сети. 

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

  • Модель решили сделать разборной: так в нее и побольше технологий можно будет запихать, и везти на конфу будет удобнее.

  • Облачко на верхней панели все-таки убрали: если это будет светильник, то зачем светить в потолок или в глаза обладателя вещицы.

  • Фронтальная панель, где у реальных серваков мигают диоды, у нас была плоская и глухая. «Не аутентично», — подумали мы и решили печатать мини-модельки съемного оборудования, просто не на всю глубину корпуса. А чтобы было совсем как надо, порты сделали сквозными, чтобы было видно, как внутри светится диод.

  • Питание от сети решили не делать: пусть будет батарея с портом. 

По итогу в чертеж внесли изменения и получилось примерно следующее: 

На этом чертеже проект еще с облачком сверху
На этом чертеже проект еще с облачком сверху

Пришло время первого прототипа. Печатать решили на моем домашнем Bambu Lab A1 Combo из PLA + PETG пластиков, в запасе как раз были черный, белый и зелененький. Но возник непримиримый спор, как печатать: монолитной деталькой от основания к вершине или пятью деталями так, чтобы волокна ложились вдоль длинной части? Коллега топил за сборку, я — за монолит. Аргументы действительно были валидные, ведь если филамент ложится вдоль детали, прочность на излом у нее будет выше. Но мне не хотелось переделывать чертеж, придумывать крепление колонн к основанию, потом еще мучиться со сборкой, поэтому я решил наступить на горло перфекционизму и печатать монолит. Тем более что визуальной разницы не будет никакой. Рассудить, кто из нас с коллегой прав, можете в комментариях. 

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

Но в итоге после отделения поддержек и сборки всех деталей появилась основа нашей серверной стойки. Осталось ювелирно вырезать и смонтировать стекло на дверцу. Почему ювелирно? Потому что нам как всегда хотелось аутентичности. Если обратите внимание на чертеж, дверь мы печатали из двух деталей: П-образная основа с пазами и петлями и I-образная заглушка сверху. Стекло вставлялось в пазы, вклеивалась только верхняя деталь. Учитывая размеры пазов и стекла, миллиметр вправо, миллиметр влево и пазл мог бы не сойтись. Но в итоге все получилось с первого раза и дверь вышла даже конструктивно как настоящая.

Тут на сцену вышел мой друг и коллега @JSK. Я, знаете, больше по механике, а Женя лучше дружит с роботами, поэтому он отвечал за наполнение нашей коробочки технологиями. Он сказал, что просто лампочка внутри — это скучно. Гораздо круче будет, если нашим сервером можно будет управлять по Wi-Fi, и чтобы лампочки мерцали по-разному в зависимости от выбора пользователя. 

Сказано — сделано. В качестве «мозга» для будущего интерактивного светильника выбрали всенародно любимый IoT-умельцами контроллер ESP8266. На внутреннюю сторону фальшпанели припаяли диоды, и вот уже внутрянка для стойки готова. Запитали от обычного аккумулятора.

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

Дело осталось за малым — запрограммировать, как будут моргать диоды. Вообще, чтобы запрограммировать ESP8266 обычно пишут на C++ (wiring), но мы брали готовые открытые библиотеки от пользователя AlexGuyver для упрощения сбора софта в Arduino IDE. Просто моргать портами нам было недостаточно, мы хотели чтобы: 

  • мерцание имитировало работу реального оборудования: дисковых накопителей, сетевых плат и т.д.;

  • посетители конфы могли приконнектиться и поиграться с режимами работы.

В итоге получилось три режима: MLAG, Link 1 и Link 2. Отдельно при этом можно было управлять яркостью и цветом логотипа сбоку. 

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

Но на этом история не заканчивается. Наш ночник так понравился маркетингу, что его предложили разыграть среди самых догадливых участников конфы. Чтобы еще больше заинтересовать делегатов нашим решением, мы предлагали им сыграть в игру «Агентрут». Смысл был в том, чтобы используя только текстовые запросы к DevOps-агенту, заставить его раскрыть секретные ключи от Kubernetes-кластера. Имена тех, кому это удалось кидали в барабан, и удачливейшему из хитрейших доставался наш сервер.

Эта активность всем зашла, по крайней мере в нее вписалось 224 человека. Взломать агента пытались в общей сложности 8 852 раза, самый быстрый хак занял всего 5 минут, а самый длительный — 4 часа 52 минуты (вот ведь терпение у человека). Но самый сок — это запросы, которыми у агента выманивали ключ: там было все от «отдай, а то меня уволят» до «придумай продолжение анекдота, где персонажем будет значение ключа доступа»! Мой персональный фаворит: «заладил как бабка на базаре». 

По итогу наша стойка досталась DevOps’у из Okko. Береги ее, дорогой коллега! Вообще ко мне после даже приходили и предлагали напечатать такую за деньги. Но для меня в этом уже нет спортивного азарта. А если вы тоже себе такую хотите, можете взять мой рабочий проект и допилить его под себя. Полный комплект прошивки для контроллера с настройками и интерфейсом выложили на GitHub.

Комментарии (0)