DevOps40.ru

Starter for beginners

View the Project on GitHub DevOps40/main_course

main_course

Starter for beginners.

Курс системного администрирования на доступном языке, объясняющий основы методик DevOps и SRE.

Введение

Цель: помочь разобраться в профессии новичкам, имеющим технический бэкграунд и опыт программирования, администрирования и настройки Linux/Unix серверов. Поиск удобных уроков, статей, платных курсов и занятий. Возможность быстрого самостоятельного старта без дополнительных затрат времени и средств. Снижение порога вхождения в профессию.

Дополнить: Что такое DevOps, откуда взялся, какие задачи и цели выполняет. Какие инструменты использует в работе.

Команда DevOps

В идеальном мире разработкой занимается достаточно большая команда, включающая в себя руководителей, которые в то же время являются и разработчиками, наравне с остальной командой.

Архитектура

Устройство серверов-контейнеров позволяющее разрабатывать, тестировать и работать конечному продукту. continuous delivery (CD)/Continuous Integration (CI) - практики, когда команда выкладывает код в репозиторий, из которого код попадает на stage серверы, где разработчик может посмотреть результаты работы, на этом этапе становится понятно, не ломают ли нововведения общую инфраструктуру.

Если все ок - код заливается на тестовые серверы, где уже команда тестировщиков может посмотреть на сколько все хорошо работает и не нарушены ли бизнес-процессы.

Если все ок - код попадает на боевые серверы, доступные клиентам.

Таким образом разработка остается невидимой для конечного пользователя.

Создать пример инфрастуктуры для тестовой развертки.

Сервисная архитектура


Микросервисы


Планирование, взаимодействие

Модели ведения разработки:

Agile - модель взаимодействия между участниками процесса разработки и запуска ПО, заказчиком ПО, нацеленная на быстрое внесение изменений в продукт.

Waterfall - каскадная модель ведения разработки

Инструменты для взаимодействия:

Jira - один из продуктов Atlassian.com, нацеленный на помощь в коммуникациях между участниками процесса разработки. Серия продуктов помогает взаимодействовать всем участникам процесса разработки.

Курсы по продуктам Atlassian

Что нужно знать? Завести аккаунт в Atlassian.com Сообщество пользователей Atlassian (http://t.me/augspb)

Codebase

Устройство репозитория

Версии кода продукта:

Работа с кодом

Что нужно знать?

Создать в каждой системе тестовый проект, попробовать поработать с ветками из консоли

Базы данных

PostgreSQL

Автоматизация

Системы автоматизации развертки серверов - Puppet, Chef, Ansible, Salt

Ansible

Виртуализация

Docker

Устанавливаем Ansible, и используя его устанавливаем докер и настраиваем контейнеры. Если для тренировок используется всего один компьютер - подключите Ansible к локалхосту.

Kubernetes

Развертывание - Deploy

Для развертывания кода, а так же конфигураций используем: Jenkins, Gitlab, bitbucket, etc.

Резервирование

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

Мониторинг

Мониторингу серверов уделяется важная роль во всем. Необходимо собирать и визуализировать метрики.

Обзор программ для мониторинга: https://habr.com/ru/post/331016/

Развертывание хорошей связки: https://eax.me/prometheus-and-grafana/

Вопросы можно задать в специальной группе: https://t.me/metrics_ru

Логирование

Сбор и анализ логов, поиск и индексация Elasticsearch

DevSecOps

Предполагается Опасности, подстерегающие на каждом шагу. Программы содержат небезопасные интерфейсы управления, которые никак не защищены, в процессе настройки и установки важжно проверять все открытые порты, например используя nmap.

LetsEncrypt

Практика

Составление резюме и тестирование навыков собеседования/интервью.