DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)OnticoHighLoad++ 2017
Зал «Пекин+Шанхай», 7 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/2907.html
Конкуренция в банковском сегменте усиливается с каждым годом, повышаются ставки и цели по прибыли компаний. При прочих равных выигрывает тот, кто может быстрее разрабатывать продукты и мгновенно реагировать на потребности рынка. Банки рассматривают DevOps-трансформацию как средство, которое позволит им кардинально повысить финансовую эффективность, качество финансовых продуктов и поможет услышать и быстро реагировать на клиента.
...
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)OnticoHighLoad++ 2017
Зал «Мумбай», 7 ноября, 10:00
Тезисы:
http://www.highload.ru/2017/abstracts/2899.html
На каждой конференции мы слушаем интереснейшие доклады про CI/CD, service discovery, docker, kubernetes и т.д. Практически все эти доклады рассказывают нам о "разработческой" стороне проблемы: как собрать образ контейнера, быстро его протестировать и задеплоить, как контейнеры друг о друге узнают, как добавится новый upstream в конфиг nginx и т.д.
Но никто нам не рассказал, как потом с этим "облачным" счастьем жить (тем более под нагрузкой).
...
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыOleg NenashevРассказ о Configuration as Code в Jenkins и возможностях Pipeline: DSL, Multi-Branch, Pipeline Model Definition, восстановление после ошибок, параллелизация задач, интеграции. В каком направлении развивается экосистема?
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)OnticoПотребность в отстроенном процессе Continuous Delivery встает перед каждым развивающимся highload-проектом. Чем больше серверов и составных приложений, чем выше динамика релизов, тем раньше проект сталкивается с данной потребностью, и тем острее она стоит.
Многие команды эксплуатации смогли отстроить этот процесс, некоторые добились впечатляющих результатов, а некоторые — потерпели неудачу. Но все из них знают, что их процесс можно улучшить: сделать быстрее, надежнее, предсказуемее и удобнее.
В этом докладе я хочу обобщить и систематизировать лучшие практики построения процесса Continuous Delivery с использованием актуальных Open Source технологий (Docker, Chef, Gitlab, Kubernetes), а также обозначить известные проблемы и потенциальные пути их решения.
Будет предпринята попытка однозначно ответить на следующие практические вопросы:
- Почему пора всем переходить на Docker? Как лучше собирать Docker-образы? Как лучше доставлять и хранить Docker-образы?
- Как правильно построить процесс разработки Infrastructure as Code (IaC)?
- Как оптимально интегрировать автоматическое и ручное тестирование в процесс Continuous Delivery?
- Как перестать бояться регулярных выкатов новых версий и сделать этот процесс надежным?
- Почему Continuous Delivery не заканчивается релизом новой версии и зачем нужен Kubernetes?
Docker + Selenium Webdriver в рамках Continuous IntegrationSQALabДоклад Антанаса Мачярниса на конференции SQA Days-18, 27-28 ноября 2015 г., Москва
www.sqadays.com
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовSQALabДоклад Вадима Зубовича на конференции SQA Days-18, 27-28 ноября 2015 г., Москва
www.sqadays.com
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)OnticoHighLoad++ 2017
Зал «Пекин+Шанхай», 7 ноября, 14:00
Тезисы:
http://www.highload.ru/2017/abstracts/3073.html
Весь этот год мы в компании «Флант» активно переводили на Kubernetes проекты заказчиков, сильно различающихся как по масштабам, так и по технологиям. На данный момент (сентябрь 2017) у нас в Kubernetes (в production) функционируют 13 проектов, в состав которых входят более 130 различных приложений, написанных на 8 языках программирования: .NET, Erlang, Go, Java, Node.js, PHP, Python и Ruby. В этих проектах задействовано множество инфраструктурных компонентов, таких как Cassandra, Ceph, Firebird, Memcached, MongoDB, MySQL, NATS.io, NGINX, PostgreSQL, RabbitMQ, Redis, RethinkDB, Sphinx, SQLite и других. Мы поделимся обширным опытом, полученным в результате выстраивания CI/CD для таких приложений.
...
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days1. Обзор Windows Docker (кратко)
2. Как мы построили систему билда приложений в Docker (Visual Studio\Mongo\Posgresql\etc)
3. Примеры Dockerfile (выложенные на github)
4. Отличия процессов DockerWindows от DockerLinux (Долгий билд, баги, remote-регистр.)
Maven 3 : уличная магияAleksey SolntsevПолной автоматизацией процесса сборки приложения уже никого не удивишь. Не в последнюю очередь благодаря Maven – системе управления жизненным циклом проекта. Однако проекты растут очень быстро: увеличивается количество модулей, тестов, зависимостей, используемых плагинов. И всего лишь за год легковесный проект, на сборку которого уходило 5 минут, превращается в монстра, который пожирает время разработчиков 30-минутной сборкой. Чтобы справится с этой проблемой разработчикам приходится постоянно чистить свой код и бороться со скоростью выполнения тестов. Это верное решение, но не следует забывать о том, что и сам процесс сборки можно улучшить. В этом докладе будет рассмотрено, как при помощи простых и нехитрых шагов можно оптимизировать работу с зависимостями и обогатить скрипты сборки полезными плагинами. Также будут обсуждаться тонкости конфигурации основных плагинов и особенности работы с командной строкой, которые появились в последней версии Maven.
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days1. Проблемы в построении CI процессов в компании
2. Структура типовой сборки
3. Пример реализации типовой сборки
4. Плюсы и минусы от использования типовой сборки
DevOps guide for awesome quality assuranceАнастасия АсееваThe practical story telling how Devops changed the culture of quality in the Bank. Recently Devops became mainstream topic. But only few people have a deep understanding how to apply it to the process of software quality assurance. Some believe that the Devops kills manual testing.
I will talk about changes it makes to the role of QA engineers themself. The discussion main point is NOT about tools or technologies. It’s NOT about the “silver bullet” for your problems with the quality of products.
Instead, I will show you an integrated approach which we used for quality assurance. It allowed us to significantly reduce the cost of finding and fixing defects. This approach has also accelerated the development and delivery value to our customers and made the whole process more transparent and predictable.
Проникновение в Docker с примерамиДмитрий Столяров- Краткая вводная про Docker (namespaces, cgroups и как Docker все это использует)
- Как заходить в Docker из вашего софта?
- Примеры: pam_docker и php_fpm_docker
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...corehard_byВ докладе обсуждаются способы улучшения времени сборки C++ проектов, опыт полученный в ходе ускорения сборки клиента и тулов World Of Tanks. Также описывается эффект, который они оказывают на организацию кодобазы (как позитивный, так и негативный) и затраты, которые необходимы для поддержки этих решений, т.к. не все они бесплатны. Методики, описываемые в докладе: ускорение линковки (Incremental Linking, Fastlink), ускорение компиляции(Include what you use, использование precompiled headers).
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY Параллелизация тестов, а именно: лучший пхп тулл для автоматизации (Codeception); основы Docker контейнирезации; robo - что это и зачем он нам нужен; profit
Jenkins 2.0: Организуем тестирование в составе Continuous DeliverySQALabДоклад Олега Ненашева на конференции SQA Days-19, 20-21 мая 2016 г., Санкт-Петербург
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)OnticoПотребность в отстроенном процессе Continuous Delivery встает перед каждым развивающимся highload-проектом. Чем больше серверов и составных приложений, чем выше динамика релизов, тем раньше проект сталкивается с данной потребностью, и тем острее она стоит.
Многие команды эксплуатации смогли отстроить этот процесс, некоторые добились впечатляющих результатов, а некоторые — потерпели неудачу. Но все из них знают, что их процесс можно улучшить: сделать быстрее, надежнее, предсказуемее и удобнее.
В этом докладе я хочу обобщить и систематизировать лучшие практики построения процесса Continuous Delivery с использованием актуальных Open Source технологий (Docker, Chef, Gitlab, Kubernetes), а также обозначить известные проблемы и потенциальные пути их решения.
Будет предпринята попытка однозначно ответить на следующие практические вопросы:
- Почему пора всем переходить на Docker? Как лучше собирать Docker-образы? Как лучше доставлять и хранить Docker-образы?
- Как правильно построить процесс разработки Infrastructure as Code (IaC)?
- Как оптимально интегрировать автоматическое и ручное тестирование в процесс Continuous Delivery?
- Как перестать бояться регулярных выкатов новых версий и сделать этот процесс надежным?
- Почему Continuous Delivery не заканчивается релизом новой версии и зачем нужен Kubernetes?
Docker + Selenium Webdriver в рамках Continuous IntegrationSQALabДоклад Антанаса Мачярниса на конференции SQA Days-18, 27-28 ноября 2015 г., Москва
www.sqadays.com
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовSQALabДоклад Вадима Зубовича на конференции SQA Days-18, 27-28 ноября 2015 г., Москва
www.sqadays.com
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)OnticoHighLoad++ 2017
Зал «Пекин+Шанхай», 7 ноября, 14:00
Тезисы:
http://www.highload.ru/2017/abstracts/3073.html
Весь этот год мы в компании «Флант» активно переводили на Kubernetes проекты заказчиков, сильно различающихся как по масштабам, так и по технологиям. На данный момент (сентябрь 2017) у нас в Kubernetes (в production) функционируют 13 проектов, в состав которых входят более 130 различных приложений, написанных на 8 языках программирования: .NET, Erlang, Go, Java, Node.js, PHP, Python и Ruby. В этих проектах задействовано множество инфраструктурных компонентов, таких как Cassandra, Ceph, Firebird, Memcached, MongoDB, MySQL, NATS.io, NGINX, PostgreSQL, RabbitMQ, Redis, RethinkDB, Sphinx, SQLite и других. Мы поделимся обширным опытом, полученным в результате выстраивания CI/CD для таких приложений.
...
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days1. Обзор Windows Docker (кратко)
2. Как мы построили систему билда приложений в Docker (Visual Studio\Mongo\Posgresql\etc)
3. Примеры Dockerfile (выложенные на github)
4. Отличия процессов DockerWindows от DockerLinux (Долгий билд, баги, remote-регистр.)
Maven 3 : уличная магияAleksey SolntsevПолной автоматизацией процесса сборки приложения уже никого не удивишь. Не в последнюю очередь благодаря Maven – системе управления жизненным циклом проекта. Однако проекты растут очень быстро: увеличивается количество модулей, тестов, зависимостей, используемых плагинов. И всего лишь за год легковесный проект, на сборку которого уходило 5 минут, превращается в монстра, который пожирает время разработчиков 30-минутной сборкой. Чтобы справится с этой проблемой разработчикам приходится постоянно чистить свой код и бороться со скоростью выполнения тестов. Это верное решение, но не следует забывать о том, что и сам процесс сборки можно улучшить. В этом докладе будет рассмотрено, как при помощи простых и нехитрых шагов можно оптимизировать работу с зависимостями и обогатить скрипты сборки полезными плагинами. Также будут обсуждаться тонкости конфигурации основных плагинов и особенности работы с командной строкой, которые появились в последней версии Maven.
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days1. Проблемы в построении CI процессов в компании
2. Структура типовой сборки
3. Пример реализации типовой сборки
4. Плюсы и минусы от использования типовой сборки
DevOps guide for awesome quality assuranceАнастасия АсееваThe practical story telling how Devops changed the culture of quality in the Bank. Recently Devops became mainstream topic. But only few people have a deep understanding how to apply it to the process of software quality assurance. Some believe that the Devops kills manual testing.
I will talk about changes it makes to the role of QA engineers themself. The discussion main point is NOT about tools or technologies. It’s NOT about the “silver bullet” for your problems with the quality of products.
Instead, I will show you an integrated approach which we used for quality assurance. It allowed us to significantly reduce the cost of finding and fixing defects. This approach has also accelerated the development and delivery value to our customers and made the whole process more transparent and predictable.
Проникновение в Docker с примерамиДмитрий Столяров- Краткая вводная про Docker (namespaces, cgroups и как Docker все это использует)
- Как заходить в Docker из вашего софта?
- Примеры: pam_docker и php_fpm_docker
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...corehard_byВ докладе обсуждаются способы улучшения времени сборки C++ проектов, опыт полученный в ходе ускорения сборки клиента и тулов World Of Tanks. Также описывается эффект, который они оказывают на организацию кодобазы (как позитивный, так и негативный) и затраты, которые необходимы для поддержки этих решений, т.к. не все они бесплатны. Методики, описываемые в докладе: ускорение линковки (Incremental Linking, Fastlink), ускорение компиляции(Include what you use, использование precompiled headers).
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY Параллелизация тестов, а именно: лучший пхп тулл для автоматизации (Codeception); основы Docker контейнирезации; robo - что это и зачем он нам нужен; profit
Jenkins 2.0: Организуем тестирование в составе Continuous DeliverySQALabДоклад Олега Ненашева на конференции SQA Days-19, 20-21 мая 2016 г., Санкт-Петербург
Zero Downtime PHP Deployment with Envoyer And ForgeYehor HerasymchukThis is a presentation for conference RIT++
Zero Downtime Deployment of our Laravel Apps with Envoyer
And Easy management of servers with Forge
Марина Широчкина - ТестированиеYandexТестирование — это способ узнать о разнообразных проблемах, которые могут возникнуть во время разработки вашего проекта. В лекции рассмотрены различные виды тестирования и различные практики, которые позволят вам узнавать о проблемах заранее.
Добиваемся эффективности каждого из 9000+ UI-тестовSQALabДоклад Максима Сахарова на SQA Days-22. 17-18 ноября 2017. Санкт-Петербург, Россия
www.sqadays.com
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALabДоклад Алексея Анисимова на SQA Days-22. 17-18 ноября 2017. Санкт-Петербург, Россия
www.sqadays.com
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»FDConfДоклад о том, зачем нужен CI, как он интегрируется в процесс разработки. В докладе есть небольшое демо о весьма известном cloud-based CI сервисе Travis-CI. В процессе демо будет «поломан» билд и затем сразу же починен. Весьма показательно в том плане, что это доказывает простоту всей технологии.
Лучшие практики на практикеDenis TuchinВидео: http://www.youtube.com/watch?v=vz0U3jQpHSM
Это обзор опыта применения лучших практик разработки программного обеспечения на разных проектах от госзаказов до видеоконференций в командах от 5 до 50 человек. В докладе будут описаны не только практики, но и то, как они применяются на реальных проектах и какие выгоды они действительно приносят.
DevOps и системы управления конфигурацией. SECON 2015Ivan EvtukhovichЧто такое DevOps, зачем он нужен, что включается в это понятие. Что такое Continuous Delivery, системы управления конфигурацией, сравнение Chef и Ansible.
Лев Валкин — Программируем функциональноDaria OreshkinaThe document discusses functional programming (FP) languages and provides recommendations for learning FP. It begins by introducing the author and his background in FP. It then discusses mature FP options like Haskell, Clojure, Erlang and compares their type systems. The document provides examples of FP concepts in Haskell like algebraic data types and mapping over trees. It discusses benefits of Haskell, OCaml, Lisp dialects and Erlang and recommends them for different purposes. Finally, it shares FP learning resources and plugs the author's FP journal.
3. План
доклада
•į Неудачные
истории
из
жизни
•į Принципы
непрерывной
поставки
ПО
•į Управление
конфигурацией
•į Непрерывная
интеграция
•į Тестирование
6. Сломавшийся
сервер
1. Плановая
перезагрузка
2. Сервер
не
подымается
3. В
23
часа
начинаем
перенос
4. В
4
утра
он
все
еще
идет
5. Утром
с
10
продолжаем
7. Что
там
было?
1. 10-‐15
скриптов
в
cron
2. у
каждого
скрипта
свой
набор
ключей
3. 2
ключевых
сервиса
4. все
настройки
умерли
вместе
с
сервером
9. •į Десятки
и
сотни
единиц
оборудования
•į Процесс
первоначальной
настройки:
– Загружаемся
с
диска
– Переставляем
диск
с
образом
– Записываем
– Правим
3
параметра
в
системе
•į Сколько
раз
я
ошибся
в
IP-‐адресах?
•į Сколько
это
занимало
времени?
•į И
это
только
настройка
OS
10. Ошибки
в
конфигурации
•į MySQL
5.0
на
produc$on,
5.1
на
stage
•į php
без
модуля
и
вызов
@funcname
•į database
pool
size
в
многопоточном
приложении
•į Array.count
в
Ruby
1.8.7
(development)
и
1.8.6
(produc$on)
•į Патчи
для
Ruby
во
FreeBSD
и
Hpricot
11. И
еще…
•į Патч
в
gem
$dy,
который
делали
руками
•į Размер
блока
в
md-‐устройстве
•į PostgreSQL
мастер
на
Linux,
слейв
–
FreeBSD
•į Выкатка
через
chef/capistrano
•į Версии
PostgreSQL
9.0
–
на
stage,
9.1
в
бою
14. Принципы
•į Создать
повторяемый
и
надежный
процесс
поставки
ПО
•į Автоматизировать
все,
что
можно
•į Хранить
все
в
системе
контроля
версий
•į Совершенствоваться
через
повторения
•į Получать
раннюю
обратную
связь
15. продолжение…
•į Встроенный
контроль
качества
•į Выполнено,
значит
зарелизилось
•į Каждый
отвечает
за
процесс
поставки
ПО
•į Непрерывные
улучшения
16. Преимущества
•į Понижение
стресса
•į Уменьшение
ошибок
•į Помощь
команде
•į Гибкость
выкатки
17. Сколько
времени
нужно,
чтобы
строчка
кода
попала
в
релиз?
Сколько
времени
вам
надо,
чтобы
развернуть
ваше
приложение?
26. •į OS
(версия,
образ)
•į Список
установленных
пакетов
(с
версиями)
•į Настройки
системы
•į Библиотеки
приложения
27. Образ
системы
•į Kiwi
h•p://opensuse.github.com/kiwi/
•į Cobbler
h•p://cobbler.github.com/
•į Spacewalk
h•p://spacewalk.redhat.com/
28. Пакеты
OBS
-‐
Open
Build
Service
h•ps://build.opensuse.org/
29. Системы
управления
конфигурацией
•į Chef
h•p://www.opscode.com/chef/
•į Puppet
h•ps://puppetlabs.com/puppet/puppet-‐open-‐
source/
•į CFEngine
•į Salt
30. Функции
•į Устанавливать
нужные
пакеты
•į Следить
за
файлами
конфигурации
•į Запускать
и
перезапускать
сервисы
•į Интеграция
компонет
37. При
каждом
изменении:
•į проект
забирается
из
СКВ
•į проект
собирается
•į прогоняются
тесты
•į проходит
выкатка
на
тестовый
стенд
(?)
•į рассылаются
оповещения
42. •į создайте
хорошее
покрытие
автоматическими
тестами
•į сохраняйте
время
сборки
и
выполнения
тестов
небольшим
•į не
вносите
изменений,
когда
сборка
сломана
•į прогоняйте
тесты
локально
перед
внесением
изменений
43. •į подождите
прохождения
тестов,
а
потом
продолжайте
работу
•į не
уходите
домой,
если
сборка
сломана
•į будьте
готовы
откатить
изменения
•į не
комментируйте
сломавшиеся
тесты
•į берите
на
себя
ответственность
за
свои
изменения
•į пишите
тесты
перед
кодом
(TDD)