Перейти к содержанию

Linux Factory

Привет, меня зовут Роман Шубин, я автор телеграм канала @bashdays и действующий сеньор-помидор. Работаю с множеством крупных компаний в качестве «кризис-менеджера» и решаю головные боли в плане инфраструктуры, архитектуры и траблшутинга.

Для того чтобы вкатиться в айти на роль девопс инженера, не нужны годы обучения. Тебе достаточно пройти первые два сезона моего курса. Каждый сезон рассчитан на один месяц обучения, при условии если ты будешь заниматься хотя бы два раза в неделю.

Курс на 99% избавлен от «воды» и ненужной информации. Ты получаешь необходимую базу технических знаний, которые позволят тебе пройти любое собеседование и устроиться на ставку джуна/мидла.

Подписка

Для доступа к урокам тебе необходимо приобрести подписку. Первые два урока — Бесплатные.

Для оплаты перейди в телеграм бота и следуй инструкциям. После оплаты бот скинет тебе логин и пароль. По всем вопросам касаемо оплаты и доступа можешь обращаться ко мне напрямую.

Если бот не отвечает, пошли его ему сообщение /start

  Записаться — 5000р 3500р

Что внутри

— Никакой воды, только нужная информация
— Исключительно бест-практики
— Более 60 уроков и домашних заданий
— Познаешь силу «Инфраструктура как код»
— Разберешь с docker и git
— Научишься писать пайплайны
— Настроишь мониторинг и алерты
— И многое другое…

Довольно много ребят пройдя всего 20 уроков нашли свою первую работу и теперь двигаются самостоятельно. Хотя большинство из них никогда не работали в айти. Теперь они пишут yaml манифесты, создают пайплайны, собирают docker образы, деплоят в прод и занимаются любимым делом, которое приносит хорошие деньги.

Если ты ничего не смыслишь в Linux, консоли и т.п. — это не проблема. Наоборот твой мозг не загажен плохими практиками . Ты сразу построишь в голове нужные нейронные связи и сделаешь это правильно. А я тебе с этим обязательно помогу.

У нас нет дедлайнов и строгих рамок, ты занимаешься когда тебе удобно и когда есть настроение. Домашки можно не сдавать, все уроки сразу открыты.

Киллер-фичи

— Я твой личный ментор 1x1 (никаких групповых чатов)
— Вдумчивое кодревью ДЗ (обоснованные замечания)
— Нет дедлайнов (учишься когда захочешь)
— Можешь не сдавать домашки (двойки не ставлю)
— Задачи со звездочкой (для любителей посложнее)
— Можно пропускать темы и брать только нужные
— Избавишься от синдрома самозванца


Содержание курса

Первый сезон

В этом сезоне мы:

  • Научимся готовить Ansible. Напишем профессиональные роли и плейбуки. Рассмотрим неочевидные трюки и фишки с которыми ты столкнешься в реальных проектах. 

  • Соберём docker контейнеры с приложениями и разместим их в приватных docker registry. Научимся правильно работать с приватными репозиториями, токенами и ключами.

  • Изучим основы Gitlab, напишем первые пайплайны и автоматизируем процесс деплоя в рамках CI/CD. Подключим раннеры, делегируем сборку на DIND и Kaniko. Разберемся с мульти-тэгами и артефактами. Сделаем универсальный шаблон docker compose для нескольких проектов. Вынесем пайплайны в отдельный репозиторий и научимся их гибко подключать.

Описание и список уроков [ нажми ]

Список уроков

s1e0 — Подготовка лаборатории

Вводное занятие, в котором мы подготовим окружение для экспериментов. Поднимаем необходимую инфраструктуру, настраиваем доступы, прописываем ssh ключи.

Открыть урок (Бесплатный)

s1e1 — Я въезжаю в стройку

Устанавливаем актуальную версию Ansible и создаем шаблон проекта по бест-практикам. Знакомимся со структурой проекта, готовим отдельный конфиг под каждый проект.

Открыть урок (Бесплатный)

s1e2 — Взлетаем

Описываем инфраструктуру в inventory файлах, разделяем сервера по группам, разводим логику по окружениям stage и production.

Открыть урок

s1e3 — Головоломка

Быстренько проходимся по ad-hoc командам, рассматриваем самые распространенные модули, включаем дебаг режим, взаимодействуем с разными окружениями.

Открыть урок

s1e4 — Взрослые игрушки

Знакомимся с концепцией ролей, познаём структуру, учимся писать свою первую роль и подключать inventory файлы в зависимости от окружения.  Избавляемся от путаницы и всё разносим по полочкам.

Открыть урок

s1e5 — Разделяй и властвуй

