Pipelines/Pipeline efficiency
Быстрые пайплайны экономят время разработчиков и деньги
Identify bottlenecks and common failures
Простейшие индикаторы неэффективности пайплайнов - время работы джоб, стейджей и самих пайплайнов
Общее время пайплайна зависит от количества стейджей и джоб, зависимостей между джобами
Также на скорость влияют раннеры
Их доступность, их ресурсы, installation time, размер образа (docker), сетевые задержки
Pipeline analysis
Анализ пайплайнов может помочь вычислить финансовые утечки
Например раннер который запущен в облаке на слишком мощной мащине - оплачивается ресурсов больше чему нужно
Или наоборот недостаток ресурсов делает пайплайн медленным
Можно смотреть на DAG визуализацию и вычислять блокеры
Можно мониторить пайплайны прометеем через апи)))
Можно мониторить раннеры (cpu, network, memory и все такое)
можно проанализировать storage usage, артефакты, expire_in конфиги этих артифактов (пайплайны генерят данные, им нужно их куда-то складывать, поэтому место на раннере важно), container registry usage, package registry usage
Можно быстрее фейлиться, например использовать линтеры и прочее чтобы на этих быстрых джобах отсекать заведомо нерабочие пайплайны (из-за проблем с синтаксисом или еще чем-то легко проверяемым, пайплайн может зависнуть на долгое время, а благодаря линтерам подобные проблемы мы увидим на первых этапах работы пайплайна)
Можно использовать кэширование, если зависимые джобы делают мало изменений то можно использовать кэш (например тянуть node_modules из джобы в джобу а не выкачивать каждый раз) cache
Скачивание и инициализация имаджей может также занимать время, поэтому круто анализировать размеры имаджей, сеть по которой они доставляются, если используется клауд то круто использовать облачный registry
Круто билдить мелкие образы на мелкие задачи, а не большие образы на комплексные задачи
Билдить мелкие образы это отдельное искусство, гугли отдельно
No Comments