Зачем нужны DevOps-инженеры?
Инженер DevOps помогает команде делать продукт лучше и стабильнее. С ним новые фичи разрабатываются быстрее за счет сокращения рутины. Всё это профессиональный DevOps делает с помощью автоматизации сборок, настройки комплексного мониторинга и стандартизации решений в команде. В результате процесс разработки становится более предсказуемым, прозрачным и дешёвым для бизнеса. DevOps помогает продукту адаптироваться под растущие нагрузки и изменяющиеся бизнес-требования. Навык построения эффективных highload-систем также входит в компетенции DevOps-инженера.
1. Вводный модуль
Учиться онлайн. Вводный модуль
2. Знакомство с DevOps Engineering
— Обзор DevOps-практик и инструментов. Сравнение с SRE
— Жизненный цикл ПО. Инфраструктура разработки ПО
— Концепция CI/CD, её основные принципы и примеры реализации, кейсы, когда она оправдана и нет
— Методологии разработки ПО: Waterfall, Agile, Scrum, Kanban
— SLA-метрики в DevOps
3. Непрерывная разработка ПО
— Качество кода. Требования к разработке. Обзор best practices
— Продвинутые навыки работы с Git. Работа с репозиториями, их синхронизация, создание резервных копий
— Интеграция репозиториев с внешними системами. Системы сборки приложений: Apache Maven, Gradle
— Контроль за разработкой на этапе отправки кода в репозиторий
— Процессы между разработчиками, тестировщиками и системными администраторами. Инфраструктура для сборки, тестирования и доставки ПО
4. Операционные системы, архитектура и администрирование сетей
— Архитектура операционных систем UNIX (FreeBSD) и Linux (Ubuntu, CentOS, Fedora)
— Основные ОС-концепты: process management, потоки и конкурентность, сокеты, POSIX, сети, I/O management, виртуализация, память/хранение данных, файловая система
— Инструменты для отладки операционной системы и приложений
— Сетевая архитектура. Работа с локальной сетью и протоколами (HTTP/HTTPS, SSH, Ethernet, TCP/UDP)
— Сетевая безопасность. Системы защиты от сетевых угроз
— Прокси-серверы и файрвол
— Права и пользователи. Авторизация, аутентификация
— Безопасность сетей и серверов на примере Nginx
— Командная оболочка Bash и PowerShell: навыки написания скриптов и применения в автоматизации
— Python для автоматизации процессов
5. Виртуализация
— Технологии виртуализации и область их эффективного применения. Вложенная виртуализация. Виртуализация ввода-вывода
— Гипервизоры и виртуализация. Типы гипервизоров: Microsoft Hyper-v, VMware Esxi, Xen, KVM
— Развёртывание и управление виртуальными машинами
— Системы управления виртуализацией
— Контейнеризация. Технология Docker. Работа с Dockerfile и использование DockerCompose
— Основы микросервисной архитектуры. Объединение нескольких контейнеров через виртуальную сеть
6. Администрирование баз данных
— SQL- и noSQL-базы данных, их структура и кейсы эффективного применения
— Администрирование SQL- и noSQL-баз данных
— Установка и настройка кэш-систем. Создание бэкапов
— Работа в поисковой системе ElasticSearch — Кластеризация, шардирование и партиционирование баз данных. Создание отказоустойчивых кластеров баз данных и кэш-систем. Оптимизация БД под потребности разработки
— Шифрование данных
7. Работа с Linux и её оптимизация
— Сетевые сервисы. Почтовые сервисы
— Обеспечение безопасности. Инфраструктура открытых ключей (Public Key Infrastructure)
— Технология виртуальной частной сети на примере openvpn
— Хранение данных в Linux
— Сбор информации о проблемах в инфраструктере
— Отладка системы и сервисов на разных этапах загрузки. Отладка работы приложений
— Профилирование системы. Оптимизация работы Linux и нагрузки на сеть
— Обеспечение высокой доступности
8. Мониторинг системы и логирование
— Системы для мониторинга, задачи, которые решаются с их помощью
— Мониторинг приложений (Jaeger и New Relic) — Организация логирования всех действий приложений. Сбор логов с Docker-контейнеров. Хранение логов в ELK Stack
— Анализ логов. Структурирование неструктурированных логов
— Настройка системы мониторинга (на примере Prometheus). Визуализация (Grafana) и настройка оповещений (Alertmanager)
— Безопасность Prometheus и Grafana при помощи базовой аутентификации в Nginx
— Мониторинг физических и виртуальных машин (на примере Zabbix)
9. Система управления конфигурациями
— IaC: инфраструктура как код, её принципы и подходы
— Конфигурирование серверов. Обзор систем управления конфигурациями
— Настройка удалённого сервера
— Восстановление конфигурации сервера
— Организация автоматизированного процесса поставки, управления конфигурациями
10. Kubernetes
— Инфраструктура как код. Конфигурация как код
— Kubernetes: компоненты, развёртывание кластера на своих серверах, основные команды для работы
— Администрирование кластера Kubernetes. Управление нескольких кластерами с помощью Kubectl
— Развёртывание stateless-приложения с stateful-зависимостями
— Инструменты для написания конфигурационных файлов, поддержка нескольких окружений
— Управление уровнями доступа контейнеров и подов. Хранение и передача паролей приложениям
— Создание секретов, их синхронизация с внешними сервисами
— Сетевая безопасность: SecurityContext
— CI/CD и IaC: настройка процессов непрерывной интеграции и доставки кода
— Трансформация существующей инфраструктуры в IaC
11. Облачная инфраструктура и организация проекта в ней
— Terraform для организации и управления инфраструктурой. Основные провайдеры инструменты и инхаус-решения
— Работа с Terraform: базовый синтаксис, написание собственных решений, remote backend
— Облачные платформы: GCP, AWS, Azure, Heroku. Мультиоблачный деплой
— Создание и управление проектом в облаке: организация сети, вычислительные мощности, оптимизация нагрузки
— Построение IaC в облаке. AWS Developer Services for CI/CD. AWS CloudFormation
— Cisco&Google Cloud Platform. Anthos
— Безопасность для облачных инфраструктур. Средства защиты информации
— Создание образов виртуальных машин в облаке с помощью Packer
12. Архитектура высоконагруженных приложений и микросервисы
— Горизонтальное и вертикальное масштабирование сервисов
— Поиск узких мест в программном обеспечении и "железе"
— Аппаратная и программная балансировка нагрузки. Алгоритмы и методы балансировки на различных уровнях сети
— Ядро Linux: оптимизация высоконагруженных приложений и систем
— Основы Perfomance Engineering
— Высоконагруженные системы Kubernetes. Kubernetes Service Mesh
— Kubernetes Highly Available. Разворачивание отказоустойчивого кластера
— Kubernetes Ingress Controllers
— Деплой по методу Blue-Green — Serverless-архитектура
Мы бесплатно подберем для Вас подходящие курсы.
Подборка курсов на e-mail