Отделяем роли от проекта, переносим их в отдельный git репозиторий, пишем плейбук инициализации, делаем всё по взросому и занимаемся очень важными вещами

Открыть урок

s1e6 — Переменная облачность №1

Знакомимся с переменными на примере подключения swap файла, разделяем переменные по группам серверов, страхуем роли от факапа и делаем их универсальными.

Открыть урок

s1e7 — Вершки и корешки

Избавляемся от рута, расширяем возможности пользователя на сервере, знакомимся с новым функционалом Ansible, приводим конфиги и процессы в порядок. 

Открыть урок

s1e8 — Фаршируем перцы

Автоматизируем установку софта в зависимости от окружения, подключаем репозитории, знакомимся с лупами и циклами, работаем со списками, игнорим ошибки.

Открыть урок

s1e9 — Сжимаем булки

Отдыхаем от Ansible и проникаемся всеми прелестями docker контейнеров, упаковываем своё первое приложение, учимся работать с тэгами, проваливаемся внутрь, побеждаем свои страхи.

Открыть урок

s1e10 — Великие дела

Разбираемся и создаём токены деплоя для работы с gitlab, готовим docker образ и пушим его в приватный registry, подчищаем мусор и пулим его обратно.

Открыть урок

s1e11 — Проходим пороги

Знакомимся с Kaniko и DIND, переосмысляем сборку docker образов, внедряем изоляцию, завязываем процессы в одну кучку, избавляемся от избыточных команд.

Открыть урок

s1e12 — Труба зовет

Заводим собственные раннеры для взаимодействия с gitlab, подключаем раннеры к проекту, знакомимся с базовыми типами.

Открыть урок

s1e13 — Двигатель прогресса

Пишем первый пайплайн, триггеримся на коммиты, собираем отдельные образы для stage и production, избавляемся от ручного труда.

Открыть урок

s1e14 — Переменная облачность №2

Деградируем, изучаем базу с группами и подгруппами в inventory файлах. Осознаём принцип работы и как делать не нужно.

Открыть урок

s1e15 — Регистратура

Добиваем Ansible переменные, регистрируем, читаем, склеиваем, дебажим.

Открыть урок

s1e16 — Рвем шаблоны

Пишем Ansible роль для балансировщика, рендерим конфиги, знакомимся с хендлерами, разбираемся с локейшенами и бэкапами конфигов.

Открыть урок

s1e17 — Выкатываем питона

Рефакторим пайплайн, выносим раннеры в переменную, проникаемся бест-практиками, заводим  shell раннеры, выкатываем питона в прод и проксируем через балансировщик.

Открыть урок

s1e18 — Рукоблудие

Самостоятельная работа по итогам изученного. Вносим правки, адаптируем пайплайны под хотелки технического директора, приседаем вокруг basic auth, садим питона на отдельный URL.

Открыть урок

s1e19 — Пестики и тычинки

Отдыхаем после душной контрольной, избавляемся от привязки к проекту, выносим пайплайны в отдельный git репозиторий, инклудим нужные пайплайны из любого проекта.

Открыть урок

s1e20 — Расхитительница гробниц

Собираем артефакты, прокидываем их между джобами и стадиями, интегрируемся с docker образами и контейнерами.

Открыть урок

Второй сезон

В этом сезоне мы:

  • Научимся делать API запросы в gitlab, получать необходимые данные и запускать по запросу пайплайны из любого места.

  • Поработаем с нативным Ansible шифрованием и переменными, посмотрим как лучше не делать. Установить и подготовим к работе Hashicorp Vault. Научимся дёргать ролями нужные нам секреты.

  • Рассмотрим приоритеты запуска Ansible ролей и тасок.

  • Скрестим gitlab и ansible, подготовим дружелюбный интерфейс для прогона необходимых ролей.

  • Добьем переменные и рассмотрим неочевидные ситуации.

  • Поработаем с docker compose и научимся генерировать docker-compose.yml налету в зависимости от проекта и переменных.

  • Перетащим раннеры в docker контейнеры и максимально оптимизируем процессы.

  • Рассмотрим работу через бастион сервера и как достучаться ролями до серверов, которые находятся за NAT.

  • Настроим единую точку входа в наши приложения через Traefik.

  • Настроим динамическую систему мониторинга с автодискавери, всё в лучших традициях интерпрайза.

  • Научимся работать с экспортерами prometheus и напишем свои.

  • Настроим две системы алертов, нативные графановские и маст-хевные через alertmanager.

Описание и список уроков [ нажми ]

Список уроков

s2e1 — Мишки апишки

Знакомимся c API gitlab, делаем запросы, собираем пазлы, добираемся до артефактов и RAW логов, отдаем техническому директору через телеграм заветный архив с артефактами.

Открыть урок

s2e2 — Ящик Пандоры

