План развития DevOps специалиста без доступа к большим публичным облакам
DevOps это многоплановая роль, компетенции можно развивать по областям знаний в любом порядке.
15 Областей Знаний:
- Разработка и Алгоритмы
- Администрирование Linux
- Проектирование и Архитектура +HighLoad
- Система контроля версий Git
- Балансировка и проксирование
- Массовое конфигурирование с помощью Ansible
- Администрирование баз данных
- Тестирование (QA)
- CI/CD
- Мониторинг и Логирование
- Сетевой стек
- Оркестрация контейнеров и Kubernetes
- Безопасность
- Контейнеризация и Docker
- Agile практики
+ Супер Активность — Траблшутинг
Области работы DevOps
Разработка и Алгоритмы
Описание:
Хорошее владение как минимум одним современным языком программирования:
- Go
- NodeJS
- Python 3
- .Net
- Java
Минимальный вариант — Умение написать telegram чат-бота для помощи администрирования.
Материалы для развития:
- Как решать алгоритмические секции: помощь разработчикам, собеседующимся в Яндекс. Часть 1 — YouTube
- Как решать алгоритмические секции: помощь разработчикам, собеседующимся в Яндекс. Часть 2 — YouTube
- Онлайн-тренажёр «Основы математики для цифровых профессий» от Яндекс Практикум (yandex.ru)
- Создание приложений Python для реальных задач — Training | Microsoft Learn
- Создание первого веб-приложения с помощью React — Training | Microsoft Learn
- Выполните первые шаги с помощью Go — Training | Microsoft Learn
- Бесплатный курс «Основы Go» — обучение для опытных программистов от сервиса Яндекс Практикум (yandex.ru)
- Выполните первые шаги с помощью Vue.js — Training | Microsoft Learn
- Используйте основы Python для разрешения загадок и поиска ответов — Training | Microsoft Learn
- Изучение языка Go: дорожная карта (tproger.ru)
- Development Operations & Site Reliability Engineering — The Go Programming Language
Как себя проверить:
Лучше себя проверить, и попытаться найти пробелы в знаниях. О проверке скилов можно выяснить в комьюнити вашего любимого языка.
Администрирование Linux
Описание:
- Понимать и уметь использовать основные инструменты
- Создавать скрипты на shell
- Управлять работающей системой
- Настраивать локальные хранилища
- Создавать и настраивать файловые системы
- Разворачивать, настраивать и обслуживать системы
- Управлять базовыми настройками сети
- Управлять пользователями и группами
- Управлять безопасностью
- Управлять контейнерами
Материалы для развития:
- Red Hat Enterprise Linux Technical Overview (RH024)
- Начало работы с командной строкой Linux и оболочкой — Training | Microsoft Learn
Как себя проверить:
- Экзамен EX200 — Red Hat Certified System Administrator (RHCSA) или любой аналогичный.
- RED HAT TRAINING Skills assessment
Проектирование и Архитектура +HighLoad
Описание:
- Понимание 12 Факторов проектирования SaaS-приложений
- Монолитная и Микросервисная архитектуры
Материалы для развития:
- The Twelve-Factor App (Русский перевод) (12factor.net)
- Микрослужбы .NET. Архитектура контейнерных приложений .NET | Microsoft Learn
- Стили архитектуры — Azure Application Architecture Guide | Microsoft Learn
- The C4 model for visualising software architecture
- donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. (github.com)
Архитектура приложений:
Как себя проверить:
Какой то регламентированной проверки для 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.
Материалы для развития:
- Общие сведения об управлении версиями с помощью Git — Training | Microsoft Learn
- Git — Book (git-scm.com) На русском
- Изучите Git с помощью Bitbucket Cloud | Atlassian Git Tutorial
- Git for Distributed Software Development (LFD109x) — Linux Foundation — Training
Как себя проверить:
- Экзамен 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
Материалы для развития:
- [O’Reilly eBook] Complete NGINX Cookbook: 2nd Edition for 2022
- Документация самих систем
HTTP:
- Обзор протокола HTTP | MDN (mozilla.org)
- Методы HTTP запросов | MDN (mozilla.org)
- Коды ответа HTTP | MDN (mozilla.org)
Как себя проверить:
Массовое конфигурирование с помощью Ansible
Описание:
- Понимать ключевые компоненты Ansible
- Устанавливать и настраивать Install and configure an ведущую ноду Ansible
- Настраивать ноды управляемые Ansible
- Писать скрипты по задачам администрирования системы
- Создавать Ansible plays and playbooks
- Использовать модули Ansible для задач системного администрирования, которые работают с:
- Работа с ролями
- Использования продвинутой функциональности Ansible
Материалы для развития:
- Ansible для начинающих + практический опыт | stepik.org
- Примеры — Ansible Galaxy
- Ansible Community Documentation
- Ansible Core Documentation
Как себя проверить:
- Экзамен EX294 — Red Hat Certified Engineer (RHCE) или любой аналогичный.
- RED HAT TRAINING Skills assessment
Администрирование баз данных и работа с данными
Описание:
- Понимание различий типов БД (Теорема CAP)
- Знание языка запросов SQL
- Классические SQL
- PostgreSQL
- MySQL
- Microsoft SQL Server - noSQL, колоночные и time series базы данных
- Redis
- MongoDB
- Elasticsearch
- ClickHouse - Форматы Данных
- JSON
- XML
- YAML
Материалы для развития:
- Теорема CAP — Википедия (wikipedia.org)
- Начало работы с запросами с помощью Transact-SQL — Training | Microsoft Learn
- Relational Database Basics | edX
- Introduction to SQL | edX
- NoSQL Database Basics | edX
- Redis Explained — An in-depth tutorial (architecturenotes.co)
- Документация самих DB
- Data Governance, например - Конспект по управлению данными → DAMA DMBOK2 (dataliteracy.ru)
Форматы данных
- Работа с JSON — Изучение веб-разработки | MDN (mozilla.org)
- XML Введение — XML: Extensible Markup Language | MDN (mozilla.org)
- YAML Ain’t Markup Language (YAML™) revision 1.2.2
Как себя проверить:
- Online Courses | MongoDB University
- Тест DBA1–10 : Компания Postgres Professional
- Эксплуатация Arenadata DB: курс от вендора — эксплуатация Greenplum Database”
Тестирование (QA)
Описание:
- Понимание роли тестирования и знание пирамиды тестирования
- Умение автоматизировать уже имеющиеся тестирование (QA)в проектах
- Умение собрать метрики по тестированию из сиcтемы
- Количество пропущенных ошибок в Prod
- Количество ложных срабатываний и стабильность авто-тестов
- Покрытие авто-тестами - Написание Unit-тестов или Smoke тестов и встраивание их в пайплайны
- Тестирование работы API через Postman
- Типы API — REST API, SOAP, gRPC и GraphQL
Материалы для развития:
- Пирамида тестов на практике / Хабр (habr.com)
- What is REST
- gRPC
- GraphQL | A query language for your API
- SOAP — IBM Documentation
- Postman, Capturing HTTP requests | Postman Learning Center
Как себя проверить:
Какой то регламентированной проверки не предполагается, обычно тестировщики с удовольствием делятся обратной связью.
CI/CD
Описание:
Системы CI/CD
Встроенные инструменты
Хранилища Артефактов
Материалы для развития:
- Continuous Integration and Delivery (CI/CD) | edX
- Introduction to Jenkins | edX
- Документация самих систем
Как себя проверить:
- Exam AZ-400: Designing and Implementing
Microsoft DevOps Solutions или любой аналогичный.
Мониторинг и Логирование
Описание:
- Prometheus + Openmetrics + Умение пользоваться PromQL
- Loki / Thanos / VictoriaMetrics / Elastic Stack
- Grafana и создание дашбордов
- Управление инцидентами
Материалы для развития:
- Monitoring and Observability for Application Developers | edX
- Документация самих систем
Как себя проверить:
Сетевой стек
Описание:
- 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
Материалы для развития:
- Сетевая модель OSI — Википедия (wikipedia.org)
- Сети для самых маленьких. Планирование,
- Сети Для Самых Маленьких — YouTube
- Курс Компьютерные сети, Andrey Sozykin — YouTube
Как себя проверить:
- Cisco CCNA
- Huawei HCNA (H12–211 Exam)
- или любой аналогичный.
Оркестрация контейнеров и Kubernetes
Описание:
- Cluster Architecture, Installation & Configuration
- Workloads & Scheduling
- Services & Networking
- Storage
- Service Mesh
- Troubleshooting
Материалы для развития:
- Введение в Kubernetes — Training | Microsoft Learn
- Kubernetes для пользователей | stepik.org
- Introduction to Containers, Kubernetes and OpenShift | edX
- Kubernetes Up and Running | VMware Tanzu
- Introduction to Istio | edX
Как себя проверить:
- Certified Kubernetes Administrator (CKA) Exam | Linux Foundation
- или любой аналогичный
Безопасность
Описание:
- Аутентификация + авторизация
- SSL сертификаты и ассиметричная криптография
- OWASP Top Ten | BSIMM Security Report | CVE Monitor
- Обнаружение уязвимостей с помощью PortSwigger
- Безопасность Контейнеров и Образов Docker
- Использование статических анализаторов Кода
- Хранение и передача чувствительной информации
- Мониторинг и защита окружений
Материалы для развития:
- Network Security — Protocols | edX
- Network Security | edX
- Application Security for Developers | edX
- Cybersecurity Basics | edX
- Minimum Viable Secure Product — Controls (mvsp.dev)
- https://github.com/wurstbrot/DevSecOps-MaturityModel
- 6mile/DevSecOps-Playbook: This is a step-by-step guide to implementing a DevSecOps program for any size organization (github.com)
Как себя проверить:
- Обычно специалисты Sec или Архитекторы помогают DevOps с проверкой знаний
Контейнеризация и Docker
Описание:
- Плюсы и минусы контейнеризации
- Архитекрура Docker и containerd
- Images. Запускаем контейнеры из готовых образов.
- Dockerfile. Создание простейшие образы. Модифицируем существующие.
- Dockerfile. Есть ли разница интерпретируемых и компилируемых языков в рамках Docker. Сборка образа с Java / Go / Python / .Net
- Dockerfile. Multistage — несколько образов из одного Dockerfile. Как создать и для чего это необходимо.
- Dockerfile. Produciton & Staging. Изменение директив в файле.
- Registry — Обеспечиваем хранение образов контейнеров.
- Минимизация объема и времени сборки образа.
- Взаимодействие между несколькими контейнерами.
- Docker compose
- Логирование и IPv6.
Материалы для развития:
- Обзор контейнеров и Docker | Microsoft Learn
- Docker для начинающих + практический опыт | stepik.org
- Introduction to Cloud Computing | edX
- Примеры — docker/awesome-compose: Awesome Docker Compose samples (github.com)
- Docker Documentation | Docker
Как себя проверить:
- Docker Certified Associate (DCA) Exam — Cloud Academy или любой аналогичный
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
Материалы для развития:
Как себя проверить:
> 2610 упражнений и вопросов для DevOps
Критерии попадания в список материалов для изучения
- Бесплатный и Быстрый доступ
- Материал поддерживается и регулярно актуализируется.
- Авторитетный источник
— Вендор решения и/или лидер отрасли
— Большое количество цитирований материала в сообществе DevOps
— Большое количество звезд на GitHub - По возможности — русский язык.
Общие материалы для подготовки.
YouTube
- ADV-IT | YouTube chanel
- TechWorld with Nana
- REBRAIN | YouTube Канал
- DevOps Pro Moscow 2021 | Conference Talks
- DevOpsConf 2021 — YouTube
Бесплатные Книги и Материалы:
- Google — Site Reliability Engineering (sre.google) 3 Книги по SRE от Google
- Designing Distributed Systems E-Book | Microsoft Azure
- Микрослужбы .NET. Архитектура контейнерных приложений .NET | Microsoft Learn
- Analyst Reports, E-Books, and White Papers | Microsoft Azure
- E-book Collection Page | Red Hat Developer
Авторитетные платформы обучения и сертификации:
- Certification Catalog — Linux Foundation — Training
- edX Courses | View all online courses on edX.org
- Microsoft Certifications | Microsoft Learn / Обучение | Microsoft Learn
- Coursera | Online Courses & Credentials From Top Educators
Платные Русскоязычные курсы
- Rebrain | Практикум DevOps (rebrainme.com)
- Инструменты и практики для DevOps-инженеров в Яндекс Практикуме (yandex.ru)
Подготовка DevOps (SRE) у лидеров рынка
Визуализации и Roadmap для DevOps
- DevOps Roadmap: Learn to become a DevOps Engineer or SRE
- MichaelCade/90DaysOfDevOps: (github.com)
- milanm/DevOps-Roadmap: DevOps Roadmap for 2022. with learning resources (github.com)
- Каноническая модель DevOps