План развития DevOps специалиста без доступа к большим публичным облакам

Michael Sokolov
8 min readOct 19, 2022

--

Путь DevOps

DevOps это многоплановая роль, компетенции можно развивать по областям знаний в любом порядке.

15 Областей Знаний:

  • Разработка и Алгоритмы
  • Администрирование Linux
  • Проектирование и Архитектура +HighLoad
  • Система контроля версий Git
  • Балансировка и проксирование
  • Массовое конфигурирование с помощью Ansible
  • Администрирование баз данных
  • Тестирование (QA)
  • CI/CD
  • Мониторинг и Логирование
  • Сетевой стек
  • Оркестрация контейнеров и Kubernetes
  • Безопасность
  • Контейнеризация и Docker
  • Agile практики

+ Супер Активность — Траблшутинг

Области работы DevOps

Цель DevOps: Безопасно сократить время поставки Ценности конечному пользователю.

Разработка и Алгоритмы

Описание:

Хорошее владение как минимум одним современным языком программирования:

  • Go
  • NodeJS
  • Python 3
  • .Net
  • Java

Минимальный вариант — Умение написать telegram чат-бота для помощи администрирования.

Материалы для развития:

Как себя проверить:

Лучше себя проверить, и попытаться найти пробелы в знаниях. О проверке скилов можно выяснить в комьюнити вашего любимого языка.

Администрирование Linux

Описание:

  • Понимать и уметь использовать основные инструменты
  • Создавать скрипты на shell
  • Управлять работающей системой
  • Настраивать локальные хранилища
  • Создавать и настраивать файловые системы
  • Разворачивать, настраивать и обслуживать системы
  • Управлять базовыми настройками сети
  • Управлять пользователями и группами
  • Управлять безопасностью
  • Управлять контейнерами

Материалы для развития:

Как себя проверить:

Проектирование и Архитектура +HighLoad

Описание:

  • Понимание 12 Факторов проектирования SaaS-приложений
  • Монолитная и Микросервисная архитектуры

Материалы для развития:

Архитектура приложений:

Как себя проверить:

Какой то регламентированной проверки для DevOps не предполагается

Система контроля версий Git

Описание:

Умение исходным кодом проекта

  • Создание Git репозитория
  • Переключение между Ветками (branches) и создание новой Ветки
  • Коммит(commit) части изменений
  • Просмотр истории коммитов и дерева через CLI
  • Отмена/удаление коммита
  • До запись новых изменений в последний коммит
  • Публикация изменений в удаленный репозиторий
  • Изменение истории коммитов удаленном Репозитории и последствия такого действия
  • Слияние и Удаление Веток
  • Слияние веток с использованием rebase и squash
    - Перенос всей истории Коммитов в новую ветку
    - Перенос изменений в новую ветку 1 коммитом
  • Разрешение конфликтов слияния
  • Перенос нескольких коммитов (cherry-pick) в другую ветку
  • Откат всего репозитория к заданному коммиту
  • Передача коммитов между нескольких Git репозиториями

Функции на уровне реализации системы контроля версий:

  • Создание и разрешение Пул Реквестов (pull request, PR) в своем репозитории
  • Клонирование (fork) публичных репозиториев
  • Пул Реквест (PR) в чужой Git репозиторий

Организация Работы

  • GitOps
  • Git Glow, GitHub FLow и Магистральная разработка
  • Организация командной работы с помощью Feature Branch Workflow.

Материалы для развития:

Как себя проверить:

  • Экзамен GH-100 GitHub Certified Practitioner Exam
    или любой аналогичный

Балансировка и проксирование

Описание:

  • Решения:
    - Nginx
    - HAProxy
  • Virtual Hosts,
  • Locations,
  • URL Rewrite,
  • Letsencrypt,
  • Basic Auth, TLS Auth,
  • Modules (GeoIP),
  • Reverse Proxy,
  • Upstream Check,
  • If/map,
  • CORS,
  • Monitoring

Материалы для развития:

HTTP:

Как себя проверить:

Массовое конфигурирование с помощью Ansible

Описание:

  • Понимать ключевые компоненты Ansible
  • Устанавливать и настраивать Install and configure an ведущую ноду Ansible
  • Настраивать ноды управляемые Ansible
  • Писать скрипты по задачам администрирования системы
  • Создавать Ansible plays and playbooks
  • Использовать модули Ansible для задач системного администрирования, которые работают с:
  • Работа с ролями
  • Использования продвинутой функциональности Ansible

Материалы для развития:

Как себя проверить:

Администрирование баз данных и работа с данными

Описание:

  • Понимание различий типов БД (Теорема CAP)
  • Знание языка запросов SQL
  • Классические SQL
    - PostgreSQL
    - MySQL
    - Microsoft SQL Server
  • noSQL, колоночные и time series базы данных
    - Redis
    - MongoDB
    - Elasticsearch
    - ClickHouse
  • Форматы Данных
    - JSON
    - XML
    - YAML

