DevOps и инфраструктурная инженерия
В этом модуле вы овладеете базовой терминологией, используемой в процессе создания программного обеспечения. Познакомитесь с популярными методологиями разработки и поймёте их различия. Узнаете, зачем нужны инфраструктурные архитекторы и чем они занимаются.
Системы управления версиями
В этому модуле вы узнаете, почему и как возникли системы управления версиями исходного кода. Получите практические навыки глубокой работы с Git репозиториями. Научитесь работать одновременно с несколькими репозиториями, синхронизировать их и создавать резервные копии. Познакомитесь со способами интеграции репозиториев со внешними системами. Узнаете, как контролировать процесс разработки ещё на уровне отправки кода в репозиторий.
Основы системного администрирования
Разберётесь с Linux, Unix и другими видами ОС. Научитесь работать на продвинутом уровне с локальной сетью и интернет (MAC, Ethernet, TCP/IP, DNS). Попробуете на практике набор инструментов для отладки операционной системы и приложений.
Скриптовые языки и языки разметки: Python, Bash, YAML, JSON
В этом модуле вы напишете ряд Bash-скриптов, которые можно будет использовать для решения типовых задач. Научитесь автоматизировать работу с помощью языка программирования Python. Научитесь создавать документы в формате YAML, JSON и конвертировать эти форматы между собой.
Виртуализация
Узнаете различия видов виртуализации и контейнеризации. Научитесь управлять виртуальными машинами с помощью libvirtd. Напишете несколько Dockerfile, которые можно будет использовать в дальнейших проектах как примеры. Научитесь запускать несколько контейнеров одновременно и объединять их в виртуальную сеть.
Администрирование баз данных
Узнаете, чем различаются SQL и NoSQL базы данных, и научитесь выбирать нужную из всего многообразия существующих решений. Познакомитесь с решениями для полнотекстового поиска. Овладеете навыками установки и настройки кеш-систем. Научитесь устанавливать и настраивать базы данных для нужд разработки. Познакомитесь с технологиями создания отказоустойчивых кластеров баз данных и кеш систем при помощи кластеризации и шардинга. Научитесь писать
Облачная инфраструктура. Terraform
Научитесь описывать конфигурацию любых сервисов, имеющих API, в виде кода при помощи Terraform. Научитесь выстраивать командные процессы работы над инфраструктурой. Овладеете навыками написания скриптов на Golang. Научитесь писать собственные расширения для Terraform.
Система управления конфигурациями
Научитесь описывать инфраструктуру в виде кода. Сможете настроить удаленный сервер и восстановить его конфигурацию в случае необходимости. Узнаете набор уже готовых шаблонов для решения типовых задач конфигурирования серверов.
Непрерывная разработка и интеграция
Подробно разберём все этапы жизни ПО. Вы узнаете, как организовать взаимодействие между разработчиками, тестировщиками и системными администраторами. Получите практические навыки работы с Jenkins, TeamCity и Gitlab CI.
Мониторинг и логи
Подробно разберётесь, зачем нужен мониторинг и какие параметры нужно контролировать. Узнаете, как организовать систему оповещения о различных событиях, чтобы узнавать о сбоях первым, а не от заказчика. Научитесь организовывать логирование всех действий приложений и анализировать эти логи. Овладеете навыками работы с elasticsearch, Logstash, Kibana и Graylog. Научитесь настраивать связку Prometehus + Grafana + Alertmanager. Познакомитесь с Zabbix для мониторинга физических и виртуальных машин.
Микросервисная архитектура
Узнаете, в каких случаях выгодно использовать микросервисы вместо монолитного приложения. Научитесь проектировать отказоустойчивые системы. Познакомитесь с популярными веб-серверами и балансировщиками нагрузок.
Администрирование кластера Kubernetes
Научитесь разворачивать кластер Kubernetes на собственных мощностях. Поймёте, из каких компонентов состоит control plane и на что нужно обращать внимание при администрировании собственного кластера Кубернетес. Узнаете, как с помощью навыков автоматизированного управления конфигурациями добавлять и удалять узлы, менять конфигурацию имеющихся нод.
Конфигурация Kubernetes
С помощью полученных теоретических знаний развернём stateless-приложение. Усложним, добавив stateful зависимости. Воспользуемся готовыми манифестами для установки приложений в кластер.
Сетевая безопасность в Kubernetes
Разберётесь, как хранить и использовать пароли внутри кластера и передавать конкретным приложениям. Узнаете, как управлять уровнем доступов контейнеров и подов. Научитесь контролировать взаимодействия подов между собой.
Организация проекта при помощи облачных провайдеров
Освоите общие принципы создания проектов в облачных сервисах. Познакомитесь с основными инструментами, которые предоставляют облачные провайдеры.
Карьера в DevOps
Научитесь формулировать карьерные цели, создавать резюме, собирать портфолио и готовиться к собеседованиям. Создадите пошаговый план поиска работы, запишете видеопрезентацию и пройдёте карьерную консультацию с HR-экспертом.
Дипломный практикум в Cloud
Сначала вы поэтапно изучите построение процессов, используемых в DevOps, в теории и на практических задачах, а затем выполните дипломный практикум в облачном сервисе Yandex Cloud. Это позволит вам интегрировать накопленные знания, самостоятельно построить современный процесс DevOps и получить в портфолио серьезный проект, использующий систему непрерывной разработки и интеграции в самостоятельно развёрнутый Kubernetes кластер.
Вы научитесь создавать базовую инфраструктуру с помощью Terraform, деплоить собственный Kubernetes кластер с помощью Ansible, настраивать Jenkins для деплоя сервисов в Kubernetes.
Изучите на кейсах подход и методологию DevOps, основные понятия, этапы жизненного цикла и разработки ПО
Базовый синтаксис, форматирование строк, следования, ветвления и циклы, создание и применение функций
Git и знакомство с системами контроля версий, создание веток, основные понятия, клонирование, слияния, merge
Расширенные опции Docker, подходы к упаковке приложений, а также освоение навыков на практике
Блок 1: Введение в DevOps
Блок 2: Основы Linux и работа с Bash
Блок 3: CI/CD системы
Блок 4: Системы контроля версий Git и Gitlab
Блок 5: Работа с Docker
Блок 6: Управление конфигурациями, Ansible
Блок 7: Основы SQL для DevOps
Блок 8: SQL и базы данных
Блок 9: Python для DevOps
Дипломная работа и помощь с трудоустройством
DevOps-инженер: введение в профессию
Овладеете базовой терминологией, которую используют в процессе создания программного обеспечения. Познакомитесь с популярными методологиями разработки и поймёте их отличия. Узнаете, зачем нужны инфраструктурные архитекторы и чем они занимаются.
Операционная система Linux
Узнаете, какие бывают типы операционных систем, какие функции они обеспечивают. Поймёте, как устроено взаимодействие внутри ОС, как приложения обращаются к системе. Детально разберёте ОС Linux и принципы работы системного администратора с ней. Научитесь управлять процессами, потоками, сигналами, хранением данных.
Английский язык для начинающих разработчиков
В этом модуле вас ждут 10 видеолекций, которые помогут вам начать разговаривать на английском языке как настоящий разработчик.
Сеть, сетевые протоколы и Bash
Изучите основы работы компьютерных сетей, команды для конфигурации сетевых устройств и служб, инструменты настройки и диагностики сетей, а также самые распространённые сетевые приложения. Рассмотрите модель OSI, работу сетей TCP/IP на втором, третьем и четвёртом уровнях. Узнаете, как работать с VPN, Firewall, NAT.
Виртуализация, автоматизация и CI/CD
Узнаете, что такое облака и зачем они нужны. Изучите основы виртуализации. Познакомитесь с системой оркестрации Kubernetes и научитесь с её помощью разворачивать приложения. Сможете поднять облачный сервер с помощью Terraform и сконфигурировать его с помощью Ansible. Узнаете, что такое DevOps, и познакомитесь с основными задачами и инструментами DevOps. Получите практические навыки работы с системой контроля версий Git.
Мониторинг и отказоустойчивость
Узнаете, как обеспечивается отказоустойчивая работа приложений. Изучите основные иструменты кластеризации и балансировки. Изучите принципы и инструменты резервного копирования операционной системы, баз данных и приложений. Узнаете, что такое disaster recovery и как его можно реализовать.
Системы управления версиями
Узнаете, почему и как возникли системы управления версиями исходного кода. Получите практические навыки глубокой работы с Git-репозиториями. Научитесь работать одновременно с несколькими репозиториями, синхронизировать их и создавать резервные копии.
Познакомитесь со способами интеграции репозиториев со внешними системами. Узнаете, как контролировать процесс разработки ещё на уровне отправки кода в репозиторий.
Системы хранения и передачи данных
Узнаете, чем различаются базы данных SQL и NoSQL, и научитесь выбирать нужную из всего многообразия существующих решений. Разберётесь, что такое кеш, зачем он нужен и как его использовать. Научитесь складывать и смотреть логи приложений в Elasticsearch, а также настраивать и использовать менеджер очередей RabbitMQ.
Реляционные базы данных и инфобезопасность
Узнаете принципы работы реляционных баз данных. Научитесь писать SQL-запросы к базе данных. Научитесь работать с индексами и оптимизировать выполнение запросов. Освоите репликацию и масштабирование баз данных, а также научитесь делать резервное копирование.
Виртуализация в DevOps
Узнаете различия видов виртуализации и контейнеризации. Научитесь управлять виртуальными машинами с помощью libvirtd. Напишете несколько Dockerfile, которые можно будет использовать в дальнейших проектах как примеры. Научитесь запускать несколько контейнеров одновременно и объединять их в виртуальную сеть.
Администрирование баз данных
Познакомитесь с решениями для полнотекстового поиска. Овладеете навыками установки и настройки кеш-систем. Научитесь устанавливать и настраивать базы данных для нужд разработки. Познакомитесь с технологиями создания отказоустойчивых кластеров баз данных и кеш систем при помощи кластеризации и шардинга. Научитесь писать простые SQL-запросы и запросы для работы с NoSQL-базами данных.
Облачная инфраструктура. Terraform
Научитесь описывать конфигурацию любых сервисов, имеющих API, в виде кода при помощи Terraform. Поймёте, как выстраивать командные процессы работы над инфраструктурой. Овладеете навыками написания скриптов на Golang. Научитесь писать собственные расширения для Terraform.
Система управления конфигурациями
Научитесь описывать инфраструктуру в виде кода. Сможете настроить удалённый сервер и восстановить его конфигурацию в случае необходимости. Получите набор готовых шаблонов для решения типовых задач конфигурирования серверов.
Непрерывная разработка и интеграция
Подробно разберём все этапы жизни ПО. Вы узнаете, как организовать взаимодействие между разработчиками, тестировщиками и системными администраторами. Получите практические навыки работы с Jenkins, TeamCity и Gitlab CI.
Мониторинг и логи
Подробно разберётесь, зачем нужен мониторинг и какие параметры нужно контролировать. Узнаете, как организовать систему оповещения о различных событиях, чтобы узнавать о сбоях первым, а не от заказчика.
Научитесь организовывать логирование всех действий приложений и анализировать эти логи. Овладеете навыками работы с elasticsearch, Logstash, Kibana и Graylog. Научитесь настраивать связку Prometehus + Grafana + Alertmanager. Познакомитесь с Zabbix для мониторинга физических и виртуальных машин.
Микросервисная архитектура
Узнаете, в каких случаях выгодно использовать микросервисы вместо монолитного приложения. Научитесь проектировать отказоустойчивые системы. Познакомитесь с популярными веб-серверами и балансировщиками нагрузок.
Администрирование кластера Kubernetes
Научитесь разворачивать кластер Kubernetes на собственных мощностях. Поймёте, из каких компонентов состоит control plane и на что нужно обращать внимание при администрировании собственного кластера Kubernetes. Узнаете, как с помощью навыков автоматизированного управления конфигурациями добавлять и удалять узлы, менять конфигурацию имеющихся нод.
Конфигурация Kubernetes
С помощью полученных теоретических знаний развернёте stateless-приложение. Добавите обавив stateful-зависимости. Воспользуетесь готовыми манифестами для установки приложений в кластер.
Сетевая безопасность в Kubernetes
Разберётесь, как хранить и использовать пароли внутри кластера и передавать конкретным приложениям. Узнаете, как управлять уровнем доступов контейнеров и подов. Научитесь контролировать взаимодействия подов между собой.
Организация проекта при помощи облачных провайдеров
Освоите общие принципы создания проектов в облачных сервисах. Познакомитесь с основными инструментами, которые предоставляют облачные провайдеры.
Итоговый проект
Самостоятельно выстроите процесс DevOps в облачном сервисе Yandex.Cloud. Закрепите накопленные знания и создадите свой первый серьёзный проект для портфолио.
Карьера в DevOps
Научитесь формулировать карьерные цели, создавать резюме, собирать портфолио и готовиться к собеседованиям. Создадите пошаговый план поиска работы, запишете видеопрезентацию и пройдёте карьерную консультацию с HR-экспертом.
Кому подойдет курс
Первая четверть
Установка и настройка виртуальной машины с Linux
В первой четверти студенты освоят основы операционной системы Linux, принципы построения компьютерных сетей и изучат основные сетевые протоколы.
Проект
К вам обратился клиент с просьбой восстановить работу Веб сервера. Ваша задача полностью восстановить работу виртуальной машины. Известно следующее, что на виртуальной машине есть сервис с названием web, который является http сервером.
Курсы
Вторая четверть
Программирование и автоматизация
Во второй четверти студенты научатся программировать на Python, а также познакомятся с системой управления конфигурациями Ansible.
Проект
На внутреннем тестовом стенде развернут сайт. Планируем выйти в продуктив со своим продуктом, и для этого нам нужна боевая инфраструктура с использованием подхода инфраструктура как ко (IaC, Аnsible).
Целевые метрики проекта:
— при одновременном отключении любого сервера баз данных и любого из серверов приложений, веб-сервис продолжает работать
— база данных и файлы приложения могут быть восстановлены из резервной копии по состоянию на любой из прошедших трех дней
— производительность инфраструктуры измеряется при помощи ApacheBenchmark, и определяется как максимальное количество одновременных соединений к сервису со стороны пользователей до момента, пока исследуемый URL не начинает отвечать более 2с, или сервис отдает 5xx
— все работы по настройке серверов проекта должны выполняться кодом Ansible.
Курсы
Третья четверть
Облачные технологии и микросервисная архитектура
В третьей четверти студенты освоят облачные технологии, развернут контейнеризованные приложения в Kubernetes и Docker, а также познакомятся с системами виртуализации.
Второй курс модуля «Основы облачных технологий» разработан совместно со специалистами облачной платформы VK Cloud Solutions (Mail.ru Cloud Solutions), на нём вы получите практический опыт использования публичной облачной платформы и S3-хранилищ от ведущих экспертов рынка.
Проект
Деплой тестового приложения в кластере Kubernete.
Настроить интеграцию системы GitLab CI/CD c созданным ранее в облаке VK Cloud кластером Kubernetes. Настроить несколько окружений для развертывания тестового приложения - dev/stage/prod. Деплой тестового приложения во все окружения. В dev/stage деплоим автоматически. В prod требуется запустить деплой вручную. Проверяем, что приложение развернуто успешно. В случае неудачного деплоя необходимо автоматически выполнить откат к предыдущей версии.
Курсы
Четвёртая четверть
DevOps-практики
В четвертой четверти студенты научатся налаживать процессы непрерывной интеграции и доставки кода, рассмотрят модель «Инфраструктура как код», изучат и применят на практике современные методики разработки ПО. Также попрактикуются настраивать систему мониторинга на примере Prometheus + Grafana и настроят отправку оповещений о событиях.
Проект
Развернуть с нуля инфраструктуру и наше приложение в облаке с помощь GitLab CI/CD, использую концепцию инфраструктура как код (IaC, Terraform).
Задачи проекта:
— Поднять 3 окружения в облаке, включая kubernetes(k8s) и базы данные(DBaaS) используя terraform
— Настроить pipeline для нашего приложения, включая тестирования и канареечный деплой (Canary Deployment)
— Настроим логирование, трассировку и мониторинг приложения.
Курсы
Курсы вне четверти
Проект
Кейс от компании партнера. Команда получает техническое задание и организовывает свою работу по выполнению проекта. Ресурсы предоставляет GeekBrains. Публичная защита командного проекта перед заказчиком.
Дополнительные курсы от компаний-партнёров
В разработке и проведении обучения участвуют ведущие технологические компании России. Вы узнаете больше о технологиях и инструментах, используемых реальным бизнесом для создания IT-продуктов.
— Знание принципов и философии DevOps
— Организация процессов непрерывной интеграции и доставки кода
— Основы администрирования Windows Server и автоматизации с помощью PowerShell
— Работа с облачными сервисами
— Работа с компьютерными сетями, знание Сisco Packet Tracer, Exterior Gateway Protocol (EGP), BGP. Interior Gateway Protocol (IGP), RIPv2
— Обеспечение стабильности и безопасности проводных и беспроводных сетей
— Практика работы с современными методиками разработки ПО
Раздел 1. Введение в курс и профессию
Что вы будете изучать:
Чему научитесь:
Раздел 2. Управление инфраструктурой и конфигурациями
Что вы будете изучать:
Чему научитесь:
Раздел 3. Мониторинг, журналирование и observability
Что будете изучать:
Чему научитесь:
Раздел 4. Микросервисная архитектура, Kubernetes
Что вы будете изучать:
Чему научитесь:
Дипломный проект
Цель проекта — использовать изученные технологии и инструменты в реальной практике, которая выходит за рамки курса.
Суть проекта. Ведущий эксперт и автор курса дает задачу для практики из реальных рабочих будней. Для удобства выполнения она будет разбита на спринты. Работа над задачей будет происходить индивидуально.
Результат проекта— отработка технологий и инструментов и получение опыта в боевых условиях.
Бонусный блок. Подготовка к техническим собеседованиям
Что вы будете изучать:
Бонусный блок. Жизненный цикл софтверного проекта и работа с пользователями
Что вы будете изучать:
Чему научитесь:
I модуль
Введение в разработку ПО. Парадигмы программирования
Расскажем о современных парадигмах программирования, их взаимосвязи, достоинствах и недостатках.
II модуль
Базовые принципы проектирования. Объектно-ориентированное проектирование ПО
Расскажем об ООП и паттернах объектно-ориентированного проектирования. Вы узнаете, как строить чистые архитектуры, проектировать библиотеки и собирать ПО для бизнес-задач.
Проект
III модуль
Проектирование прикладных приложений
Вы научитесь проектировать приложения с базами данных и пользовательским интерфейсом, а также организовывать передачу и обработку данных.
Проект
IV модуль
Проектирование сервис-ориентированных архитектур (SOA) и их производных
Получите навыки проектирования систем на основе сервис-ориентированной (SOA) и микросервисной архитектуры.
Проект совместно с «Ростелеком»
V модуль
Развертывание, сопровождение, поддержка (CI/CD)
Узнаете, как управлять, развертывать, сопровождать и поддерживать информационные системы.
Проект
Язык запросов SQL
Старт в DevOps: системное администрирование для начинающих