Продолжительность курса: 4 месяца Что вы изучите в рамках курса? Курс поможет разобраться в основных практиках DevOps и получить опыт их применения, чтобы сделать работу команды над проектом более слаженной и быстро выпускать релизы. Кому подойдёт этот курс? Новичкам, которые хотели бы начать работать в команде продуктовой разработки Инженерам по эксплуатации, желающим перейти на роль DevOps-инженера и выполнять более сложные задачи Разработчикам, которые хотят разобраться в механизмах интеграции и доставки кода Что даст вам обучение? Новые знания и навыки Вы повысите собственную компетентность в сфере кибербезопасности Повышение дохода К примеру, при переходе с уровня Junior на уровень Middle ваша з/п может вырасти на 50% и больше Карьерный рост Сможете продвинуться по карьерной лестнице или найти новое место работы Работа в команде Научитесь слаженно и эффективно работать в команде. Вы освоите принципы CI/CD, что ускорит разработку и снизит количество ошибок в приложении. Спойлер: Содержание курса Модуль 1. Основы разработки и DevOps 1. Методологии и фреймворки разработки Жизненный цикл ПО Современные методологии разработки. Agile Фреймворки Kanban и Scrum 2. Основы DevOps История DevOps Проблематика DevOps Методологии и DevOps-культура 3. Основы систем контроля версий. Знакомство с Git Основы систем контроля версий Работа с проектами в Git Архитектура и объекты Git Конфигурация Git Основные команды Git Работа с ветками и слияние Работа с историей в Git Модуль 2. Инфраструктура 4. Работа с ОС Linux Основы работы на Linux Работа с командной строкой Работа с пакетными менеджерами Процессы в Linux Работа с systemd Дисковая подсистема Пользователи и группы Права доступа Linux Мониторинг системы и логи 5. Компьютерные сети Основы компьютерных сетей Модели OSI и TCP/IP Адресация в сети (MAC, IP, DNS) Планирование подсетей Утилиты Linux для работы с сетью 6. Виртуализация Понятие виртуализации Типы виртуализации Популярные гипервизоры Облачные вычисления Модуль 3. Web-серверы и базы данных 7. Web-серверы Понятие web-сервера Работа с Nginx/Apache Обратный прокси-сервер Тестирование производительности web-сервера 8. Безопасность Web-сервера Обзор SSL/TLS Работа с OpenSSL Работа с Let's Encrypt 9. Базы данных Основы баз данных SQL БД NoSQL БД Язык запросов SQL Оптимизация, кэширование, индексация Отказоустойчивость БД: кластеризация, реплики, шардирование Построение отказоустойчивого кластера Модуль 4. Управление конфигурацией и инфраструктурой 10. Bash-скрипты. Часть 1 Понятие Bash-cкриптов Синтаксис Bash и управляющие конструкции Функции Переменные окружения Перенаправления 11. Bash-скрипты. Часть 2 Разработка скриптов Отладка скриптов Оптимизация скриптов Плагины IDE для работы с Bash 12. Системы управления конфигурацией. Знакомство с Ansible Назначение систем управления конфигурацией Основные инструменты управления конфигурацией Введение в Ansible Работа с переменными и окружениями Ansible Работа с секретами Ansible Управление группами задач в Ansible 13. Роли Ansible Ansible роли и коллекции Шаблонизатор Jinja2 Разработка Ansible ролей 14. Infrastructure as Code. Знакомство c Terraform Описание инфраструктуры в виде кода Основы Terraform Перенос существующего окружения в Terraform Управление стейтом и работа в команде в Terraform Рекомендуемые практики Terraform 15. Модули в Terraform Работа с модулями в Terraform Создание образов с помощью Packer Модуль 5. Контейнеризация, микросервисы, оркестрация 16. Контейнеризация Обзор Linux- и Docker-контейнеров Устройство Docker: слои, образы, контейнеры, Docker-файл, Registry. Альтернативы Docker (containerd, Podman, LXC, CRI-O). 17. Работа с в Docker Сборка образов Запуск контейнеров Docker Networks Docker Volumes Инспекция Docker 18. Микросервисы Подходы к организации архитектуры приложения Docker Compose - управление микросервисным приложением 19. Оркестрация контейнеров Для чего нужны системы оркестрации Введение в Kubernetes Архитектура Kubernetes Описание основных способов установки Kubernetes Работа с утилитой kubectl Манифесты Kubernetes 20. Основные сущности Kubernetes Pod Service Deployment ReplicaSet DaemonSet StatefulSet 21. Работа с хранилищем в Kubernetes Ephemeral Volumes Persistent Volumes 22. Горизонтальное и вертикальное масштабирование в Kubernetes Horizontal Pod Autoscaling Vertical Pod Autoscaling 23. Безопасность в Kubernetes Network Policies Service Accounts Role Based Access Control 24. Helm для управлением развертыванием в Kubernetes Основы Helm Применение Helm Charts Разработка Helm Charts Модуль 6. Непрерывная интеграция и непрерывное развертывание 25. Сontinuous Integration Знакомство с CI Сравнение CI систем Установка и настройка Jenkins Сборка проекта с помощью Maven 26. Jenkins Интеграция с системами контроля версий Jenkins pipeline Jenkins multibranch pipeline Реализация параллельного выполнения шагов 27. Измерение качества и статический анализ безопасности кода Настройка SonarQube Добавление в pipeline этапа анализа кода 28. Github Actions Основы GitHub Actions Поиск и настройка Actions Основные функции GitHub Actions Модуль 7. Наблюдение за системой 29. Мониторинг Основы мониторинга и инструментов Метрики, типы метрик GAP стек (Grafana, Alertmanager, Prometheus) Мониторинг инфраструктуры Мониторинг приложения Бизнес-метрики 30. Логирование Основы логирования и инструментов ELK стек (Elasticsearch, Logrotate, Kibana) Анализ логов приложения 31. Распределенный трейсинг Основы трейсинга Работа с Zipkin 32. Дипломный проект Разбор задания на дипломный проект