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

Путь DevOps

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

  • Разработка и Алгоритмы
  • Администрирование 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
  • По возможности — русский язык.

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

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

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

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

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

--

--

Delivery management & DevOps Consultant https://sokolov.im

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store