Скрываем критичные данные в переменных, учимся ковыряться, проникаемся шифрованием данных в плейбуках и ролях нативными средствами ansible.

Открыть урок

s2e3 — Коробка с конфетами

Знакомимся с правильным Vault, втыкаем Hashicorp Vault на сервер, конфигурируем, пишем полиси и тыкаем палкой. Избавляемся от нативного Ansible Vault и делаем всё по уму.

Открыть урок

s2e4 — Химера

Дружим одно со вторым, дергаем секреты из hashicorp vault с помощью Ansible ролей, создаем сервисные токены, курлим апишку.

Открыть урок

s2e5 — Клеймим стадо

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

Открыть урок

s2e6 — Гибкость хардкода

Готовим очередного монстра, запускаем ansible плейбуки из пайплайнов gitlab, кастомизируем параметры запуска, подготавливаем интерфейсы для удобной и комфортной работы.

Открыть урок

s2e7 — Переменная облачность №3

Универсалим и тюним Ansible плейбуки, реализуем динамическую подстановку переменных, избавляемся от лишнего, закрываем открытые вопросы по переменным.

Открыть урок

s2e8 — Система нипель

Заводим проект через динамический шаблон гитлаба, потихоньку перелезаем на docker compose, готовим проект к масштабированию и балансировке нагрузки.

Открыть урок

s2e9 — Бегуны в коробке

Приводим в порядок раннеры и запускаем их в docker контейнерах, избавляемся от рутовых зависимостей и повышаем уровень наших скиллов.

Открыть урок

s2e10 — Сквозняк

Настраиваем сервера через единую точку входа, бастион, джамп-хосты, делегирование.

Открыть урок

s2e11 — Балансировка

Большой урок-гайд по Traefik, учимся готовить, самые основные моменты которые требуются в работе, практика, фичи, приколы и нюансы.

Открыть урок

s2e12 — Remains №1

Короткие и важные штуки про ансибл, то что упустили, что стоит держать в голове, нюансы и трюки.

Открыть урок

s2e13 — Большой брат №1

Поднимаем гибкую систему мониторинга. Настраиваем мастер-consul, прикручиваем agent, втыкаем экспортер, скрещиваем, добиваемся слаженной работы + пишем роли.

Открыть урок

s2e14 — Большой брат №2

Заводим сервис дискавери, поднимаем прометеус и дружим его с консулом, работаем с тегами, делаем запросы.

Открыть урок

s2e15 — Большой брат №3

Вкорячиваем Victoria Metrics, прикручиваем эту штуку к prometheus, добиваемся рабочей связки, решаем сетевые проблемы + мелкие фичи и полезности.

Открыть урок

s2e16 — Большой брат №4

Учимся выживать без консула. Собираем метрики через коробочный функционал. Городим альтернативный авто-дискавери и раскрываем скрытый потенциал самого прометеуса. Упрощаем себе жизнь. Пишем роли, фиксим баги. 

Открыть урок

s2e17 — Тотальный экспорт

Прокачиваем возможности экспортера, изобретаем собственный на коленке, учимся вытаскивать полезную нагрузку для curl запросов, пишем скрипты.

Открыть урок

s2e18 — Метрикой по морде

Конфигуряем графану, выводим графики, разбираемся с приборной панелью космического корабля, делаем выпадающие списки, выводим золотые сигналы.

Открыть урок

s2e19 — Пускаем соплю №1

Импортируем дашборды, подсматриваем и ковыряемся с коробочными алертами. Интегрируем алерты в телеграм канал, плачем от избыточных настроек.

Открыть урок

s2e20 — Пускаем соплю №2

Избавляемся от графановских соплей и прикручиваем мастхевный alertmanager, шлем новые алерты в телегу, упарываемся с конфигами и радуемся от полученного результата.

Открыть урок

Третий сезон

В этом сезоне мы:

  • Научимся правильно готовить Terraform
  • Проникнемся бест-практиками
Описание и список уроков [ нажми ]
s3e01 — На встречу с облаками

Готовим себе рабочее пространство, устанавливаем terraform, производим базовую конфигурацию, генерируем токены, настраиваем взаимодействие с облаками.

Открыть урок

s3e02 — Шлифовка и стейты

Разбираемся с сервисными пользователями, знакомимся со стейтами и переносим их в S3.

Открыть урок

s3e03 — Генеральная уборка

Работаем с конфигурацией и чувствительными данными. Щупаем переменные. Наводим порядок в проекте, подключаем визуальную составляющую.

Открыть урок

s3e04 — Первенец

Создаём первый сервер, заводим flavor, разбираемся с сущностями и параметрами, аттачим ssh ключи и IP адреса.

Открыть урок