Материалы для развития:

Форматы данных

Как себя проверить:

Тестирование (QA)

Описание:

  • Понимание роли тестирования и знание пирамиды тестирования
  • Умение автоматизировать уже имеющиеся тестирование (QA)в проектах
  • Умение собрать метрики по тестированию из сиcтемы
    - Количество пропущенных ошибок в Prod
    - Количество ложных срабатываний и стабильность авто-тестов
    - Покрытие авто-тестами
  • Написание Unit-тестов или Smoke тестов и встраивание их в пайплайны
  • Тестирование работы API через Postman
  • Типы API — REST API, SOAP, gRPC и GraphQL

Материалы для развития:

Как себя проверить:

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

CI/CD

Описание:

Системы CI/CD

Встроенные инструменты

Хранилища Артефактов

Материалы для развития:

Как себя проверить:

  • Exam AZ-400: Designing and Implementing
    Microsoft DevOps Solutions или любой аналогичный.

Мониторинг и Логирование

Описание:

Материалы для развития:

Как себя проверить:

Сетевой стек

Описание:

  • Network Basics
  • Basic Protocols (ICMP, ARP, FTP, TELNET)
  • IPv4 Addressing / IPv6 Addressing
  • TCP and UDP
  • VLANs
  • Spanning Tree (STP,RSTP)
  • Link Aggregation
  • Routing Basics
  • RIP Overview
  • OSPF Overview
  • WAN
  • GRE and IPSec VPN
  • DHCP
  • NAT
  • SNMP
  • Access Lists
  • Basic Router Security
  • AAA

Материалы для развития:

Как себя проверить:

  • Cisco CCNA
  • Huawei HCNA (H12–211 Exam)
  • или любой аналогичный.

Оркестрация контейнеров и Kubernetes

Описание:

  • Cluster Architecture, Installation & Configuration
  • Workloads & Scheduling
  • Services & Networking
  • Storage
  • Service Mesh
  • Troubleshooting

Материалы для развития:

Как себя проверить:

Безопасность

Описание:

  • Аутентификация + авторизация
  • SSL сертификаты и ассиметричная криптография
  • OWASP Top Ten | BSIMM Security Report | CVE Monitor
  • Обнаружение уязвимостей с помощью PortSwigger
  • Безопасность Контейнеров и Образов Docker
  • Использование статических анализаторов Кода
  • Хранение и передача чувствительной информации
  • Мониторинг и защита окружений

Материалы для развития:

Как себя проверить:

  • Обычно специалисты Sec или Архитекторы помогают DevOps с проверкой знаний

Контейнеризация и Docker

Описание:

  • Плюсы и минусы контейнеризации
  • Архитекрура Docker и containerd
  • Images. Запускаем контейнеры из готовых образов.
  • Dockerfile. Создание простейшие образы. Модифицируем существующие.
  • Dockerfile. Есть ли разница интерпретируемых и компилируемых языков в рамках Docker. Сборка образа с Java / Go / Python / .Net
  • Dockerfile. Multistage — несколько образов из одного Dockerfile. Как создать и для чего это необходимо.
  • Dockerfile. Produciton & Staging. Изменение директив в файле.
  • Registry — Обеспечиваем хранение образов контейнеров.
  • Минимизация объема и времени сборки образа.
  • Взаимодействие между несколькими контейнерами.
  • Docker compose
  • Логирование и IPv6.

Материалы для развития:

Как себя проверить:

Agile практики

Описание:

  • Что такое Agile и где применяется?
  • The Scrum Framework
  • Что такое Kanban-метод
  • Working within a Scrum Team
  • Definition of Done
  • Backlog management practices and slicing features
  • Code quality and Technical Debt
  • Agile architecture practices
  • Test Driven Development
  • Pair Programming
  • Agile Testing and other practices to ensure quality
  • Using DevOps with Scrum
  • Jira / Confluence

Материалы для развития:

Как себя проверить:

Критерии попадания в список материалов для изучения

  • Бесплатный и Быстрый доступ
  • Материал поддерживается и регулярно актуализируется.
  • Авторитетный источник
    — Вендор решения и/или лидер отрасли
    — Большое количество цитирований материала в сообществе DevOps
    — Большое количество звезд на GitHub
  • По возможности — русский язык.

Общие материалы для подготовки.

YouTube

Бесплатные Книги и Материалы:

Авторитетные платформы обучения и сертификации:

Платные Русскоязычные курсы

Подготовка DevOps (SRE) у лидеров рынка

Визуализации и Roadmap для DevOps

Каноническая модель DevOps (источник не пока нашел)

--

--