49
CI/CD UNDER MICROSCOPE KIRILLOV ALEXANDER

Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

Embed Size (px)

Citation preview

Page 1: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

CI/CD UNDERMICROSCOPE

KIRILLOV ALEXANDER

Page 2: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

СЕГОДНЯ Я НЕ БУДУ…рассказывать зачем тестировать проектыдоказывать что тесты нужныобъяснять что такое CI/CDнудеть про Docker и какой он крутой… но про контейнеры будет много

Page 3: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

РОЛЬ CI/CD В СОВРЕМЕННОЙРАЗРАБОТКЕ ПО

Page 4: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

КАКОЙ ВЫБРАТЬ?

Page 5: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

SELF HOSTEDнужно больше машин…… и они у меня естьу меня очень секретный проект>.<

Page 6: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

SAASочень просто начатьне нужно настраиватьесли что-то сломается, вам починятнагрузки? Да, мы держим!

Page 7: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

А ЧТО ВНУТРИ?

Page 8: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

ЭТО ДОЛЖНО БЫТЬ У ВСЕХРаспределенная архитектураВозможность конфигурирования проектаПоддержка различных языков и окруженийИнтеграции (нотификации, источники данных)Управление зависимостями (пакеты, сервисы,дополнения)Кэширование артефактов

Page 9: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

JENKINSнаверное, самый популярныйHudson (привет, Oracle)

Page 10: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

АРХИТЕКТУРА (ОСНОВНЫЕ ЧАСТИ)

Page 11: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

АРХИТЕКТУРА (MASTER/SLAVE)

Page 12: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

ВОЗМОЖНОСТИможно запустить практически все что угоднолегко(?) масштабируетсяобширная экосистема модулей (> 1000)заточен под enterprise

$0, opensource

Page 13: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

ОГРАНИЧЕНИЯзапуск на платформе хоста (но не все потеряно)установка зависимостейверсионирование пакетовКонфигурация через GUI

Page 14: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

СКРИНШОТ

Page 15: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

TEAMCITY

Page 16: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

АРХИТЕКТУРАBuild serverAgents…кое-кто запускает в контейнерах :troll

Page 17: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

ОСОБЕННОСТИНастраивается через графический интерфейсПоддерживает шаблоны для создания проектовПлатформо- и языконезависимые агентыМожно устанавливать виновных >.<Интеграция с различными IDE… и еще много интеграций и плагинов

20 builds, 3 agent - freeразличные лицензии (от $299)

Page 18: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

СКРИНШОТ

Page 19: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

TRAVISCI

Page 20: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

АРХИТЕКТУРА

Page 21: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

АРХИТЕКТУРА (ПО-КОМПОНЕНТНО)

Page 22: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

ОСОБЕННОСТИодин из наиболее активных сервисовповернулись в сторону контейнеровмультиплатформенность (mac включен!)

free, $129 Startup (2cc job)

Page 23: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

КОНФИГУРАЦИЯlanguage: ruby rvm: - 1.9.2 - jruby-18mode - jruby-19mode - jruby-head jdk: - openjdk6 - openjdk7 - oraclejdk7 matrix: exclude: - rvm: 1.9.2 jdk: openjdk6 - rvm: 1.9.2 jdk: openjdk7 - rvm: 1.9.2

Page 24: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

СКРИНШОТ

Page 25: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

VEXOR.IO

Page 26: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

АРХИТЕКТУРАВсе есть контейнерыWeb, BuildServerWorkers [1..N]LoggerRabbitMQBaseImage - множество уже готовых сервисов

Page 27: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

ОСОБЕННОСТИПоддержка языков и фреймворковПараллелизм тасковПоминутная оплатаПоддержка конфигов .travis.ymlDebug with ssh (!)

100 mins free, $0.015 per minute

Page 28: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

СКРИНШОТ

Page 29: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

CIRCLECI

Page 30: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

АРХИТЕКТУРАDocker… кто-ж нам расскажет? ;)

Page 31: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

ОСОБЕННОСТИЗапуск в контейнерахПредустановка своих пакетовПараллелизм тасковDebug with ssh (!)Можно тестировать iOS и OSX проекты

1 free container, $50 per container

Page 32: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

СКРИНШОТ

Page 33: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

DRONE.IO

Page 34: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

АРХИТЕКТУРАмонолитный (единый бинарник, привет Golang)RemoteDrivers (Bitbucket, GitHub, GitLab, Gogs)Базы данных (основная тройка)Окружение тестов: контейнеры

Page 35: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

ВОЗМОЖНОСТИпрактически не требует настройкине зависит от окружения"взлетает" везде где есть Dockerрасширяется дополнениями

free, $25 Started (5 private repos)

Page 36: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

КОНФИГУРАЦИЯYAMLхранится внутри проектарасширяется дополнениями

build: image: golang commands: - go get - go build - go test

Page 37: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

КОНФИГУРАЦИЯ (ПОСЛОЖНЕЕ)cache: mount: - /drone/.ivy

build: image: 1science/sbt:0.13.8-oracle-jre-8 commands: - sbt clean test assembly -Dsbt.ivy.home=/drone/.ivy

publish: docker: username: kevinbacon password: pa55word email: [email protected] repo: demos/drone-with-scala tag: $$BRANCH

Page 38: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

СКРИНШОТ

Page 39: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

PIPELINES PROCESSINGConcourseCiGo.CD

Page 40: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

GO.CD

Page 41: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

АРХИТЕКТУРА

Page 42: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

ВОЗМОЖНОСТИ

Page 43: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

СКРИНШОТ

Page 44: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

КАКОЙ МНЕ ВЫБРАТЬ?

Page 45: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

НЕБОЛЬШОЙ ВЕБ-САЙТПара разработчиков, мануальное тестированиеМонолитный проект, нераспределенныйНечастые релизы/деплои (1-2 раза в месяц)довольно простой деплой

Любой бесплатный или недорогой SaaS

Page 46: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

МОЛОДОЙ СТАРТАПСформировавшаяся команда с разеделением задачЧасто меняющаяся архитектура (языки/фреймворки/технологии)Регулярные деплоиЗаранее сформированный бюджет, инвестиции

Saas с подхоящим планом и набором фич

Page 47: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

КРУПНЫЙ И АМБИЦИОЗНЫЙ СТАРТАППрофессиональная командаСформировавшиеся требования к языкам итехнологиям проектаМногокомпонентный проект (мобильные, вебприложения)Распределенная архитектураМного и часто тестируется, деплоится

Saas с долгосрочным планом, качественнойподдержкой и необходимыми фичами.

Page 48: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

ГОСЗАКАЗ (… А ВДРУГ?!)Подобранная под проект команда специалистовЖесткие требования к безопасности проектаВнутренняя инфраструктураСформированный план релизовПовышенная отвественность за фейл, недоработки.

Hosted решения (Jenkins || TeamCity)

Page 49: Continuous Integration под микроскопом, Александр Кириллов, Evrone, Саратов

ВОПРОСЫ