s3e05 — Хотфистинг и траблшутинг

Разбираем предыдущую домашку, прикручиваем порты и сети к серверу, прикрепляем статический ip адрес, прокидываем ssh ключ. Моделируем ситуацию с потерей стейта, пытаемся все это дело оперативно починить.

Открыть урок

s3e06 — Скрипач не нужен

Учим terraform плясать под нашу дудку, превращаем его в аналог ansible и заставляем выполнять простые задачи, интегрируем консольные linux команды, вникаем в нюансы.

Открыть урок

s3e07 — Сепарируем ресурсы

Разделяем скрипты и манифесты, подключаем внешний git репозиторий с командами, внедряем модульность.

Открыть урок

s3e08 — Размножение и зависимости

Учимся работать с зависимостями ресурсов, размножаем сервера, прокручиваем индексы, даем рандомные имена.

Открыть урок

s3e09 — Понять и простить

Сегодня еще больше погрузимся в работу с пользовательскими данными, научимся рендерить шаблоны, заглянем в циклы, потыкаем нативную консоль terraform для отладки, посмотрим примеры функций.

Открыть урок

s3e10 — Seek & Destroy

Оптимизируем код, избавляемся от дублей, рассматриваем принципы динамических блоков кода. Прицепом настраиваем облачный фаервол, политики доступа, группы безопасности и цепляем всё это дело к серверу.

Открыть урок

s3e11 — Критические дни

В этом уроке мы попробуем реализовать что-то на подобии разворачивания инфраструктуры на стероидах (blue/green). Познакомимся с LifeCycle и его примудростями.

Открыть урок

s3e12 — Слон и моська

Рассматриваем работу с приоритетами и зависимостями, изучаем метод извлечения данных.

Открыть урок

s3e13 — Жестокие игры

Более детально погружаемся в переменные, учимся писать гибкие манифесты, приводим код к взрослому виду. Высматриваем нюансы, разделяем переменные на окружения prod/stage.

Открыть урок

s3e14 — Улыбаемся и машем

В этом уроке мы разберем локальный запуск команд, познакомимся поближе с provisioner и научимся генерировать inventory файл для Ansible с последующим запуском и установкой нужных пакетов.

Открыть урок

s3e15 — X-Files

Работаем с секретами, генерируем пароли и рандомные строки, пишем полученные данные в хранилище, читаем, создаем ресурсы на основе полученных секретов.

Открыть урок

s3e16 — Это вам не это

Изучаем условия, ветвимся логикой, рассматриваем еще один способ манипуляций между prod/stage окружениями, закрепляем ранее полученные знания.

Открыть урок

s3e17 — Кишкоблудство

Устанавливаем OpenStack CLI для более детального дебага и управлением ресурсами облака из командной строки. Решаем проблему с кастомными flavors, смотрим полезные команды и преисполняемся новым инструментом.

Открыть урок

s3e18 — Гоняем лысого

Погружаемся в более прогрессивные циклы, рассматриваем FOR, MAP, пишем гибкие фильтры для вывода результатов, применяем IFы.

Открыть урок

s3e19 — Карусель

Работаем с мульти-регионами, используем несколько провайдеров для разных типов облаков в рамках одного terraform проекта.

Открыть урок

s3e20 — Импортозамещение

Импортируем в state ресурсы, которые были созданы руками. Проводим реверс-инжиниринг и описываем в terraform существующую инфраструктуру.

Открыть урок

s3e21 — Глобальное потепление

Заводим и знакомимся с глобальными переменными, которые доступны на любых уровнях проекта. Создаем единое s3 хранилище state для таких переменных и дергаем их из любого места.

Открыть урок

s3e22 — Птица Феникс

Учимся пересоздавать ресурсы не трогая другие ресурсы, рассматриваем различные варианты и кейсы, обходим зависимости, разбираемся с индексами.

Открыть урок

s3e23 — Модульная застройка

Знакомимся с модулями, выносим повторяющиеся куски кода в отдельную сущность, стандартизируем инфраструктуру, разбираем когда нужно и когда не нужно использовать этот паттерн.

Открыть урок

s3e24 — Не беспокодить

Ставим жирную точку, допинываем эфирные блоки и вокрспейсы, делим неделимое на куски, клонируем инфраструктуру в рамках одного проекта, создает отдельное окружение для тестирования.

Открыть урок

s3e25 — Тысяча пушей!

Сегодня у тебя будет достаточно сложная дипломная работа, ее не обязательно делать в один присест. В этой работе тебе нужно будет продемонстрировать все полученные навыки из 3х сезонов, нет правильных и неправильных решений, суть — добиться ожидаемого результата, построить отказоустойчивую инфраструктуру и следовать техническому заданию.

Открыть урок