[OTUS] DevOps: практики и инструменты. Часть 5 из 5.
DevOps решает задачу взаимодействия инженеров между собой с целью помочь им быстрее создавать и обновлять сервисы и приложения. На курсе будут разобраны инструменты для реализации практик инфраструктура как код, непрерывная поставка ПО и непрерывный сбор метрик (мониторинг и логирование).
Необходимое время: 2 лекции в неделю по 2 академических часа и 4 часа на домашнее задание.
Программа:
DevOps. Необходимость меняться. Часть 1.
Спойлер
1.Что такое DevOps и история его развития. Культура, инструменты и практики. Как DevOps меняет жизнь и работу компаний. DevOps профессия. Обзор курса.
ДЗ: Рекомендации литературы для прочтения.
2. Основные компоненты локального окружения для инженеров. Чаты как средство оперативного обмена знаниями и актуальной информации: Slack, HipChat, Rocketchat. Системы контроля версий как инструмент, налаживающий взаимодействие во время разработки и сопровождения кода проекта на примере Git. Системы управления задачами и визуализации рабочего процесса.
ДЗ: настройка рабочего окружения: командный чат, Git, текстовый редактор. Создание локального репозитория. Создания репозитория на GitHub, работа с удаленным репозиторием по SSH. Практические задания по Git.
3. Облачная инфраструктура и как с ней работать. Знакомство с Google Cloud Platform (GCP). Способы управления облачными ресурсами. Практики безопасного удаленного подключения (SSH, Bastion host, VPN).
ДЗ: Создание виртуальной машины в облаке. Настройка firewall и безопасного удаленного подключения к серверу по SSH. Ручной деплой тестового приложения и управление его конфигурацией. Версионирование конфигурации.
4. Base-Service-App модель: разбор уровня Base. Работа с образами ОС в облаке. Знакомство с Packer. Создание и организация репозитория с описанием инфраструктуры.
ДЗ: Создание Infra репозитория. Создание собственного образа ОС в облаке при помощи Packer.
DevOps практики управления инфраструктурой и конфигурацией. Часть 2.
Спойлер
1.Принципы эффективного управление инфраструктурой. DevOps инструменты для управления инфраструктурой. Управление инфраструктурой и работа с облачными ресурсами в виде кода. Знакомство с Terraform.
ДЗ: Развитие Infra репозитория. Создание, изменение и версионирование инфраструктурных компонент с использованием Terraform. Интеграция Terraform и Packer.
2. Работа над инфраструктурой в команде, работа с remote backends. Использование модулей.
ДЗ: Написание модулей для различных инфраструктурных компонент. Работа с remote backend.
3. Продолжение обсуждения Base-Service-App модели: разбор всех уровней. Принципы эффективного управление конфигурацией. DevOps инструменты для управления конфигурацией: Chef, Ansible, Puppet, SaltStack. Знакомство и работа с Ansible.
ДЗ: Создание, изменение и версионирование конфигурации с использованием Ansible. Создание Ansible плейбука для установки тестового приложения. Создание Ansible ролей для деплоя проекта. Интеграция Terraform и Ansible.
Continuous Delivery. Часть 3.
Спойлер
1. Immutable Infrastructure. Введение в Docker: Docker daemon, container, image, Dockerfile, Docker registry. Сетевое взаимодействие Docker контейнеров.
ДЗ. Настройка рабочего окружения для работы с Docker. Сборка image приложения с использование Dockerfile. Запуск контейнеров и создание сети для их взаимодействия. Работа с Docker Hub.
2. Микросервисная архитектура. Работа с данными и stateful приложениями в Docker. Декларативное описание проекта при помощи Docker Compose.
ДЗ: Работа со stateful приложением на примере PostgreSQL. Разработка и запуск проекта с использованием Docker Compose.
3. Технология непрерывной поставки ПО. Основные стадии автоматизированного конвейера поставки. Обзор популярных CI систем: Jenkins, Bamboo, Gitlab CI, TeamCity, Travis CI. Автоматизация сборок и тестирования Docker контейнеров.
ДЗ: Построение CI/CD процесса на GCP, разработка, тестирование и выкатка новой версии контейнеризованного приложения.
Fast Feedback Loop (мониторинг и логирование). Часть 4.
Спойлер
1. Как получать информацию о состоянии проекта для быстрого решения проблем? Что и как мониторить в проекте? Сбор метрик инфраструктуры и бизнес логики приложений, end-user experience мониторинг. Обзор популярных систем мониторинга: Zabbix, Nagios, Prometheus, Sensu. Инструменты визуализации и анализа данных мониторинга.
ДЗ: Установка Prometheus, сбор системных метрик докер хостов. Построение дашбордов с использованием Grafana.
2. Практики внедрения мониторинга. Системы алертинга. Эскалация инцидентов и практика blameless postmortems.
ДЗ: Сбор метрик приложений. Настройка триггеров и алертов в системе мониторинга, интеграция системы мониторинга с командным чатом.
3.Системы логирования и какие проблемы они помогают решить. Централизованная система логирования как сервис внутри компании. Знакомство с популярными системами логирования: Elastic Stack, Graylog.
ДЗ: Установка Elastic Stack, настройка централизованного сбора логов контейнеризованных приложений, визуализация и анализ данных.
Оркестрация. Часть 5.
Спойлер
1. Что такое оркестрация? Преимущества и недостатки популярных оркестраторов. Принципы работы Docker Swarm. Service Discovery. Сетевое взаимодействие в Docker кластере: overlay network, Docker ipvs load balancer.
ДЗ. Развертывание оркестратора Docker Swarm на GCP. Запуск проекта с помощью Docker Swarm и Docker Compose.
2. Введение в Kubernetes, основные компоненты, область применимости.
ДЗ: Создание и настройка Kubernetes кластера. Деплой тестового приложения.
3. Непрерывная поставка с Kubernetes. Интеграция с CI инструментами.
ДЗ: Интеграция Kubernetes с Gitlab CI, настройка сборки, тестирования и деплоя при помощи Gitlab CI
4. Стратегии деплоя, rollback, fail-over, масштабирование.
ДЗ: Применение практик деплоя и rollback в Kubernetes.
5. Подведение итогов обучения
Ссылки на все части:
Скрытое содержимое.
Складчина на 5 часть.
Описание:DevOps решает задачу взаимодействия инженеров между собой с целью помочь им быстрее создавать и обновлять сервисы и приложения. На курсе будут разобраны инструменты для реализации практик инфраструктура как код, непрерывная поставка ПО и непрерывный сбор метрик (мониторинг и логирование).
Необходимое время: 2 лекции в неделю по 2 академических часа и 4 часа на домашнее задание.
Программа:
DevOps. Необходимость меняться. Часть 1.
Спойлер
1.Что такое DevOps и история его развития. Культура, инструменты и практики. Как DevOps меняет жизнь и работу компаний. DevOps профессия. Обзор курса.
ДЗ: Рекомендации литературы для прочтения.
2. Основные компоненты локального окружения для инженеров. Чаты как средство оперативного обмена знаниями и актуальной информации: Slack, HipChat, Rocketchat. Системы контроля версий как инструмент, налаживающий взаимодействие во время разработки и сопровождения кода проекта на примере Git. Системы управления задачами и визуализации рабочего процесса.
ДЗ: настройка рабочего окружения: командный чат, Git, текстовый редактор. Создание локального репозитория. Создания репозитория на GitHub, работа с удаленным репозиторием по SSH. Практические задания по Git.
3. Облачная инфраструктура и как с ней работать. Знакомство с Google Cloud Platform (GCP). Способы управления облачными ресурсами. Практики безопасного удаленного подключения (SSH, Bastion host, VPN).
ДЗ: Создание виртуальной машины в облаке. Настройка firewall и безопасного удаленного подключения к серверу по SSH. Ручной деплой тестового приложения и управление его конфигурацией. Версионирование конфигурации.
4. Base-Service-App модель: разбор уровня Base. Работа с образами ОС в облаке. Знакомство с Packer. Создание и организация репозитория с описанием инфраструктуры.
ДЗ: Создание Infra репозитория. Создание собственного образа ОС в облаке при помощи Packer.
DevOps практики управления инфраструктурой и конфигурацией. Часть 2.
Спойлер
1.Принципы эффективного управление инфраструктурой. DevOps инструменты для управления инфраструктурой. Управление инфраструктурой и работа с облачными ресурсами в виде кода. Знакомство с Terraform.
ДЗ: Развитие Infra репозитория. Создание, изменение и версионирование инфраструктурных компонент с использованием Terraform. Интеграция Terraform и Packer.
2. Работа над инфраструктурой в команде, работа с remote backends. Использование модулей.
ДЗ: Написание модулей для различных инфраструктурных компонент. Работа с remote backend.
3. Продолжение обсуждения Base-Service-App модели: разбор всех уровней. Принципы эффективного управление конфигурацией. DevOps инструменты для управления конфигурацией: Chef, Ansible, Puppet, SaltStack. Знакомство и работа с Ansible.
ДЗ: Создание, изменение и версионирование конфигурации с использованием Ansible. Создание Ansible плейбука для установки тестового приложения. Создание Ansible ролей для деплоя проекта. Интеграция Terraform и Ansible.
Continuous Delivery. Часть 3.
Спойлер
1. Immutable Infrastructure. Введение в Docker: Docker daemon, container, image, Dockerfile, Docker registry. Сетевое взаимодействие Docker контейнеров.
ДЗ. Настройка рабочего окружения для работы с Docker. Сборка image приложения с использование Dockerfile. Запуск контейнеров и создание сети для их взаимодействия. Работа с Docker Hub.
2. Микросервисная архитектура. Работа с данными и stateful приложениями в Docker. Декларативное описание проекта при помощи Docker Compose.
ДЗ: Работа со stateful приложением на примере PostgreSQL. Разработка и запуск проекта с использованием Docker Compose.
3. Технология непрерывной поставки ПО. Основные стадии автоматизированного конвейера поставки. Обзор популярных CI систем: Jenkins, Bamboo, Gitlab CI, TeamCity, Travis CI. Автоматизация сборок и тестирования Docker контейнеров.
ДЗ: Построение CI/CD процесса на GCP, разработка, тестирование и выкатка новой версии контейнеризованного приложения.
Fast Feedback Loop (мониторинг и логирование). Часть 4.
Спойлер
1. Как получать информацию о состоянии проекта для быстрого решения проблем? Что и как мониторить в проекте? Сбор метрик инфраструктуры и бизнес логики приложений, end-user experience мониторинг. Обзор популярных систем мониторинга: Zabbix, Nagios, Prometheus, Sensu. Инструменты визуализации и анализа данных мониторинга.
ДЗ: Установка Prometheus, сбор системных метрик докер хостов. Построение дашбордов с использованием Grafana.
2. Практики внедрения мониторинга. Системы алертинга. Эскалация инцидентов и практика blameless postmortems.
ДЗ: Сбор метрик приложений. Настройка триггеров и алертов в системе мониторинга, интеграция системы мониторинга с командным чатом.
3.Системы логирования и какие проблемы они помогают решить. Централизованная система логирования как сервис внутри компании. Знакомство с популярными системами логирования: Elastic Stack, Graylog.
ДЗ: Установка Elastic Stack, настройка централизованного сбора логов контейнеризованных приложений, визуализация и анализ данных.
Оркестрация. Часть 5.
Спойлер
1. Что такое оркестрация? Преимущества и недостатки популярных оркестраторов. Принципы работы Docker Swarm. Service Discovery. Сетевое взаимодействие в Docker кластере: overlay network, Docker ipvs load balancer.
ДЗ. Развертывание оркестратора Docker Swarm на GCP. Запуск проекта с помощью Docker Swarm и Docker Compose.
2. Введение в Kubernetes, основные компоненты, область применимости.
ДЗ: Создание и настройка Kubernetes кластера. Деплой тестового приложения.
3. Непрерывная поставка с Kubernetes. Интеграция с CI инструментами.
ДЗ: Интеграция Kubernetes с Gitlab CI, настройка сборки, тестирования и деплоя при помощи Gitlab CI
4. Стратегии деплоя, rollback, fail-over, масштабирование.
ДЗ: Применение практик деплоя и rollback в Kubernetes.
5. Подведение итогов обучения
Ссылки на все части:
Скрытое содержимое.
http://otus.ru/lessons/7/