SlideShare a Scribd company logo
Современные подходы
в разработке
инфраструктурного
кода на Puppet
Игорь Курочкин
Экспресс 42
О себе
2
• Scalaxy, Qik, Skype, MS, Express 42
• Инфраструктура как код:
• Chef, Puppet, Ansible, Salt
План
3
• Теория:
• Инфраструктура как код
• Puppet
• Workflow
• Практика и ДЗ
Практика, ДЗ и
слайды
• https://github.com/express42/mc-puppet
Надежные решения для сложной инфраструктуры
4
Теория
Инфраструктура как
код
6
• Ускорение процесса поставки
• Снижение количества ошибок
• Взаимодействие команд
Инструменты
7
Надежные решения для сложной инфраструктуры
8
Puppet
Надежные решения для сложной инфраструктуры
9
• С 2005 года, текущая версия 6
• Puppet Platform:
• Server, Agent, PuppetDB
• Puppet Open Source:
• PDK, Bolt, Beaker, Razor, Container Registry, Puppet DB, Facter
• Puppet Enterprise:
• Delivery, Pipelines, CodeManager
Опрос
Надежные решения для сложной инфраструктуры
10
• Какую версию Puppet используете?
• Кто планирует обновляться?
• Кто использует community модули?
• У кого есть тесты?
• У кого больше 2-х репозиториев?
• И больше 2-х человек коммитят?
Puppet 6
Надежные решения для сложной инфраструктуры
11
• Вышел 18 сентября 2018
• Добавили:
• Pupperware
• New resource API, new type Deffered
• Убрали:
• MCollective, puppet module generate/build
Практики из
разработки
12
• Среда разработки и структура репозиториев
• Политики версионирования и разбиение на
модули
• Управление артефактами и внешние зависимости
• Тестирование и ревью изменений
• CI/CD для инфраструктурного кода
Проблемы с
разработкой
Надежные решения для сложной инфраструктуры
13
• Старые и разные версии инструментов
• Один репозиторий
• Монолитные модули и одна версия
• Только свои модули или старый форки
• Нет тестирования и ручная выкатка
Варианты решений
Надежные решения для сложной инфраструктуры
14
• Документация, best practices, инструкции и регламенты
• Bootstrap скрипты и свои инструменты
• Git Hooks
• Packages (gem, deb, rpm, …)
• Docker
• Development Kit
Варианты решений
Надежные решения для сложной инфраструктуры
15
• Документация, best practices, инструкции и регламенты
• Bootstrap скрипты и свои инструменты
• Git Hooks
• Packages (gem, deb, rpm, …)
• Docker
• Development Kit
Development Kit
• Локальная разработка и тестирование
• Одно окружение для Linux, OS X, Windows
• Набор CLI инструментов и библиотек
• Workflows и best practices
• Интеграция в CI
Надежные решения для сложной инфраструктуры
16
Chef DK
Надежные решения для сложной инфраструктуры
17
Puppet DK
Надежные решения для сложной инфраструктуры
18
Цели
Надежные решения для сложной инфраструктуры
19
• Обучение Community и повышение качества
публичных модулей
• Общие подходы по созданию и тестированию
Puppet кода
• Единый CLI и официальное окружение
разработки
Puppet Development
Kit
Надежные решения для сложной инфраструктуры
20
• Первый коммит - январь 2017
• Сейчас:
• 1000+ коммитов
• 24 релиза
• Текущая версия 1.7.0
Что внутри PDK
Надежные решения для сложной инфраструктуры
21
• Ruby (несколько версий)
• Git
• Puppet (facter, hiera, puppet, …)
• 4 (4.7.x-4.10.x)
• 5 (5.0.x-5.5.x)
• 6*
PDK и Puppet 6
Надежные решения для сложной инфраструктуры
22
• Будет в релизе 1.7.1
• Релиз должен был быть 19 сентября
• Workaround:
• --puppet-dev
• --puppet-version
Что еще в PDK
Надежные решения для сложной инфраструктуры
23
• Утилита pdk
• Шаблоны для модулей, классов, провайдеров, задач, …
• Ссылки на инструменты:
• Линтеры
• Фреймворки для тестирования
• Дополнительные утилиты
• Rake обертки вокруг инструментов
Workflow
Workflow
Надежные решения для сложной инфраструктуры
25
Установка PDK
Надежные решения для сложной инфраструктуры
26
• Пакет для Linux, OS X, Windows
• RPM, DEB, MSI
• Есть в Homebrew
• Модуль для Powershell и VScode плагин
Создание модуля
• pdk new module
• pdk new class
• pdk new defined_type
• pdk new task
• pdk new provider
Надежные решения для сложной инфраструктуры
27
pdk new module
• Имя модуля
• Опции:
• --full-interview
• --skip-interview
• --template-url=<value>
Надежные решения для сложной инфраструктуры
28
Имя модуля
• <АВТОР>-<ИМЯ_МОДУЛЯ>
• express42_puppet_module
• express42-puppet-module
• express42-puppet_module
Надежные решения для сложной инфраструктуры
29
Имя модуля
• <АВТОР>-<ИМЯ_МОДУЛЯ>
• express42_puppet_module
• express42-puppet-module
• express42-puppet_module
Надежные решения для сложной инфраструктуры
30
Имя модуля
• <АВТОР>-<ИМЯ_МОДУЛЯ>
• express42_puppet_module
• express42-puppet-module
• express42-puppet_module
Надежные решения для сложной инфраструктуры
31
Версия
• Semantic Versioning 2.0.0 https://semver.org
• Tom Preston-Werner (GitHub)
• X.X.X:
• MAJOR - несовместимые изменения
• MINOR - новый функционал
• PATCH - исправления
Надежные решения для сложной инфраструктуры
32
Интервью
• Варианты:
• 9 вопросов (--full-interview)
• 4 вопроса (default)
• 0 вопросов (--skip-interview)
• ~/.pdk/cache/answers.json
Надежные решения для сложной инфраструктуры
33
Шаблоны
Надежные решения для сложной инфраструктуры
34
• --template-url=https://github.com/puppetlabs/pdk-
templates
• config_defaults.yml (общий конфиг)
• moduleroot, moduleroot_init (erb шаблоны
конфигов)
• object_templates (шаблоны для pdk new …)
.sync.yml
• Делаем fork от pdk-templates или
• Вносим изменения в .sync.yml в репозитории модуля
• Пример:
• appveyor.yml:
• delete: true
Надежные решения для сложной инфраструктуры
35
Структура модуля
• /examples
• /files
• /manifests
• /spec
• /task
• /templates
Надежные решения для сложной инфраструктуры
36
Структура модуля
• metadata.json
• README.md
• CHANGELOG.md
• Gemfile
• Rakefile
Надежные решения для сложной инфраструктуры
37
Структура модуля
• .fixtures.yml
• .gitattributes
• .gitignore
• .gitlab-ci.yml
• .pdkignore
• .rspec
• .rubocop.yml
• .travis.yml
• .yardopts
• appveyor.yml
Надежные решения для сложной инфраструктуры
38
Gemfile
Надежные решения для сложной инфраструктуры
39
• group :development
• gem puppet-module-posix-dev-rX.X
• metadata-json-lint
• puppet-lint, puppet-syntax
• rubocop
• puppet-blacksmith
• puppet-strings, …
pdk bundle exec
Надежные решения для сложной инфраструктуры
40
• pdk bundle exec puppet
• pdk bundle exec ruby
• pdk bundle exec rubocop
• pdk bundle exec rake
pdk bundle exec rake
Надежные решения для сложной инфраструктуры
41
pdk update
• Когда вышла новая версия PDK
• Когда обновились шаблоны
• Когда обновилась конфигурация в .sync.yml
• Есть --noop и --force опции
• Отчет в update_report.txt
Надежные решения для сложной инфраструктуры
42
metadata.json
"pdk-version": "1.7.0"
"template-url": "file:///opt/puppetlabs/pdk/share/cache/
pdk-templates.git",
“template-ref": “1.7.0-0-g57412ed"
Надежные решения для сложной инфраструктуры
43
pdk convert
• Конвертация старых модулей
• Есть --noop и --force опции
• Diff в convert_report.txt
Надежные решения для сложной инфраструктуры
44
pdk new task
• Bolt + Puppet tasks
• Ad-Hoc:
• Запустить puppet run
• Обновить пакеты
• Перезапустить сервис
Надежные решения для сложной инфраструктуры
45
Workflow
Надежные решения для сложной инфраструктуры
46
pdk validate
• pdk validate --list
• pdk (INFO): Available validators: metadata, puppet, ruby
• pdk validate -a
• pdk validate --puppet-dev
• pdk validate --puppet-version
Надежные решения для сложной инфраструктуры
47
pdk validate
Надежные решения для сложной инфраструктуры
48
pdk validate
• Metadata:
• Metadata-json-lint
• Puppet:
• Puppet Style Guide, puppet-lint, puppet-syntax
• Ruby:
• Rubocop, .rubocop.yml
Надежные решения для сложной инфраструктуры
49
pdk test unit
• Rspec-puppet
• https://github.com/rodjek/rspec-puppet
• Rspec-puppet-facts
• Puppetlabs-spec-helper
Надежные решения для сложной инфраструктуры
50
pdk test unit
Надежные решения для сложной инфраструктуры
51
pdk test unit
Надежные решения для сложной инфраструктуры
52
pdk test unit
Надежные решения для сложной инфраструктуры
53
Workflow
Надежные решения для сложной инфраструктуры
54
Roadmap
Надежные решения для сложной инфраструктуры
55
• Публикация модулей в Forge
• Конфигурация для PDK и утилит
• Валидация EPP, ERB и YAML
• Валидация и тестирования Control репозиториев (r10k)
• Интеграция Puppet-strings
• Diff изменений
Roadmap
Надежные решения для сложной инфраструктуры
56
• pdk new function
• pdk new fact
• pdk new control
• pdk new dependency
• pdk update metadata
Roadmap
Надежные решения для сложной инфраструктуры
57
• https://github.com/puppetlabs/pdk-planning
• https://github.com/puppetlabs/pdk-planning/blob/
master/ROADMAP.md
• https://tickets.puppetlabs.com/projects/PDK/summary
pdk bundle exec rake -T
Надежные решения для сложной инфраструктуры
58
Workflow
Надежные решения для сложной инфраструктуры
59
Workflow
Надежные решения для сложной инфраструктуры
60
Workflow
Надежные решения для сложной инфраструктуры
61
pdk test
acceptance
pdk test acceptance
• Beaker
• rake beaker, rake beaker:sets
• Test Kitchen
Надежные решения для сложной инфраструктуры
62
Beaker
• Официальные инструмент для acceptance/integration тестов
• Поддерживает тестирование в:
• Vagrant, LXC, AWS, GCE, DO, VmWare, Docker, OpenStack
• Beaker DSL vs Rspec/Serverspec
• https://github.com/puppetlabs/beaker
• https://github.com/puppetlabs/beaker-rspec
Надежные решения для сложной инфраструктуры
63
Beaker-rspec
Надежные решения для сложной инфраструктуры
64
Workflow
Надежные решения для сложной инфраструктуры
65
pdk test
acceptance
Workflow
Надежные решения для сложной инфраструктуры
66
pdk test
acceptance
pdk module
bump
pdk module bump
Надежные решения для сложной инфраструктуры
67
• Puppet-blacksmith:
• https://github.com/voxpupuli/puppet-blacksmith
• rake module:bump
• rake module:bump_commit
pdk module bump
Надежные решения для сложной инфраструктуры
68
Workflow
Надежные решения для сложной инфраструктуры
69
pdk test
acceptance
pdk module
bump
Workflow
Надежные решения для сложной инфраструктуры
70
pdk test
acceptance
pdk build
pdk module
bump
pdk build
• ./pkg
• forgeusername-module_name-version.tar.gz
• interview
• cleaning
Надежные решения для сложной инфраструктуры
71
Workflow
Надежные решения для сложной инфраструктуры
72
pdk test
acceptance
pdk build
pdk module
bump
Workflow
Надежные решения для сложной инфраструктуры
73
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk publish
• Puppet-blacksmith:
• rake module:push
• .puppetforge.yml
• metadata.json, README, CHANGELOG, LICENSE
• <10Mb
Надежные решения для сложной инфраструктуры
74
Workflow
Надежные решения для сложной инфраструктуры
75
pdk test
acceptance
pdk build pdk publish
pdk module
bump
Workflow
Надежные решения для сложной инфраструктуры
76
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk release
• clean
• tag
• push
• bump_commit
• build
• publish
Надежные решения для сложной инфраструктуры
77
Workflow
Надежные решения для сложной инфраструктуры
78
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
Workflow
Надежные решения для сложной инфраструктуры
79
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk new
control
pdk new control
• Шаблоны:
• Control repo от Puppet
• https://github.com/puppetlabs/control-repo
• PSICK от Example42
• https://github.com/example42/psick
Надежные решения для сложной инфраструктуры
80
Control repo
Надежные решения для сложной инфраструктуры
81
Puppetfile
Надежные решения для сложной инфраструктуры
82
Workflow
Надежные решения для сложной инфраструктуры
83
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk new
control
Workflow
Надежные решения для сложной инфраструктуры
84
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk new
control
pdk update
control
pdk update control
• Librarian-puppet http://librarian-puppet.com
• librarian-puppet init/install/update/outdated
• Puppetfile.lock
• R10k https://github.com/puppetlabs/r10k
• r10k puppetfile check/install/purge
Надежные решения для сложной инфраструктуры
85
Workflow
Надежные решения для сложной инфраструктуры
86
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk new
control
pdk update
control
Workflow
Надежные решения для сложной инфраструктуры
87
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk new
control
pdk update
control
pdk test
control
pdk test control
• Onceover
• https://github.com/dylanratcliffe/onceover
• Тестирование Roles и Profiles
• Внутри Beaker и Rake таски
• Есть плагины
Надежные решения для сложной инфраструктуры
88
Workflow
Надежные решения для сложной инфраструктуры
89
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk new
control
pdk update
control
pdk test
control
Workflow
Надежные решения для сложной инфраструктуры
90
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk new
control
pdk update
control
pdk test
control
pdk upload
pdk upload
• R10k
• r10k deploy environment
• r10k deploy module
• Code Manager (PE)
Надежные решения для сложной инфраструктуры
91
R10k
Надежные решения для сложной инфраструктуры
92
R10k
Надежные решения для сложной инфраструктуры
93
R10k
Надежные решения для сложной инфраструктуры
94
R10k
Надежные решения для сложной инфраструктуры
95
Workflow
Надежные решения для сложной инфраструктуры
96
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk new
control
pdk update
control
pdk test
control
pdk upload
Workflow
Надежные решения для сложной инфраструктуры
97
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk new
control
pdk update
control
pdk test
control
pdk diffpdk upload
pdk diff
• Octocatalog-diff
• Diff между бранчами
• Не требует Puppet master
Надежные решения для сложной инфраструктуры
98
pdk diff
Надежные решения для сложной инфраструктуры
99
Workflow
Надежные решения для сложной инфраструктуры
100
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk new
control
pdk update
control
pdk test
control
pdk diffpdk upload
Workflow
Надежные решения для сложной инфраструктуры
101
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk diff pdk doc
pdk new
control
pdk update
control
pdk test
control
pdk upload
pdk doc
• CHANGELOG:
• GitHub Changelog Generator
• rake changelog
• Metadata
• Puppet strings
Надежные решения для сложной инфраструктуры
102
Workflow
Надежные решения для сложной инфраструктуры
103
pdk test
acceptance
pdk build pdk publish
pdk module
bump
pdk release
pdk diff pdk doc
pdk new
control
pdk update
control
pdk test
control
pdk upload
Итого
Надежные решения для сложной инфраструктуры
104
Книга
Надежные решения для сложной инфраструктуры
105
Конференция
Надежные решения для сложной инфраструктуры
106
Ссылки
107
• Митапы DevOps Meetup Moscow
• Подкаст и телеграм канал DevOps Deflope
• http://hangops.ru
• Slack
• Рассылка
• Hangouts
Вакансия
108
• Мы ищем людей, которым это интересно
• Пишите на dontpanic@express42.com
Вопросы?
Практика
Практика и ДЗ
• https://github.com/express42/mc-puppet
Надежные решения для сложной инфраструктуры
111
Результат
Надежные решения для сложной инфраструктуры
112

