Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CI/CD UNDER
MICROSCOPE
KIRILLOV ALEXANDER
2016.secon.ru
#secon.ru
22 АПРЕЛЯ 2016
ПЕНЗА
СЕГОДНЯ Я НЕ БУДУ…
рассказывать зачем тестировать проекты
доказывать что тесты нужны
объяснять что такое CI/CD
нудеть про ...
РОЛЬ CI/CD В СОВРЕМЕННОЙ
РАЗРАБОТКЕ ПО
КАКОЙ ВЫБРАТЬ?
SELF HOSTED
нужно больше машин…
… и они у меня есть
у меня очень секретный проект
>.<
SAAS
очень просто начать
не нужно настраивать
если что-то сломается, вам починят
нагрузки? Да, мы держим!
А ЧТО ВНУТРИ?
ЭТО ДОЛЖНО БЫТЬ У ВСЕХ
Распределенная архитектура
Возможность конфигурирования проекта
Поддержка различных языков и окруже...
JENKINS
наверное, самый популярный
Hudson (привет, Oracle)
АРХИТЕКТУРА (ОСНОВНЫЕ ЧАСТИ)
АРХИТЕКТУРА (MASTER/SLAVE)
ВОЗМОЖНОСТИ
можно запустить практически все что угодно
легко(?) масштабируется
обширная экосистема модулей (> 1000)
заточе...
ОГРАНИЧЕНИЯ
запуск на платформе хоста (но не все потеряно)
установка зависимостей
версионирование пакетов
Конфигурация чер...
СКРИНШОТ
TEAMCITY
АРХИТЕКТУРА
Build server
Agents
…кое-кто запускает в контейнерах :troll
ОСОБЕННОСТИ
Настраивается через графический интерфейс
Поддерживает шаблоны для создания проектов
Платформо- и языконезавис...
СКРИНШОТ
TRAVISCI
АРХИТЕКТУРА
АРХИТЕКТУРА (ПО-КОМПОНЕНТНО)
ОСОБЕННОСТИ
один из наиболее активных сервисов
повернулись в сторону контейнеров
мультиплатформенность (mac включен!)
free...
КОНФИГУРАЦИЯ
language: ruby
rvm:
- 1.9.2
- jruby-18mode
- jruby-19mode
- jruby-head
jdk:
- openjdk6
- openjdk7
- oraclejdk...
СКРИНШОТ
VEXOR.IO
АРХИТЕКТУРА
Все есть контейнеры
Web, BuildServer
Workers [1..N]
Logger
RabbitMQ
BaseImage - множество уже готовых сервисов
ОСОБЕННОСТИ
Поддержка языков и фреймворков
Параллелизм тасков
Поминутная оплата
Поддержка конфигов .travis.yml
Debug with ...
СКРИНШОТ
CIRCLECI
АРХИТЕКТУРА
Docker
… кто-ж нам расскажет? ;)
ОСОБЕННОСТИ
Запуск в контейнерах
Предустановка своих пакетов
Параллелизм тасков
Debug with ssh (!)
Можно тестировать iOS и...
СКРИНШОТ
DRONE.IO
АРХИТЕКТУРА
монолитный (единый бинарник, привет Golang)
RemoteDrivers (Bitbucket, GitHub, GitLab, Gogs)
Базы данных (основ...
ВОЗМОЖНОСТИ
практически не требует настройки
не зависит от окружения
"взлетает" везде где есть Docker
расширяется дополнен...
КОНФИГУРАЦИЯ
YAML
хранится внутри проекта
расширяется дополнениями
build:
image: golang
commands:
- go get
- go build
- go...
КОНФИГУРАЦИЯ (ПОСЛОЖНЕЕ)
cache:
mount:
- /drone/.ivy
build:
image: 1science/sbt:0.13.8-oracle-jre-8
commands:
- sbt clean ...
СКРИНШОТ
PIPELINES PROCESSING
ConcourseCi
Go.CD
GO.CD
АРХИТЕКТУРА
ВОЗМОЖНОСТИ
СКРИНШОТ
КАКОЙ МНЕ ВЫБРАТЬ?
НЕБОЛЬШОЙ ВЕБ-САЙТ
Пара разработчиков, мануальное тестирование
Монолитный проект, нераспределенный
Нечастые релизы/деплои ...
МОЛОДОЙ СТАРТАП
Сформировавшаяся команда с разеделением задач
Часто меняющаяся архитектура (языки/фреймворки/
технологии)
...
КРУПНЫЙ И АМБИЦИОЗНЫЙ СТАРТАП
Профессиональная команда
Сформировавшиеся требования к языкам и
технологиям проекта
Многоком...
ГОСЗАКАЗ (… А ВДРУГ?!)
Подобранная под проект команда специалистов
Жесткие требования к безопасности проекта
Внутренняя ин...
ВОПРОСЫ
Upcoming SlideShare
Loading in …5
×

SECON'2016. Кириллов Александр, Continuous Integration под микроскопом

193 views

Published on

Что такое непрерывная интеграция, какие проблемы решают эти сервисы, как оно все устроено внутри и причем тут контейнеры.

Published in: Technology
  • Login to see the comments

  • Be the first to like this

SECON'2016. Кириллов Александр, Continuous Integration под микроскопом

  1. 1. CI/CD UNDER MICROSCOPE KIRILLOV ALEXANDER 2016.secon.ru #secon.ru 22 АПРЕЛЯ 2016 ПЕНЗА
  2. 2. СЕГОДНЯ Я НЕ БУДУ… рассказывать зачем тестировать проекты доказывать что тесты нужны объяснять что такое CI/CD нудеть про Docker и какой он крутой … но про контейнеры будет много
  3. 3. РОЛЬ CI/CD В СОВРЕМЕННОЙ РАЗРАБОТКЕ ПО
  4. 4. КАКОЙ ВЫБРАТЬ?
  5. 5. SELF HOSTED нужно больше машин… … и они у меня есть у меня очень секретный проект >.<
  6. 6. SAAS очень просто начать не нужно настраивать если что-то сломается, вам починят нагрузки? Да, мы держим!
  7. 7. А ЧТО ВНУТРИ?
  8. 8. ЭТО ДОЛЖНО БЫТЬ У ВСЕХ Распределенная архитектура Возможность конфигурирования проекта Поддержка различных языков и окружений Интеграции (нотификации, источники данных) Управление зависимостями (пакеты, сервисы, дополнения) Кэширование артефактов
  9. 9. JENKINS наверное, самый популярный Hudson (привет, Oracle)
  10. 10. АРХИТЕКТУРА (ОСНОВНЫЕ ЧАСТИ)
  11. 11. АРХИТЕКТУРА (MASTER/SLAVE)
  12. 12. ВОЗМОЖНОСТИ можно запустить практически все что угодно легко(?) масштабируется обширная экосистема модулей (> 1000) заточен под enterprise $0, opensource
  13. 13. ОГРАНИЧЕНИЯ запуск на платформе хоста (но не все потеряно) установка зависимостей версионирование пакетов Конфигурация через GUI
  14. 14. СКРИНШОТ
  15. 15. TEAMCITY
  16. 16. АРХИТЕКТУРА Build server Agents …кое-кто запускает в контейнерах :troll
  17. 17. ОСОБЕННОСТИ Настраивается через графический интерфейс Поддерживает шаблоны для создания проектов Платформо- и языконезависимые агенты Можно устанавливать виновных >.< Интеграция с различными IDE … и еще много интеграций и плагинов 20 builds, 3 agent - free различные лицензии (от $299)
  18. 18. СКРИНШОТ
  19. 19. TRAVISCI
  20. 20. АРХИТЕКТУРА
  21. 21. АРХИТЕКТУРА (ПО-КОМПОНЕНТНО)
  22. 22. ОСОБЕННОСТИ один из наиболее активных сервисов повернулись в сторону контейнеров мультиплатформенность (mac включен!) free, $129 Startup (2cc job)
  23. 23. КОНФИГУРАЦИЯ 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
  24. 24. СКРИНШОТ
  25. 25. VEXOR.IO
  26. 26. АРХИТЕКТУРА Все есть контейнеры Web, BuildServer Workers [1..N] Logger RabbitMQ BaseImage - множество уже готовых сервисов
  27. 27. ОСОБЕННОСТИ Поддержка языков и фреймворков Параллелизм тасков Поминутная оплата Поддержка конфигов .travis.yml Debug with ssh (!) 100 mins free, $0.015 per minute
  28. 28. СКРИНШОТ
  29. 29. CIRCLECI
  30. 30. АРХИТЕКТУРА Docker … кто-ж нам расскажет? ;)
  31. 31. ОСОБЕННОСТИ Запуск в контейнерах Предустановка своих пакетов Параллелизм тасков Debug with ssh (!) Можно тестировать iOS и OSX проекты 1 free container, $50 per container
  32. 32. СКРИНШОТ
  33. 33. DRONE.IO
  34. 34. АРХИТЕКТУРА монолитный (единый бинарник, привет Golang) RemoteDrivers (Bitbucket, GitHub, GitLab, Gogs) Базы данных (основная тройка) Окружение тестов: контейнеры
  35. 35. ВОЗМОЖНОСТИ практически не требует настройки не зависит от окружения "взлетает" везде где есть Docker расширяется дополнениями free, $25 Started (5 private repos)
  36. 36. КОНФИГУРАЦИЯ YAML хранится внутри проекта расширяется дополнениями build: image: golang commands: - go get - go build - go test
  37. 37. КОНФИГУРАЦИЯ (ПОСЛОЖНЕЕ) 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: kevin.bacon@mail.com repo: demos/drone-with-scala tag: $$BRANCH
  38. 38. СКРИНШОТ
  39. 39. PIPELINES PROCESSING ConcourseCi Go.CD
  40. 40. GO.CD
  41. 41. АРХИТЕКТУРА
  42. 42. ВОЗМОЖНОСТИ
  43. 43. СКРИНШОТ
  44. 44. КАКОЙ МНЕ ВЫБРАТЬ?
  45. 45. НЕБОЛЬШОЙ ВЕБ-САЙТ Пара разработчиков, мануальное тестирование Монолитный проект, нераспределенный Нечастые релизы/деплои (1-2 раза в месяц) Довольно простой деплой Любой бесплатный или недорогой SaaS
  46. 46. МОЛОДОЙ СТАРТАП Сформировавшаяся команда с разеделением задач Часто меняющаяся архитектура (языки/фреймворки/ технологии) Регулярные деплои Заранее сформированный бюджет, инвестиции Saas с подхоящим планом и набором фич
  47. 47. КРУПНЫЙ И АМБИЦИОЗНЫЙ СТАРТАП Профессиональная команда Сформировавшиеся требования к языкам и технологиям проекта Многокомпонентный проект (мобильные, веб приложения) Распределенная архитектура Много и часто тестируется, деплоится Saas с долгосрочным планом, качественной поддержкой и необходимыми фичами.
  48. 48. ГОСЗАКАЗ (… А ВДРУГ?!) Подобранная под проект команда специалистов Жесткие требования к безопасности проекта Внутренняя инфраструктура Сформированный план релизов Повышенная отвественность за фейл, недоработки. Hosted решения (Jenkins || TeamCity)
  49. 49. ВОПРОСЫ

×