Home » Мы возвращаем непрерывную интеграцию на машины разработчиков.

Мы возвращаем непрерывную интеграцию на машины разработчиков.

Между запуском правил стиля Rubocop, сканированием безопасности Brakeman и тестированием модели-контроллера-системы нашей удаленной настройке непрерывной интеграции на основе BuildKite требуется около 5 минут 30 секунд, чтобы убедиться, что изменение кода готово к отправке для HEY. Моя Linux-система на базе Intel 14900K может сделать это менее чем в два раза быстрее (и мой M3 Max не намного медленнее!). Поэтому мы собираемся отказаться от удаленных исполнителей и просто вернуть непрерывную интеграцию на машины разработчиков в 37signals.

Удивительно, насколько большой скачок сделали многоядерные машины для разработки за последние пять-семь лет или около того. Еще недавно выполнение всех этих проверок и проверок за разумное время на локальной машине было бы немыслимо. Но у 14900K более 20 ядер, у M3 Max — 16, и даже у скромного MacBook M2 — 8. Все они способны выполнять огромный объём параллельной работы, которую в середине 2010-х годов казалось бы фантастикой выполнять локально.

HEY также представляет собой довольно обширную базу кода. Около 55 000 строк кода Ruby, проверенного примерно 5 000 тестовых случаев и еще 300 системными тестами. Практически все эти тесты проходят через полный стек и попадают в базу данных. Над ними не высмеивают до упора.

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

Как всегда, упрощенное будущее распределено неравномерно. Я не думаю, что такие сервисы, как Shopify или GitHub, смогут в ближайшее время запустить полную батарею тестов на основе миллионов строк кода локально. Но 99,99% всех веб-приложений по широте гораздо ближе к HEY, чем к этим гигантам. А небольшим командам следует убрать все возможные движущиеся части. Никогда не стремитесь к более сложному стеку, чем того требует ваше приложение.

Поэтому нам нужно продолжать сжигать эти мосты сложности как только мы перейдем на другую сторону. Мне не терпится поджечь каждый из удаленных мостов непрерывной интеграции, которые есть у нас в 37signals. Прогресс — это костер.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.