Компания Yahoo открыла код сборочной платформы Screwdriver
Компания Yahoo объявила об открытии исходных текстов проекта Screwdriver, в рамках которого развивается сборочная платформа с реализацией концепции непрерывной доставки (Continuous delivery - CD). Платформа предоставляет средства для создания приложений в рамках сокращенного цикла разработки, постоянно стабилизированного и обеспечивающего готовность к релизу в любой момент времени. Код платформы написан на языке JavaScript и распространяется под лицензией BSD.
Screwdriver позволяет организовать непрерывный выпуск обновлений продукта, интервал между которыми минимален, проводя сопутствующее тестирование и сборку, гарантирующих сохранение стабильности после внесения каждого изменения. Частые релизы дают возможность разработчикам более оперативно реагировать на потребности пользователей и сохранять постоянно высокий уровень качества продукта. Из особенностей Screwdriver отмечается упрощение цикла подготовки продукта к распространению (все действия по созданию продукта после внесения изменений автоматизированы), оптимизация для поддержания разработки trunk-ветки и возможность простого отката изменений.
Процесс разработки с использованием Screwdriver близок к GitHub: изменения оформляются в виде Pull-запросов, которые перед включением к репозиторий проходят рецензирование, тестирование и проверку сборкой. Платформа Screwdriver развивается уже более 5 лет и изначально создавалась как надстройка над системой непрерывной интеграции Jenkins, но в последствие трансформировалась в обособленный продукт. В Yahoo платформа Screwdriver обеспечивает более 25 тысяч сборок в день в ответ на более 12 тысяч ежедневных коммитов в git.
Из ключевых компонентов Screwdriver отмечаются фронтэнд для организации взаимодействия с пользователем, API для оркестровки операций сборки и движки для организации сборки среза кодовой базы и запуска текстов в изолированных контейнерах или виртуальных машинах, для формирования которых могут использоваться различные инструментарии (Docker Swarm, Kubernetes и т. п.). В ближайшие месяцы дополнительно планируется открыть ряд надстроек, используемых во внутренних проектах Yahoo, таких как механизм сохранения структурированных сборочных данных для дальнейшего использования, встроенные средства накопления метрик, шаблоны для быстрого развертывания и компоненты для анализа сборочных логов.