Это пошаговое руководство о том, как стать инженером DevOps, со ссылками на соответствующие учебные ресурсы.
Если вы хотите узнать больше о DevOps, обязательно подпишитесь на мою рассылку .
Если этот репозиторий окажется для вас полезным, поддержите меня на Patreon:
Цель этой дорожной карты — дать вам представление о ландшафте. Дорожная карта поможет вам, если вы не знаете, что изучать дальше, вместо того, чтобы побуждать вас выбирать то, что модно и модно. Вам следует понять, почему один инструмент лучше подходит для некоторых случаев, чем другой, и помнить, что реклама и модность не всегда означают, что он лучше всего подходит для работы.
Если вам нравится этот проект или вы используете его для изучения или запуска своего решения, поставьте ему звездочку. Спасибо!
Скачать PDF-версию.
Учебные ресурсы для DevOps-инженеров (в основном бесплатно)
1. ГИТ
2. Изучите один язык программирования
3. Изучите Linux и сценарии
4. Изучите сети и безопасность.
5. Изучите управление сервером
6. Изучите контейнеры
7. Изучите оркестровку контейнеров
8. Изучите инфраструктуру как код
9. Изучите CI/CD
10. Изучите мониторинг и наблюдаемость
11. Изучите одного облачного провайдера
12. Изучите практики разработки программного обеспечения.
Дополнительные ресурсы
Инструменты
Книги
Все ваши ресурсы (файлы) будут храниться в репозитории GIT. Эти файлы представляют собой код приложения , а также инфраструктуру как код .
Git — бесплатный инструмент, используемый для управления исходным кодом. Git используется для отслеживания изменений в исходном коде, позволяя нескольким разработчикам совместно работать над нелинейной разработкой.
Две самые популярные платформы Git — это GitLab и GitHub .
Здесь вам необходимо изучить команды Git, такие как git clone, ветку, слияние, а также способы совместной работы над проектом с помощью запросов на включение.
Ресурсы:
Книга Pro Git БЕСПЛАТНО
Изучите Git от Atlassian БЕСПЛАТНО
Изучите ветвление Git БЕСПЛАТНО
Изучите Git и GitHub на CodeAcademy БЕСПЛАТНО
Git Command Explorer БЕСПЛАТНО
Погружение в Git БЕСПЛАТНО
Справочник по Visual Git БЕСПЛАТНО
Инженеру рекомендуется знать хотя бы один язык программирования, который можно использовать для написания сценариев автоматизации .
Некоторые популярные языки программирования для DevOps — Python, Go и JavaScript .
Python — мультипарадигмальный язык. Будучи интерпретируемым языком, код выполняется сразу после его написания, а синтаксис позволяет писать код разными способами. Python часто рекомендуют в качестве первого языка, который должны изучать новые программисты, поскольку он ориентирован на удобочитаемость, последовательность и простоту использования.
Здесь вам необходимо изучить основные понятия языков программирования, такие как синтаксис, if/else, циклы, структуры данных и т. д.
Ресурсы:
Книга «Автоматизируйте скучные вещи с помощью Python» БЕСПЛАТНО
Ускоренный курс Python БЕСПЛАТНО
Учебник по современному JavaScript БЕСПЛАТНО
Ускоренный курс JavaScript для начинающих БЕСПЛАТНО
Eloquent JavaScript, 3-е издание, Марджин Хавербеке БЕСПЛАТНАЯ книга
Перейти по примеру БЕСПЛАТНО
Операционная система служит мостом между пользователем компьютера и его оборудованием. Его функция — предложить настройку, в которой пользователь может удобно и эффективно запускать программы.
Поскольку большинство серверов используют ОС Linux , вам необходимо освоиться с Linux и его интерфейсом командной строки.
Одним из простых в запуске дистрибутивов является Ubuntu .
Кроме того, вам необходимо знать сценарии для автоматизации задач по разработке и эксплуатации.
Здесь вы можете изучить языки, специфичные для ОС, такие как Bash или Powershell , или независимые, такие как Python или Go.
Ресурсы:
Операционная система – Обзор БЕСПЛАТНО
Учебник по написанию сценариев оболочки БЕСПЛАТНО
Учебное пособие по Powershell для начинающих: изучите сценарии Powershell БЕСПЛАТНО
Справочное руководство Bash БЕСПЛАТНО
Полное руководство: начало работы с Ubuntu БЕСПЛАТНО
Руководство по FreeBSD БЕСПЛАТНО
Руководство по командам Linux БЕСПЛАТНО
Сетевой протокол — это установленный набор правил, определяющих, как данные передаются между различными устройствами в одной сети. По сути, это позволяет подключенным устройствам взаимодействовать друг с другом, независимо от каких-либо различий в их внутренних процессах, структуре или конструкции.
Здесь вам нужно будет знать, как работает сеть, как настраивать межсетевые экраны , понимать, как работает DNS , модель OSI , IP-адреса, порты и т. д.
Ресурсы:
Модель OSI объяснена БЕСПЛАТНО
Книга «Компьютерные сети: нисходящий подход» Видео Содержание видео
Курс «Основы TCP/IP и сетевых технологий для ИТ-специалистов» Pluralsight
DevSecOps: Мастер обеспечения безопасности CI/CD | Курс DevOps Pipeline Udemy
Практическая безопасность в DevOps: обеспечьте непрерывную безопасность, развертывание и доставку с помощью книги DevSecOps
Обеспечение безопасности DevOps: безопасность в облачной книге
Управление серверами включает в себя весь мониторинг и обслуживание инфраструктуры, необходимые для надежной работы серверов и оптимального уровня производительности. Основными целями эффективной стратегии управления серверами являются:
Минимизируйте замедление работы сервера и время простоя, обеспечивая при этом максимальную надежность.
Создавайте безопасные серверные среды.
Масштабируйте серверы и связанные с ними операции для удовлетворения потребностей организации с течением времени.
Здесь вам нужно будет знать, что такое прямые и обратные прокси-серверы , серверы кэширования и как работать с веб-серверами , такими как Nginx, Apache или IIS.
Ресурсы:
Что такое обратный прокси? БЕСПЛАТНО
Кэш-сервер БЕСПЛАТНО
Обратный прокси против прямого прокси: различия БЕСПЛАТНО
Что такое балансировка нагрузки? БЕСПЛАТНО
Что такое брандмауэр? БЕСПЛАТНО
Справочник по Nginx БЕСПЛАТНО
Изучите сервер Apache БЕСПЛАТНО
Изучите IIS БЕСПЛАТНО
Контейнер — это стандартная единица программного обеспечения, которая упаковывает код и все его зависимости, поэтому приложение быстро и надежно работает из одной вычислительной среды в другую.
Docker на сегодняшний день является самой популярной контейнерной технологией. Образ контейнера Docker — это легкий автономный исполняемый пакет программного обеспечения, который включает в себя все необходимое для запуска приложения: код, среду выполнения, системные инструменты, системные библиотеки и настройки. Здесь вам нужно знать, как запускать контейнеры, Docker Networking, Volumes, Dockerfiles и запускать несколько контейнеров с помощью Docker-Compose.
Ресурсы:
Что такое контейнеры? БЕСПЛАТНО
Обучение контейнерам снизу вверх БЕСПЛАТНО
Учебное пособие по Docker для начинающих от TechWorld с Nana БЕСПЛАТНО
Docker Mastery: с Kubernetes +Swarm из курса Docker Captain Udemy
Что такое Сервисная сетка? БЕСПЛАТНО
DevOps с Kubernetes БЕСПЛАТНО
Оркестровка контейнеров автоматизирует развертывание, управление, масштабирование и создание сетей контейнеров.
Оркестрацию контейнеров можно использовать в любой среде, где используются контейнеры. Это может помочь вам развернуть одно и то же приложение в разных средах без необходимости его перепроектирования. А микросервисы в контейнерах упрощают оркестрацию сервисов, включая хранилище, сеть и безопасность.
Здесь вам нужно узнать, как работает Kubernetes , и как администрировать кластер Kubernetes и развертывать на нем приложения.
Ресурсы:
Ускоренный курс Kubernetes для абсолютных новичков от TechWorld с Nana БЕСПЛАТНО
Учебник : как появился Kubernetes, что это такое и почему вас это должно волновать
Сертифицированный администратор Kubernetes (CKA) с практическими тестами, курс Udemy
Изучите Kubernetes — от начинающих до продвинутых, курс KodeKloud
Узнайте, когда использовать кластерные службы, Ingress или API-шлюзы БЕСПЛАТНО
Узнайте, какие проблемы решает Service Mesh (используйте абстракцию smi-spec.io БЕСПЛАТНО).
Узнайте, как автоматизировать TLS и DNS БЕСПЛАТНО
Книга «Начнём с работы Kubernetes»
Курс обучения Kubernetes — 50 дней от нуля до героя от Microsoft БЕСПЛАТНО
Иногда называемый IaC , он относится к методам и инструментам, используемым для определения инфраструктуры, обычно на языке разметки, таком как YAML или JSON. Инфраструктура как код позволяет инженерам автоматизировать настройку и демонтаж среды. Ускоряет развертывание и снижает риски за счет предоставления сред «золотой копии» по требованию.
Terraform — самый популярный инструмент подготовки инфраструктуры, но есть и другие, такие как Ansible, Chef, Puppet и Vagrant.
Здесь вам нужно знать, как выполнять предоставление инфраструктуры и управление конфигурацией .
Ресурсы:
Графические интерфейсы, интерфейс командной строки, API: изучите базовые термины «инфраструктура как код» БЕСПЛАТНО
Официальные руководства по Terraform БЕСПЛАТНО
Полное руководство по Terraform БЕСПЛАТНО
Автоматизируйте документацию Terraform как профессионал! БЕСПЛАТНО
Написание многоразовых модулей Terraform БЕСПЛАТНО
Что такое Истио? БЕСПЛАТНО
Обзор куклы БЕСПЛАТНО
Курсы кукольного искусства БЕСПЛАТНЫЕ и ПЛАТНЫЕ
Начало работы с Ansible БЕСПЛАТНО
Изучение основ Ansible
Начните работу с Red Hat Ansible БЕСПЛАТНО и ПЛАТНО
Освоение курса Ansible Udemy
Изучите шеф-повара БЕСПЛАТНО
Непрерывная интеграция/непрерывное развертывание (CI/CD) — это метод частой доставки приложений клиентам путем внедрения автоматизации на этапах разработки приложений. CI/CD — это решение проблем, которые могут возникнуть при интеграции нового кода для команд разработки и эксплуатации.
CI/CD обеспечивает непрерывную автоматизацию и непрерывный мониторинг на протяжении всего жизненного цикла приложений, от этапов интеграции и тестирования до доставки и развертывания. Эти взаимосвязанные практики часто называют « конвейером CI/CD » и поддерживаются группами разработки и эксплуатации.
Существуют разные этапы конвейера CI/CD, такие как сборка, тестирование и развертывание , но в него может быть включено гораздо больше действий:
Проверка кода из системы контроля версий и его сборка
Постановка ворот для разных видов согласований
Управление переменными среды
Перезапуск служб
Выполнение тестов
И еще...
Здесь вам нужно научиться настраивать CI/CD-сервер, автоматически интегрировать код и запускать конвейеры, а также инструменты для сборки и управления пакетами.
Некоторые популярные инструменты CI/CD — Jenkins, TeamCity, CircleCI, Bamboo, GitLab и Azure DevOps.
Ресурсы:
Непрерывная интеграция БЕСПЛАТНО
CI/CD Pipeline: краткое введение БЕСПЛАТНО
Изучите GitLab с помощью учебных пособий БЕСПЛАТНО
Начните работу с GitLab CI/CD БЕСПЛАТНО
Дженкинс, «От нуля до героя: станьте курсом DevOps Jenkins Master Udemy»
Изучите действия GitHub БЕСПЛАТНО
Синтаксис рабочего процесса для GitHub Actions БЕСПЛАТНО
Изучите Azure DevOps БЕСПЛАТНО
Шпаргалки GitLab БЕСПЛАТНО
Мониторинг предполагает наблюдение за всем процессом разработки, начиная с планирования, разработки, интеграции и тестирования, развертывания и эксплуатации. Он включает в себя полное представление в режиме реального времени о состоянии приложений, служб и инфраструктуры в производственной среде.
Это особенно важно, когда наше программное обеспечение находится в разработке и нам необходимо отслеживать всевозможные проблемы в нашей инфраструктуре и приложении.
Двумя наиболее популярными инструментами являются Prometheus и Grafana .
Здесь нужно знать, как настроить мониторинг и визуализировать данные.
Ресурсы:
Что такое наблюдаемость? Комплексное руководство для начинающих БЕСПЛАТНО
Как, почему и что нужно для мониторинга микросервисов БЕСПЛАТНО
DevOps-мониторинг БЕСПЛАТНО
Применение базовых и расширенных методов мониторинга БЕСПЛАТНО
Изучите Прометей БЕСПЛАТНО
Изучите Графану БЕСПЛАТНО
Эластичный стек БЕСПЛАТНО
Поставщики облачных услуг предоставляют уровень API-интерфейсов для абстрагирования инфраструктуры и предоставления ее на основе границ безопасности и выставления счетов. Облако работает на серверах в центрах обработки данных, но абстракции умело создают видимость взаимодействия с одной «платформой» или большим приложением. Возможность быстро предоставлять, настраивать и защищать ресурсы с помощью облачных провайдеров стала ключом как к огромному успеху, так и к сложности современного DevOps.
Самыми популярными поставщиками облачных услуг на рынке являются AWS и Azure , а также Google Cloud .
Здесь нужно знать, как управлять пользователями и администрированием, сетями, виртуальными серверами и т. д.
Ресурсы:
Экзамен AZ-900: Основы Microsoft Azure БЕСПЛАТНО
Сертификационный курс по основам Microsoft Azure (AZ-900) БЕСПЛАТНО
АЗ-900 | Полный курс «Основы Microsoft Azure», бесплатные практические тесты, веб-сайт и учебные пособия БЕСПЛАТНО
Высший сертифицированный специалист по облачным технологиям AWS — 2022 г. Udemy
Программа обучения AWS Developer от Cloud Guru
Как инженер DevOps, вы, вероятно, будете работать в команде с другими разработчиками в мире Agile, например Scrum . Поэтому очень важно знать различные части SDLC , а также инструменты, которые там используются.
Кроме того, было бы полезно узнать, как работает автоматизированное тестирование , так как вам нужно будет настроить его способом CI/CD.
Здесь нужно знать, что такое Scrum , все этапы SDLC , как работает автоматизированное тестирование и т. д.
Ресурсы:
Что такое Скрам? БЕСПЛАТНО
Способы узнать о Scrum БЕСПЛАТНО
Фазы и модели жизненного цикла разработки программного обеспечения (SDLC) БЕСПЛАТНО
Руководство для начинающих по Agile в Jira: описание курса БЕСПЛАТНО
Учитесь БЕЗОПАСНО БЕСПЛАТНО
Изучите автоматизированное тестирование БЕСПЛАТНО
GitLab — Руководство для начинающих по DevOps БЕСПЛАТНО
Распространенные модели SDLC БЕСПЛАТНО
Отслеживание работы :** Asana, Monday, Jira, Trello, Azure Boards.
Контроль исходного кода : Git, Github, GitLab, BitBucket, Azure DevOps.
CI/CD : Jenkins, Team City, Github Actions, Travis CI, Bamboo, Circle CI, Azure Pipelines, Octopus Deploy, Harness, CloudBees CodeShip.
Анализ исходного кода : SonarQube, Veracode.
Управление артефактами : Artifactory, Docker Container Register, npm, Yarn, NuGet.
Управление конфигурациями : Terraform, Ansible, Puppet, Chef.
Оркестровка контейнеров : Docker, Kubernetes, Red Hat OpenShift.
Мониторинг : Прометей, Графана, Splunk, Dynatrace, Kibana.
Справочник DevOps: Как обеспечить гибкость, надежность и безопасность мирового уровня в технологических организациях , Джин Ким, Патрик Дебуа, Джон Уиллис, Джез Хамбл
Книга знакомит с разработкой продуктов, обеспечением качества, ИТ-операциями и информационной безопасностью. Это отличное чтение для тех, кто плохо знаком с DevOps или хочет узнать больше о том, как различные компоненты DevOps работают вместе.
Accelerate: The Science of Lean Software and DevOps: Создание и масштабирование высокопроизводительных технологических организаций , Николь Форсгрен, Джез Хамбл, Джин Ким
В этой книге представлены как результаты, так и научные данные, лежащие в основе измерения производительности доставки программного обеспечения. Это фантастический инструмент для продвижения DevOps среди высшего руководства.
Непрерывная доставка: надежные выпуски программного обеспечения посредством автоматизации сборки, тестирования и развертывания , Джез Хамбл, Дэвид Фарли
Он представляет автоматизированное управление архитектурой и миграцию данных. Многие из концепций конвейера развертывания, которые с тех пор стали стандартными, были изложены в этой книге. Config as Code, автоматизация сборки и развертывания, а также эффективные методы тестирования описаны в некоторых технических подробностях. В основном это техническая книга.
Топологии команд: организация бизнес- и технологических команд для быстрого потока , Мэтью Скелтон, Мануэль Паис
В книге рассказывается о том, как организовать команды таким образом, чтобы обеспечить быструю передачу ценности клиентам. Он предоставляет набор из четырех фундаментальных топологий команд: команды, ориентированные на потоки, команды поддержки, команды сложных подсистем и команды платформы, которые можно комбинировать и адаптировать к различным организационным контекстам.
«Эффективный DevOps: построение культуры сотрудничества, взаимодействия и масштабирования инструментов» , Дженнифер Дэвис, Рин Дэниэлс
В книге представлены эффективные способы улучшения координации в команде. В нем показано, как разрушить разрозненность информации, отслеживать взаимоотношения и устранять недоразумения, возникающие между командами вашей организации и внутри них.
Проект «Феникс: роман об ИТ, DevOps и помощи вашему бизнесу в победе» , Джин Ким, Кевин Бер, Джордж Спаффорд
Это классический роман об эффективности и коммуникациях. Работа в сфере ИТ аналогична работе на производственном предприятии, и необходимо создать систему для оптимизации рабочего процесса. Одна из лучших книг.
Проектирование надежности объекта , Бетси Бейер, Крис Джонс, Дженнифер Петофф, Найл Ричард Мерфи
В этой книге объясняется весь жизненный цикл разработки, развертывания и мониторинга Google, а также способы управления крупнейшими в мире программными системами (также известными как SRE). Любой, кто считает себя более склонным к эксплуатации на стороне DevOps или кто хочет знать, как укрепить связи между различными командами разработчиков и эксплуатации, должен прочитать SRE.
Мы можем даже представить эту дорожную карту как бургер :).
Если вы считаете, что дорожную карту можно улучшить, откройте PR с любыми обновлениями и сообщите о любых проблемах. Кроме того, я буду продолжать улучшать это, поэтому вы можете пометить этот репозиторий, чтобы вернуться к нему.
Открыть запрос на включение с улучшениями
Обсуждайте идеи в вопросах
Распространите информацию
Доктор Милан Миланович - технический директор 3MD.
Романо Рот — руководитель DevOps в Zühlke.