/DevOps

Репозиторий курс DevOps (АРЭ ПО)

Primary LanguagePython

DevOps

Учебное пособие по дисциплине "Автоматизация разработки и эксплуатации ПО" (АРЭ ПО).

Лекции

Видеозаписи лекций:

Презентации:

Дополнительные ссылки:

Экзамен

Практические занятия

Занятие 1 (Лаб 1). Настройка виртуальной машины Linux

Автор: Михаил Кучеренко

Задачи:

  • Знакомство с Ubuntu 20.04.
  • Поставить docker, через bash, сетевые интерфейсы.

Занятие 2 (РК 1). Практические навыки работы с Docker - контейнер с PostgreSQL

Авторы: Михаил Кучеренко + Алексей Якубов

Задачи:

  • Первая половина:
    • Работа с PostgreSQL/MySQL
    • Docker Volume
  • Вторая половина:
    • Php My Admin/Adminer во втором контейнере

Занятие 3 (Лаб 2). Балансировка + docker-compose

Автор: Антон Балашов

Задачи:

  • Первая половина:
    • HTML страничка
    • Балансировщик nginx (HAProxy)
  • Вторая половина:
    • веб-сервис с БД

Итог 4 взаимосвязанных контейнера в docker-compose:

  1. субд postgresql, проверяем как работают volumes
  2. микросервис-1, только отдает html страничку
  3. микросервис-2, обращатеся в БД, сетевое взаимодействие
  4. балансировщик (haproxy/nginx) с port-forwarding-ом, будет перенаправлять запросы на другие контейнеры

Занятие 4 (ДЗ 1). Настройка CI/CD в GitLab

Автор: Дмитрий Аладин

Задачи:

  • Первая половина:
    • Создание репозитория GitLab/GitHub
    • Управление репозиторием с помощью команд git
  • Вторая половина:
    • Добавление в репозиторий проекта с юнит-тестами
    • Настройка Pipeline в GitLab/GitHub:
      • Проверка качества кода
      • Активация юнит-тестов
      • Сборка проекта в бинарник и публикация в артефакты Releases
    • Настройка Runner-ов
    • Активация настроенных Pipeline

Занятие 5 (Лаб 3). Мониторинг: Prometehus + Grafana + Alertmanager

Автор: Михаил Кучеренко

Задачи:

  • Установили Prometheus + Grafana + Alertmanager.
  • Настроили мониторинг, написали конфиги.
  • Если плохо - использовать готовый образ

Занятие 6 (ДЗ 2). Ansible, Playbook

Автор: Антон Балашов

Задачи:

  • Создаем виртуалку поменьше чтобы мониторить из первой виртуалки
  • Пишем playbook, который автоматизирует развертывание виртуалки
  • В конце выключаем 2 имеющихся виртуалки

Занятие 7 (Лаб 4). Развертывание кластера Kubernetes

Автор: Алексей Якубов

Задачи:

  • minikube - 8 RAM достаточно. Из коробки не заработает. Для тех, у кого мощные машины - у большинства, дадим в кластере
  • В отдельной виртуалке кубер. Много манифестов написать

Итог - все контейнеры поднять в кубере и замониторить

Занятие 8 (РК 2). Индивидуальное задание

Автор: Алексей Якубов

Задачи:

  • Развернуть свой проект из 5 лабораторной курса РИП в контейнеры Docker Compose: Django + ORM + таблица в MySQL (без AJAX, SPA и React)

Задание на +1 балл

По вашей дипломной работе необходимо создать контейнеры Docker Compose, без Kubernetes. Например: React, Django REST или что-то свое.

Практикум в BASIS

По ДЗ BASIS от Ростелеком: Helm, и тд - только для сертификата Ростелекома

Полезные ссылки

  1. Открытая вечерняя школа. Kubernetes для разработчиков (Осень 2021)
  2. Микрослужбы .NET: Архитектура контейнерных приложений .NET
  3. Обсуждение книги Мартина Клеппмана "Designing Data-Intensive Applications" в формате подкастов Tinkoff Reader Club "Code of Architecture"