More Related Content

What's hot

Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Ontico
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned
Alexander Syrotenko
 
Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)
aviatakz
 
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
IT Event
 
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
 SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
Oleg Nenashev
 
OTUS Infrastructure as Code
OTUS Infrastructure as CodeOTUS Infrastructure as Code
OTUS Infrastructure as Code
Igor Kurochkin
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
CodeFest
 
Андрей Ситник
Андрей СитникАндрей Ситник
Андрей Ситник
CodeFest
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Ontico
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Nikolay Samokhvalov
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019
Alex Chistyakov
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформуVadim Kruchkov
 
dotnext version of "Tarantool, .net, newsql"
dotnext version of "Tarantool, .net, newsql"dotnext version of "Tarantool, .net, newsql"
dotnext version of "Tarantool, .net, newsql"
Anatoly Popov
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
Ontico
 
presentation_r00t_conf
presentation_r00t_confpresentation_r00t_conf
presentation_r00t_confMax Glekov
 
01 linux-course
01 linux-course01 linux-course
01 linux-course
Vikentsi Lapa
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
Positive Hack Days
 
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Ontico
 
Java Ahead-Of-Time compilation
Java Ahead-Of-Time compilationJava Ahead-Of-Time compilation
Java Ahead-Of-Time compilation
Nikita Lipsky
 

