Заказать обратный звонок
Оставьте контактные данные и мы вам перезвоним
Имя
Телефон
Комментарий
Нажимая кнопку, вы даете согласие на обработку ваших персональных данных и соглашаетесь с политикой конфиденциальности.
На практическом видеокурсе научимся применять Ansible для управления конфигурациями.

Расскажем какие преимущества дает подход IaC, когда можно использовать роли из Galaxy и как работать с Ansible быстрее, чем при дефолтных настройках.
Ansible: от первых шагов до большого проекта
ЦЕНА
30 000 ₽ 40 000
до 6 августа
Видеокурс
РЕЛИЗ
27 августа 2021
В 3/4 DevOps вакансий требуют Ansible и в 1/4 — подразумевают
Всё содержание курса можно найти в мануалах, но практики там нет, а у нас есть
Что даёт практика на реальных кейсах? Чувство уверенности в 100 серверов

Автор видеокурса

Всеволод Севостьянов
Lead Engineer в Vene (Берлин)
  • Специализируется на построении high-throughput systems (от 20К запросов в секунду).
  • Команда под его руководством поддерживает несколько сотен клиентов, имеющих свои собственные инстансы.
  • Отвечает за пайплайны и deployment, а также за менторство разработчиков в разрезе CI/CD.
Программа
*предварительная и может меняться без потери ценности
№1: Инсталляция LEMP стека на машину (ручной инсталл)
  • Инсталляция LEMP стека на несколько машин
  • Что такое автоматизация инфраструктуры
  • Что такое Ansible
  • Требования Ansible
  • Установка Ansible
№2: Инсталляция LEMP стека с помощью Ansible (playbook, ansible.cfg, hosts, templates)
  • Пишем первую роль
  • Пишем плейбук
  • Пишем конфигурацию
  • Ansible Galaxy
  • Практика Деплой Symphony приложение на PHP с помощью Ansible
