…И не потратить на это много денег.
Привет, Хабр! Меня зовут Антон. Я работаю в группе разработки аппаратной поддержки СнК в YADRO. Мы работаем на стыке железа и программирования: разрабатываем стенды для тестирования полупроводниковых продуктов. А тестовая лаборатория — неотъемлемая часть нашей работы.
Мой рассказ будет состоять из двух частей. В первой я расскажу, как мы организовали лабораторию и разместили стенды. Во второй — покажу, какое оборудование помогает сделать работу инженеров быстрее и удобнее.
Паяльники нам пока не понадобятся, но зоркий глаз и понимание базовых законов физики очень даже. Начнем?
Инженерные лаборатории — это…
Обычно лаборатория — это небольшая комната, в которой стоят несколько столов. На них находится оборудование: паяльники, осциллографы, блоки питания, всякие измерительные приборы и, конечно же, тестовые стенды.
Очень часто мы работаем со стендами, которые, по сути, являются первыми инженерными образцами — иногда мы собираем их своими руками. Работать с ними за столом удобно: везде можно подлезть, ткнуть осциллографом или переподключить какие-то провода.
Когда базовые проверки пройдены, все развивается по классическому сценарию: становится больше разработчиков, следовательно — больше стендов. Потом появляются автотесты, которым тоже нужны стенды. В итоге лаборатория живет по принципу «больше стендов богу стендов»: днем оборудование занято людьми, ночью — автоматическими проверками, которые должны завершиться до начала рабочего дня.
Как в лаборатории разместить больше стендов?
Вариант первый. Добавить больше полок на лабораторных столах: именно это мы и сделали в начале пути.

Использовали стандартную технологию: взяли оргстекло и разместили на нем стенд, то есть плату, блок питания и периферию. Получилась удобная конструкция, которую можно поставить на полку и при необходимости оттуда забрать.

Минусы: пропадает горячий доступ. Бо́льшее количество полок не делает работу удобнее. Если нужно что-то измерить, переподключить или перепаять, стенд приходится полностью отключать, доставать с полки и переносить на рабочий стол. Это неоптимально для поиска проблем, так как некоторые ошибки проявляются только после длительной работы системы и исчезают после перезапуска. В итоге время тратится не на поиск причины бага, а на попытки его воспроизвести.
Вариант второй. Увеличить количество столов.
Если вариант «больше полок» не подходит, логично будет предположить, что проблему размещения поможет решить большее количество столов, и, как следствие, бо́льшая площадь. Но и здесь не все так просто.
Минус: столов и, следовательно, места под них понадобится очень много. В зависимости от сложности разработки количество стендов в лаборатории может варьироваться от 80 до 150 — в разных конфигурациях и с разной периферией. Кроме того, некоторые стенды дублируются для одновременной работы инженеров. Также непросто обеспечить достаточные генерирующие мощности и серьезную систему охлаждения для них.
Можно попробовать расширять лабораторию последовательно. Либо начать с небольшого помещения, постепенно добавлять новые квадратные метры и расширять штат. Либо перевозить лабораторию в более просторные помещения, но на время переездов работу придется останавливать. Поэтому ни один из этих вариантов нам не подошел.
Главная задача любого инженера — решить сложную проблему наипростейшим способом. Поэтому для начала мы четко определили проблемы, которые нужно решить в рамках наших лабораторий:
Разместить от 80 до 150 тестовых стендов с возможностью масштабироваться.
Обеспечить стабильное питание недорого и без привлечения новых генерирующих мощностей.
Подключать стенды по сети, организовать соответствующую сетевую инфраструктуру и сервисы.
Сделать работу инженеров в лаборатории максимально комфортной, чтобы инженеры не толпились в маленьких помещениях и занимали стенды по очереди.
Размещение стендов
Разместить как можно больше стендов на ограниченной площади и при этом сохранить горячий доступ к каждому из них оказалось довольно просто — с помощью телекоммуникационных стоек из дата-центров.

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