What's hot (20)

Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
 
Continuousdelivery
ContinuousdeliveryContinuousdelivery
Continuousdelivery
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned
 
Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)
 
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
 
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
 SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
 
OTUS Infrastructure as Code
OTUS Infrastructure as CodeOTUS Infrastructure as Code
OTUS Infrastructure as Code
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 
Андрей Ситник
Андрей СитникАндрей Ситник
Андрей Ситник
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформу
 
dotnext version of "Tarantool, .net, newsql"
dotnext version of "Tarantool, .net, newsql"dotnext version of "Tarantool, .net, newsql"
dotnext version of "Tarantool, .net, newsql"
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
 
presentation_r00t_conf
presentation_r00t_confpresentation_r00t_conf
presentation_r00t_conf
 
01 linux-course
01 linux-course01 linux-course
01 linux-course
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
 
Java Ahead-Of-Time compilation
Java Ahead-Of-Time compilationJava Ahead-Of-Time compilation
Java Ahead-Of-Time compilation
 

Similar to Puppet development kit and best practices

Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
Anatoly Popov
 
Workflows в Express 42
Workflows в Express 42Workflows в Express 42
Workflows в Express 42
Igor Kurochkin
 
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
Andrey Kazarinov
 
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
Ivan Evtukhovich
 
Процессы разработки в Яндексе
Процессы разработки в ЯндексеПроцессы разработки в Яндексе
Процессы разработки в Яндексе
Andrey Kazarinov
 