№3: Python stack (modules, handlers)
  • Raw модуль
  • Устанавливаем uWSGI для сервера
  • Самоподписанные ssl сертификаты (Let's encrypt )
  • Практика Деплой Flask приложение на Python с помощью Ansible
№4: Не веб приложения (roles, jinja2, реестры, группировка хостов, переменные, postgresql_db, postgresql_user, mongodb, script модули, CHANGED _ WHEN, FAILED_WHEN)
  • Установка proxy сервера с помощью Ansible
  • Postgres cluster
  • Mongo cluster
  • Практика. Собираем Docker-контейнеры
№5: Патчинг и апдейты с помощью Ansible (pre_tasks, post_tasks, include, serial и мax_fail_percentage, блоки, выбор хостов, лимиты)
  • Оркестрация
  • Что такое rolling update и как его накатывать
  • Практика. Накатываем апдейт веб-приложения под нагрузкой
№6: Как и зачем автоматизировать рутинные задачи (коллбеки, как ускорить Ansible)
  • Запуск расчетных задач по расписанию
  • Практика. Автоматизируем ротацию логов и оценку свободного места на машина
№7: IaaC и деплой плейбуков
  • Git hooks с Ansible и автодеплой (Gilab API integration, Gitlab runners)
  • Практика. Организуем деплой для мультисервисной системы (микросервисное веб приложение)
№8: Мониторинг (фильтрация логов)
  • Что такое Prometheus
  • Сбор системных данных
  • Сбор логов
  • Практика. Устанавливаем и настраиваем бизнес-мониторинг
№9: Защищенные системы и правильная настройка Ansible в них (подстановки, фильтры, в целом работа с облаками, включая подъем новых машин)
  • Работаем с Google Сloud и AWS, используя Ansbile
  • Ansible Vault и что в нем можно хранить
  • Bastion и правильная настройка Ansible
  • Ansible Tower
  • Как лучше ставить воркеры в сети для enterprise окружения
№10: Написание своих модулей
№11: Обзор конкурентов Ansible
Кому подойдет курс
Тем, кто хочет уверенно работать с кодом и автоматизировать рутинные задачи.
Тем, кому необходимо накатывать апдейты веб-приложений под нагрузкой.
Тем, кто планирует
автоматизировать настройку веб-серверов с помощью одного или нескольких плейбуков.
Что вас ждёт на курсе
Видеоуроки
Предзаписанные уроки с описанием и таймингом. Смотрите темы, которые вам интересны, в удобном для вас темпе. Записи доступны в течение 2 лет.
Практика на стендах
Практика на стендах от партнёра Selectel.
В нашем курсе по каждой теме есть практическое задание.
Техподдержка
Обратная связь по организационным вопросам и помощь техподдержки при работе со стендами.
Клуб инженеров
Всем студентам предоставляется доступ в «Клуб инженеров» — сообщество выпускников наших курсов, где каждый день обмениваются опытом инженеры из разных компаний.
Стоимость курса
30 000 ₽

40 000 ₽
Цена до 6 августа
Нажимая на кнопку, вы соглашаетесь с политикой конфиденциальности
Начать учиться
На этот курс промокоды не распространяются.
Денис Наумов
R&D - архитектор, Слёрм, ISPsystem, ex Grid Dynamics
— Более 5 лет в анализе данных и разработке на Python;
— В качестве DataOps развивает аналитические инфраструктуры и управляет потоками данных;
— Строит системы реагирования на триггерные события во взаимодействии пользователя с продуктами;
— Отвечал CI/CD аналитических сервисов и ML моделей;
— Разрабатывал крупные модули в B2B продуктах.
Что будет на курсе
Не будет
Требования
Каждую неделю даем лекцию и домашку.
Общий чат со спикером в телеграме.
QA-сессии по мере прохождения курса.
Длительность потока 2 месяца.
— Базовые навыки администрирования Linux (взаимодействие с процессами, файлами, использование прикладных протоколов передачи данных).
— Опыт работы с git.
— Понимание предназначения Ansible и модулей Ansible.
— Иметь представления о предназначении Kubernetes и операторов Kubernetes.
— Желательно, опыт работы с GitLab и GitLab CI.
— Желательно, базовые навыки автоматизации на Bash.


Нескончаемое стремление автоматизировать ручной труд!
Итоговый проект

После курса у вас останется проект на гитлабе: придумайте свой или сделайте один из предложенных вариантов.

Спикер даст всем студентам обратную связь.

Проект можно использовать в качестве тестового задания при трудоустройстве.

Программа
*предварительная и может меняться
№1: Введение
  • Почему OPS'ам нужен питон?
  • В чем его прелесть?
  • Для каких задач Python хорошо подходит?
№2: Основы синтаксиса и структур в Python
Зачем: научиться понимать логику программ на Python и не только, а так же писать простые программы - важнейшая задача. "Самое то", если вы не знакомы с синтаксисом Python

  • Типы данных и переменные, мутабельные/иммутабельные и простые/составные типы данных, приемы отладки
  • Условный оператор - логические операторы, простые условия, вложенные условия и замена оператора switch
  • Базовые циклы - циклы while и for, итераторы, прерывания циклов
  • Функции, методы строк, списков и словарей
  • Генерация и обработка исключений
  • Практика: набор небольших микрозаданий по каждому уроку
№3: Улучшенное владение Python: оптимизации и ООП
Зачем: Освоим особенности Python - именно за их счет он так прост и практичен. Также раскроем значение тех самых трех букв (мы про ООП) без академической теории и с понятным предназначением.

  • Продвинутая работа с циклами - оператор yield и генераторы, инсайты о циклах в Python (оператор else в цикле, оптимизации циклов comprehensions, etc.)
  • Специальные типы структур (frozendict, defaultdict, etc.)
  • Базовые понятия ООП: классы, экземпляры классов, инкапсуляция, наследование и полиморфизм
  • Практика: набор небольших микрозаданий по каждому уроку
  • Продвинутая практика: аудит использования услуг. У CTO появилось подозрение, что некоторые услуги и сервисы уже не используются командами. Проблема заключается в том, что модуль мониторинга используемых услуг не обновлялся последние десять лет: он не может выгрузить агрегированные данные, да и формат возвращаемых значений не соответствует общепринятым стандартам. Вы были избраны, чтобы извлечь снятые показатели, агрегировать их по типу и команде и предоставить данную информацию CTO для первоначальной оценки масштабов проблемы
№4: Подключения по сети
Зачем: Практически каждый сервис имеет интерфейс для подключения по какому-либо сетевому протоколу. А без подключения невозможно взаимодействие, к счастью в экосистеме Python найдутся модули-клиенты практически для любых протоколов.

  • Пакет pip и установка сторонних модулей
  • Модуль Paramiko для выполнения команд по ssh
  • Модуль requests для выполнения HTTP запросов
  • Обзор модулей для работы с базами данных и брокерами сообщений
  • Практика разминочная: Астрологи объявили неделю кодинга на Python. Количество практик выросло вдвое.
    Вас заметили! Кажется, вы использовали curl, чтобы получать информацию от биллинговой системы. Самое время использовать модуль requests, чтобы выполнить HTTP-запрос внутри вашего приложения. Кстати, модуль мониторинга не умеет собирать данные о лимитах с особых облачных сервисов SBS (Slurm Beautiful Services). Но можно запросить их самостоятельно: по протоколу SSH
  • Практика со звездочкой. Команда разработки внедряет уже не новую методологию: Допустил возникновение алерта - получи задачу. Аналитическая подсистема ищет только отборные ошибки и складывает сообщения о них в брокер сообщений Kafka. Ваша задача завершить цикл возврата багов разработчикам: ваш консьюмер должен автоматически создавать задачи с нужным описанием и приоритетом в Trello
№5: Работа с текстом в различных форматах
Зачем: Подключение к сервису - только половина дела. Другая половина это обмен информацией. А информация зачастую представляет собой набор текстовых символов в определенном формате. Раскодировать и закодировать помогут модули. Информация не нужна вся целиком? Извлечь важное, отбросив остальное помогут регулярные выражения.

  • Модуль re и регулярные выражения
  • Модули работы с данными в разных форматах: separated values, json, yaml, xml
  • Использование аргументов командной строки: модуль argparse
  • Практика: создание источника данных об использовании услуг
    В ходе аудита использования услуг вы выявили важную для бизнеса информацию, заинтересовался даже CEO. Было принято решение проанализировать потерянные деньги и больше не допускать таких ситуаций. Для этого нужно дать аналитикам инструмент получения данных, чтобы они подготовили отчеты. Проблема заключается в том, что модуль мониторинга возвращает лимиты по услугам по отдельному запросу в форматах yaml, а цены за услуги возвращаются биллинговой системой в формате xml. Необходимо срастить данные о текущей загрузке с лимитами и ценами. Агрегированную информацию отдел аналитики запросил в формате JSON с возможностью указать интервал времени и шаг агрегации
№6: Взаимодействие с операционной системой
Зачем: Важность взаимодействия с операционной системой не нужно объяснять дополнительно. Как подружить её с Python - в этом уроке.

  • Чтение и запись файлов.
  • Модуль os - чтение environment variables, работа с директориями и правами, работа с процессами
  • Модуль subprocess для интерактивного взаимодействия с процессами
  • Практика: автоматическое предоставление доступов к серверам
    В ходе кампании по отказу от неиспользуемых услуг возникла курьезная ситуация: сервер продуктовой команды отключили, но инфраструктурная команда периодически использовала его в качестве хоста для стейджинга. Выяснилось, что продуктовая команда не использовала его потому что периодически кто-то перезаписывал их настройки своими. Было решено, что теперь ресурс будет закрепляться только за членами одной команды, а избежать ошибок поможет автоматика. Вам, как заварившему эту кашу, необходимо написать агент, который будет периодически опрашивать систему управления правами и вносить изменения в конфигурации прав внутри установленных сервисов и по необходимости давать сервисам команду перечитать конфигурации
№7: Пишем свой модуль для Ansible
Зачем: Ansible - мощная система управления конфигурациями, да еще и с возможностью расширения собственными модулями. Какое совпадение, что она сама и большинство модулей написаны на Python.

  • Написание своих модулей для ansible
  • Практика: написание модуля управления правами
    Давным-давно, в далёкой-далёкой галактике вы уже писали агент для выдачи прав к определенным сервисам. Пришло время поменять pull на push и в этом поможет ansible. Все что нужно - лишь модуль
№8: K8S оператор на Python (live-coding stream)
Зачем: расширим возможности K8S под свои задачи

  • Покажем как делать это не только на Go
№9: Создание и кейсы использования своего API
Зачем: подготовка кода к деплою - одна из важнейших задач. Сделать этот процесс гибче и удобнее помогают собственные скрипты для stage пайплайнов.

  • Создание REST API на Flask
  • Создание своего prometheus exporter с Prometheus Python Client и Flask
  • Практика: выгрузка данных в стороннюю систему мониторинга.
    Затраты на неиспользуемое оборудование превысили даже пессимистичные прогнозы. Теперь у команды инженеров есть еще одна зона ответственности - мониторинг неиспользуемых услуг. Для этого вам необходимо периодически опрашивать биллинговую систему через ваш скрипт и передавать данные в Prometheus. Формат получаемых данных все еще не подходит. Вам необходимо реализовать коннектор. А заодно и написать эндпоинт, чтобы отдел аналитики всегда имел под рукой актуальную информацию в формате JSON
№10: Взаимодействие с CVS и DevOps системами
  • Использование сторонних модулей на примере интеграции в пайплайны Gitlab
  • Использование pygit для получения информации об изменениях в коде
  • Практика: генерация change log из коммитов
    Ваши решения настолько понравились команде инженеров, что они вдохновились ими и начали писать свои. Только вот описания к релизам сделать всегда забывают. Для этого командой было принято решение внедрить commit conventions и генерировать ченджлоги прямо из коммитов при слиянии dev-бранча с релизным, а если название коммита не соответствует commit conventions - не допускать merge-request до merge
№11: Chatops с Errbot на Python (live-coding stream)
Зачем: Infrastructure as a Chat - управляй инфраструктурой из мессенджера. Бывает ли так? Мы попробуем.
  • За два часа делаем чатопс в прямом эфире
№12: Финальный проект
  • Вы можете автоматизировать свою задачу, а мы обещаем сделать ревью вашего кода. Если идей или задач нет - мы поможем их придумать!.
ВИДЕОКУРС: 2 МЕСЯЦА
Научим писать автоматизацию:
Docker, Gitlab, Prometheus, K8S и др.
Python для инженеров
Оплатить как юр.лицо
Мы свяжемся с вами, ответим на вопросы и отправим счёт
Нажимая на кнопку, вы соглашаетесь с политикой конфиденциальности
Made on
Tilda