33
DevOps и системы управления конфигурацией Иван Евтухович

DevOps и системы управления конфигурацией. SECON 2015

Embed Size (px)

Citation preview

Page 1: DevOps и системы управления конфигурацией. SECON 2015

DevOps и системы управления

конфигурациейИван Евтухович

Page 2: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Page 3: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

План• Что такое DevOps?

• Практики DevOps

• Что такое системы управления конфигурацией

• Chef/Ansible — сходства и различия

Page 4: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

DevOps — это…

• DevOps — это методология в разработке ПО, нацеленная на общение, взаимодействие и интеграцию специалистов по разработке ПО и специалистов в информационных технологиях.

• https://ru.wikipedia.org/wiki/DevOps

Page 5: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Зачем?

• Перебрасывание релиза через стену

• Конфликт между отделами

• Медленный и нестабильный релизный цикл

Page 6: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

CAMS• Культура (Culture)

• Автоматизация (Automation)

• Измерения (Measurement)

• Распространение знаний (Knowledge Sharing)

Page 7: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Автоматизация• инструменты для передачи ценности и смысла, помощь в командной работе

• критерий эффективного использования —больше порядка в системе

• Bash скрипты vs Chef/Ansible

Page 8: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Измерения• графики

• логированное и сбор эксепшенов

• визуализация статистики

• визуализация и аналитика воркфлоу (канбан)

Page 9: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Распространение знаний

• Всевозможные обратные связи

• Смешивание команд

Page 10: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Культура• честность

• открытость

• искренность

Page 11: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Пример про гребцов

Page 12: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

DevOps сисадмин

• Звучит как Agile Java-разработчик

• Релиз-инженер

• Админ, который знает Chef/Puppet

• DevOps отделы

Page 13: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Практики DevOps• Post Mortem

• Админ на стендапах

• Дежурный программист

• Общедоступный мониторинг и логи

• Все знают цели бизнеса

Page 14: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Continuous Delivery

• Непрерывная поставка ПО — это процесс разработки и эксплуатации ПО, при котором каждое изменение может быть выкачено в боевую среду

Page 15: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Page 16: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Page 17: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

CM• Configuration Management System

• Системы управления конфигурацией

• Цель — поддержание всех окружений в максимально идентичном состоянии

• “Инфраструктура как код”

Page 18: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Инфраструктура как код

• Подход, при котором инфраструктура описана в виде кода и хранится в СКВ

• Применимы практики разработчиков:

• ревью

• тестирование

• Контроль: предсказуемость и повторяемость

Page 19: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Популярные CMS• CFEngine

• Puppet

• Chef

• SaltStack

• Ansible

Page 20: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

КартинкаDevOps

Continuous Delivery

Configuration Management

Page 21: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Chef• Mar 6, 2008 – первый комит

• Клиент/серверная модель

• Ruby DSL

• Огромное комьюнити

• Поддержка коммерческой компании

Page 22: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

• Более 2000 открытых кукбуков (supermarket.chef.io)

• Развитый воркфлоу по командной разработке

• Куча инструментов для работы и тестирования

• Поддержка ведущих вендоров (IBM, HP и т.д.)

• Поддержка Windows

Page 23: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Chef-server

developmentdev01 dev02 dev03

testtest01 test02 test03

stagingweb01.stage db01.stage

cache01.stage

productionweb01.prod

…. web25.prod db01.prod db02.prod

cache01.prod …

cache05.prod

Page 24: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

ruby_install ruby_version do action :installend

ruby_set ruby_version do action :set username userend

directory "#{application_directory}/" do owner user group userend

key = Chef::EncryptedDataBagItem.load('deploy-key', 'key')

file "/home/#{user}/.ssh/id_rsa" do content key['private_key'] owner user group user mode '0600'end

%w(libmagickwand-dev libmagickcore-dev libpq-dev imagemagick).each do |pack| package packend

Page 25: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Ansible• Feb 23, 2012 - первый коммит (Michael DeHaan)

• Модель без агента/клиентская модель

• Декларативный язык (Yaml)

• Огромное комьюнити

• Поддержка коммерческой компании

Page 26: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

• Более 2000 открытых ролей (galaxy.ansible.com)

• Проблемы с командной разработкой

• Тестирование не развито

• Нет поддержки ведущих вендоров

• Слабая поддержка Windows

• Встроенная оркестрация

Page 27: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

- name: Load encrypted key include_vars: group_vars/deploy-key.yml

- name: Create content deploy keys template: src=id_rsa_content.j2 dest=/home/{{app_user}}/.ssh/id_rsa_content mode=0600 owner={{app_user}} group={{app_user}}

- name: Create worker deploy keys template: src=id_rsa_worker.j2 dest=/home/{{app_user}}/.ssh/id_rsa_worker mode=0600 owner={{app_user}} group={{app_user}}

- stat: path={{app_dir}} register: worker_dir

- name: Create git.sh template: src=git.sh.j2 dest=/home/{{app_user}}/git.sh owner={{app_user}} mode=0700 group={{app_user}}

- name: Clone worker repo shell: GIT_SSH=/home/{{app_user}}/git.sh git clone [email protected]:uchiru/workers.git {{app_dir}} sudo: no when: worker_dir.stat.exists == False

Page 28: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

DevOps сообщество• devopsru.com

• http://www.meetup.com/DevOps-Moscow-in-Russian

• https://groups.google.com/forum/#!forum/devopsru

• http://hangops.ru

• http://devopsdeflope.ru

Page 29: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Page 30: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Page 31: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Книги• Непрерывное развертывание ПО. Автоматизация процессов сборки, тестирования и внедрения новых версий программ. Джез Хамбл, Давид Фарли

• Проект “Феникс”. Роман о том, как DevOps меняет бизнес к лучшему. Джин Ким и др.

Page 32: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

Ржакаhttp://devopsreactions.tumblr.com

Page 33: DevOps и системы управления конфигурацией. SECON 2015

Надежные решения для сложной инфраструктуры

http://express42.com

+7 499 918 67 34@evtuhovich

[email protected]