Стачка-2015 Тестируем инфраструктуру как код
Стачка-2015 Тестируем инфраструктуру как кодСтачка-2015 Тестируем инфраструктуру как код
Стачка-2015 Тестируем инфраструктуру как код
Igor Kurochkin
 
Тестируем инфраструктуру как код
Тестируем инфраструктуру как кодТестируем инфраструктуру как код
Тестируем инфраструктуру как код
Express 42
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
MoscowJS
 
Андрей Сибирёв "Ваше собственное облако — война за независимость"
Андрей Сибирёв "Ваше собственное облако — война за независимость"Андрей Сибирёв "Ваше собственное облако — война за независимость"
Андрей Сибирёв "Ваше собственное облако — война за независимость"
Yandex
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
Ontico
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to production
Anton Turetsky
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Ontico
 
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
SPb Jenkins Meetup #5. Jenkins in da Cloud. ВнутренностиSPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
Oleg Nenashev
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Oleg Nenashev
 
Корпоративный Linux: осваиваем с нуля Red Hat Enterprise Linux
Корпоративный Linux: осваиваем с нуля Red Hat Enterprise LinuxКорпоративный Linux: осваиваем с нуля Red Hat Enterprise Linux
Корпоративный Linux: осваиваем с нуля Red Hat Enterprise Linux
SkillFactory
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Badoo Development
 