Благодаря стойкам в небольшой комнате площадью 26 м² мы сперва разместили более 80 стендов формата ATX.
К обычной открытой телекоммуникационной стойке мы прикрутили уголки для установки тяжелого оборудования и на них установили шариковые мебельные направляющие — те самые, на которые устанавливают мебельные выдвижные ящики. К этим шариковым направляющим мы прикрутили пластины из оргстекла, где монтируется весь тестовый стенд. В итоге получилась стойка с выдвижными полками. Для них мы изначально использовали большие пластины из оргстекла на всю глубину стойки.

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

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

В одной 42-юнитовой стойке (42U), рабочая высота которой — 186,7 см, мы разместили 20 стендов.

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

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

Благодаря усовершенствованной конструкции мы компактно разместили на 26 м² почти 100 стендов на пяти стойках, отказавшись от обычных столов с полками. На одном столе помещалось не более десяти стендов, и это было крайне неудобно. Две телекоммуникационные кастомные стойки дали нам возможность на той же площади разместить 40 стендов с сохранением горячего доступа.
Новые стойки мы берем уже не на 42, а на 47 юнитов. Пришлось обзавестись мини-лестницей, потому что доступ к верхним стендам уже не такой «горячий». По этой же причине наверху мы размещаем типовые стенды, с которыми редко нужно работать руками, например стенды для автоматического тестирования. А стенды с эксклюзивной периферией располагаем ниже уровня глаз, чтобы легко можно было работать с ними, не вынимая из стойки.
По-настоящему оценить преимущество телекоммуникационных стоек по сравнению с лабораторными столами мы смогли в процессе их использования. Практически вся инженерная инфраструктура для таких стоек уже давно существует. В нее без проблем устанавливаются источники бесперебойного питания, KVM-переключатели, сетевые коммутаторы, блоки распределения питания (PDU), кабельные органайзеры и другое оборудование. Многие производители выпускают измерительные приборы — например, генераторы сигналов, анализаторы или осциллографы — в стоечном исполнении. Благодаря этому вся инфраструктура лаборатории собирается из готовых совместимых компонентов.
Такая организация пространства — только первый шаг. После того как стенды нашли свое место, пришлось решить еще целый ряд практических задач: обеспечить стабильное питание, продумать сеть, оборудовать рабочие места и сделать так, чтобы лабораторией было удобно пользоваться каждый день без перебоев.
Как работа LabOps может выглядеть на практике?
LabOps в деле
Представим ситуацию: есть новая плата, инженерный прототип, а для нее есть тест-план. В ходе тестирования нашли проблему в схематике, отдали плату на реворк монтажникам. Они что-то перепаяли и вернули плату. Инженер уже садится работать с ней: ставит на стол, включает и… не может достучаться до платы по сети.
Подозреваемых в преступлении неисправности несколько — все они представлены ниже. Осталось определить, кто действительно виновен.

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

Второй подозреваемый — два стенда, между которыми вставлены сетевые карточки с прямым соединением. При тестировании высокоскоростных интерфейсов инженеры позаботились о том, чтобы запуск iPerf — инструмента для измерения скорости передачи данных — не сломал общую лабораторную сеть. Здесь все безопасно.

Третий подозреваемый вызывает больше всего вопросов. Когда плата вернулась после переработки, мы увидели это. Была проведена довольно сложная доработка: вместо предусмотренного в проекте level shifter пришлось установить другую микросхему. Аналога с тем же пин-аутом не нашлось, но новый вариант нужно было проверить перед выпуском следующей ревизии платы. Поэтому дорожки пришлось разрезать, добавлять перемычки и навесным монтажом устанавливать нужную микросхему. В итоге доработка оказалась успешной: плата заработала, но сам стенд — нет. Проблемы с инфраструктурой не пропали, либо их это не касается.

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

Наш последний подозреваемый — это коробка коммутации заземления. Через нее подключаются антистатические поверхности столов, на которых инженеры работают с платами. Но в этой коробочке нет одного маленького элемента — резистора, из-за этого заземление получилось не антистатическое, а защитное, и ток с сигналами пошли не по плате, а через стол в землю. Это и стало причиной неисправности нашей платы.
Исключение подобных «рецидивов» составляют весомую часть моих будничных задач, а один из интересных экземпляров мы разберем в следующей части.
Какие инженерные находки помогли вам при организации лаборатории? Делитесь опытом в комментариях!
А также подписывайтесь на блог, чтобы не пропустить продолжение :)