Советы для начинающих разработчиков PostgreSQL
Советы для начинающих разработчиков PostgreSQL Советы для начинающих разработчиков PostgreSQL
Советы для начинающих разработчиков PostgreSQL
Anastasia Lubennikova
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
Roman Dvornov
 

Similar to Puppet development kit and best practices (20)

Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 
Workflows в Express 42
Workflows в Express 42Workflows в Express 42
Workflows в Express 42
 
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
 
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
 
Процессы разработки в Яндексе
Процессы разработки в ЯндексеПроцессы разработки в Яндексе
Процессы разработки в Яндексе
 
Стачка-2015 Тестируем инфраструктуру как код
Стачка-2015 Тестируем инфраструктуру как кодСтачка-2015 Тестируем инфраструктуру как код
Стачка-2015 Тестируем инфраструктуру как код
 
Тестируем инфраструктуру как код
Тестируем инфраструктуру как кодТестируем инфраструктуру как код
Тестируем инфраструктуру как код
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
 
Андрей Сибирёв "Ваше собственное облако — война за независимость"
Андрей Сибирёв "Ваше собственное облако — война за независимость"Андрей Сибирёв "Ваше собственное облако — война за независимость"
Андрей Сибирёв "Ваше собственное облако — война за независимость"
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to production
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
 
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
SPb Jenkins Meetup #5. Jenkins in da Cloud. ВнутренностиSPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
 
Корпоративный Linux: осваиваем с нуля Red Hat Enterprise Linux
Корпоративный Linux: осваиваем с нуля Red Hat Enterprise LinuxКорпоративный Linux: осваиваем с нуля Red Hat Enterprise Linux
Корпоративный Linux: осваиваем с нуля Red Hat Enterprise Linux
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
 
Советы для начинающих разработчиков PostgreSQL
Советы для начинающих разработчиков PostgreSQL Советы для начинающих разработчиков PostgreSQL
Советы для начинающих разработчиков PostgreSQL
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
 

Puppet development kit and best practices