Oh my DevOps | Эдуард Мячков
1.29K subscribers
19 photos
30 links
- DevOps Roadmap 2025: https://taplink.cc/edmiachkov
- ИТ-консультации: https://taplink.cc/edmiachkov
- Отзывы: https://t.me/oh_my_devops_feedback
Download Telegram
Друзья, спустя 2 месяца я наконец-то закончил и дорожную карту и страницу с моими консультациями! Часов 250 суммарно на все ушло точно.

Сейчас опубликую навигацию со всеми ссылками, а позже вы увидите посты во всех социальных сетях о начале моих консультаций и тогда можно будет рекомендовать меня всего целиком и полностью 😘
🔥14🎉2
НАВИГАЦИЯ

💸 Научу продавать себя дороже 💸

Привет! Меня зовут Эд и с мая 2017 года я DevOps Engineer, а с сентября 2024 — DevOps Mentor.

❤️Научу DevOps-инструментам;
❤️Помогу с резюме и самопрезентацией;
❤️Со мной ты сделаешь x2-x3 по ЗП. Смотри кейсы учеников.

🔗 Подробнее про консультации со мной
👍 Отзывы учеников

КОНТЕНТ

🗺️ DevOps Roadmap 2025 — самая подробная, как минимум в рунете;
💣 Как стать DevOps с нуля в 2025 — и вновь, подробнее не найдёте;
📊 Анализ DevOps рынка осень-зима 2024: Стажёры, Junior, Middle, Senior.

>> Все статьи

💬 Рубрики на канале:
#вопросы_собеседований
#обновление_roadmap

КОНТАКТЫ

📱 LinkedIn
📱 Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥163🏆1
Oh my DevOps | Эдуард Мячков pinned «— НАВИГАЦИЯ — 💸 Научу продавать себя дороже 💸 Привет! Меня зовут Эд и с мая 2017 года я DevOps Engineer, а с сентября 2024 — DevOps Mentor. ❤️Научу DevOps-инструментам; ❤️Помогу с резюме и самопрезентацией; ❤️Со мной ты сделаешь x2-x3 по ЗП. Смотри кейсы…»
Я почти неделю отдыхаю от гаджетов, потому что приехал к родным в Челябинскую область. Вот сейчас выдалась возможность написать вам о новостях.

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

- Notion мой, вероятно, не удалят. Согласно Треду на X (Спасибо @LISergei). Так как я никогда ранее РФ карту не привязывал. На всякий случай создал бекап, так как тред не является 100% достоверным источником.

- Чтобы не потерять аудиторию, то придумаю куда ещё можно перекинуть дамп и вставлю ссылку в Roadmap на новый ресурс.

- После 9 сентября будем посмотреть. Если без VPN станет недоступны мои страницы, то перееду с него. Может на Outline, может что иное.

- Добавил комментарии в этом канале.
10🔥4🫡1
#обновление_roadmap

Добавил в K8s в секцию доп материалы:
- Курс по K8s со Степика для начинающих
- Обновил на актуальную версию, вместо оригинальной версии Келси Хайтауэра kubernetes-the-harder-way
- Добавил для Yandex Cloud версию kubernetes-the-hard-way

Заменил определение TLS с Wiki на статью в Network в HTTP Security:
- Что такое TLS
🔥12👍2
Собеседование в Т-Банк 🟡

#вопросы_собеседований

Собеседование состоит из трёх частей:
1️⃣ Технический скрининг на 30 минут, состоящий из быстрых вопросов по Computer Since
2️⃣ Онлайн кодинг на 1 час на любом языке, с решением алгоритмических задач
3️⃣ Траблшутинг инфраструктуры продукта с элементами проектирования на 1 час

Я проходил собеседования два раза. Первый в мае-июне 2022 и второй через год в 2023. Не думаю, что у них что-то поменялось с тех пор координально. Скрининг был тот же. А задачи разные на кодинг.

В первый раз меня сбрили на техническом скрининге. Во второй я дошел до конца и не смотря на то, что на траблшутинге архитектуры я ответил по своим ощущениям на 4 из 5, мне отказали. И правильно сделали, так как там SRE, а это хоть и близко, но не то, чем я был готов заниматься. Второй раз пошёл из интереса на собес.

1️⃣ Технический скрининг
Им неважно, умеете ли в писать ямлы и в чем отличие Puppet от Ansible. Авторы собеса считают, что вы должны быть прежде всего прочитать Таненбаума и тогда всё остальное будет для вас как дом родной. Для чего в гайде по подготовке на собесу у них такие темы как K8s, IaC, CI/CD и прочее - загадка. Так как этих тем ни на одном из собесов и этапов не касались.

Зато спрашивают такие вопросы, как:
- Этапы загрузки ОС
- Какие сигналы в Linux знаете и что они делают
- По этапно как происходит TLS handshake.
- Планировщик ядра и ввода-вывода, алгоритмы планирования задач в Linux
- CoW зачем-то
- CAP и другие теоретические вопросы по БД
- DHCP по шагам как работает протокол

И другие вопросы, которые гуглятся, когда требуется. Чаще не требуется. Но так как спрашивают, то добавил их в DevOps Roadmap.

2️⃣ Live Coding
Дают 2-3 задачи по одной штуке. Время - 1 час. Нужно решить в онлайн редакторе с компилятором на любом языке. Проверяется мышление, а не знание языка и синтаксиса. Я выбрал Python, так как писал на нём.

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

Задачи на поиск и сортировку. Работа с циклами, использование рекурсии - это в основном. Могут спросить а можно ли решить эффективнее, чем вы реализовали.

Задачи по типу таких, как тут. Полезным может быть и гайд как решать алгоритмы от Хекслет.

Практикуйтесь на LeetCode, HackerRank.

Если хотите размяться в комментариях, то вот простая задача с другого собеса:

Дан массив чисел. Нужно вывести их со свёрткой.
Например, дано: 0 1 2 3 4 6 7 9 12 13
Нужно вывести: 0-4, 6-7, 9, 12-13

3️⃣ Troubleshooting
Есть приложение, состоит из бека, фронта, есть CDN, DNS настроен, немного других вводных.

Пришла жалоба:
Не открывается сайт - Получаем 504 gateway time out.
Что делать будем?

Ну и рассказываешь куда идёшь логи смотреть, как скорость измеряешь. Докопался, а там новое дно. Копаешь дальше в сторону бека, связи с базой, как базу ускорять будешь.

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

До SQL запросов тоже дойдёте, так что готовьте WHERE IN и на всякий JOIN.

Вариант задачи не единственный, можно крутануть по-разному, но в общем и целом звучит как описал.



Как вам такой формат собесов? Мне не нравится. Похожий у Яндекса мне встречался.
Please open Telegram to view this post
VIEW IN TELEGRAM
92🔥2🤔1🤝1
Аналог для Notion

Складывается ощущение, что его не существует.

Вот казалось бы очевидная и банальная вещь - при вставке ссылки автоматически подтягивать её Title, как это делает Notion. Что избавляет от необходимости вручную прописывать названия для каждого видео и статьи. Вставил ссылку и сразу видишь название материала.

Так вот никто так не умеет. Почти.

Пробовал: Obsidian, AFFiNE, Outline, Teamly, Weeek, Yonote, Slab, Buildin. Есть множество других для локального использования. Их не рассматриваю, так как нужно публично шарить страницы в интернете.

Не помню какие из этих инструментов умеют шарить, но не умеют включать эти страницы в индекс Google. Не то чтоб сильно надо, но полезно для продвижения.

Основная ставка была на Outline, и так как триалка облачной версии кончилась в июне, то потратил 6 часов, чтобы поставить его на свой сервер, собирая шишки с гайдов по установке. В итоге выяснил, что импортить из Notion мою карту он не умеет и выдает дичь по типу байт-кода, но что ещё хуже - не умеет преобразовывать ссылки. То есть даже Ctrl+C -> Ctrl+V не решит задачу.

Нашёл capacities.io полчаса назад. Умеет как надо преобразовывать ссылки, но не умеет в три колонки разделять страницу. А у меня продающая страница требует три колонки, чтобы симпатично было. Ну и может чего ещё не умеет, не успел проверить до конца. Главное, что нужно ждать неделю, чтобы опубликовать любую из страниц.

Если не найду аналога, то буду ждать 9 сентября, смотреть что станет с доступами. Быть может обратный прокси будет норм вариантом. Со своими особенностями, в теории. Не настраивал пока. Если не нарвусь на MITM, то показать контент получится в РФ без VPN по адресу edmiachkov.ru. Сейчас этот адрес стоит как редирект на Notion.

В общем и целом в раздумьях.

Может вы знаете облачное или self-hosted решение, которое (1) автоматически подтягивает Title ссылок с иконками страницы, (2) умеет минимум в две колонки в ширину, (3) позволяет шарить страницу в интернет, (4) умеет в спойлер текста (toggle в Notion)? Или, другими словами, второй Notion.
🤔8😢21
🔎 Сделал анализ РФ рынка для Стажёров DevOps ( Сентябрь 2024 )

#анализ_рынка

На рынке 39 вакансий
Из них только 21 действительно берут стажёров.

Но есть ложка дёгтя - из этих 21:
- 12 от Aston
- 3 от Неофлекс

Как бы поменьше чем 21, да?

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

☝️ А ещё как не нарваться на 1.5 года принудительных работ или 600к репараций, если всё же уйдешь раньше срока, на примере компании Aston.

Время на чтение - 15 минут.

Приятного вечера.

✏️ Стажёр DevOps | Честный анализ РФ рынка (Сентябрь 2024)

И эта же статья на LinkedIn ждёт ваших лайков.

💡 Подобные сделаю после и для остальных грейдов.

#devops #intern #стажёр #зарплаты
16🔥3👍1
Новости по Notion

Пространство осталось, страницы так же доступны, но не мог войти в аккаунт с VPN. Из другой страны получилось другу войти в мой акк.

Попробовал Тор, но в нем выключены куки, поэтому авторизация не проходила. Сам Notion об этом не сказал, но авторизация через Google акк показала эту проблему. Всем куки подавай.

Попробовал зайти через VPN ученика, так как у него всё работает. У меня тоже вошёл в акк!

Тогда я создал новую машину, там же, где и мой старый VPN и пустило. Видимо, Notion сохранил мой старый IP и по нему не пускал, но тогда почему пустило ученика в его акк, если он ничего не менял - не понятно пока. Сначала грешил на куки, что где-то локацию хранит но нет, их менять не пришлось. Облазил их все, не нашел инфы на которую мог бы опираться Notion, чтобы блочить логин в аккаунт.

Посмотрим через неделю как себя будет вести. Плашки об удалении как у других не висит. Страницы с консультациями и роадмапой доступны и без VPN.
🔥12🤔2👍1
#обновление_roadmap

Собрал для вас свежие обновления за неделю в Дорожной карте DevOps.

В этот раз их много, поэтому скриншотами. Удобнее посмотреть на самой карте в разделе Update Log.
🔥16
Привет, друзья!

Утонул в работе, поэтому давно ничего не постил. Расскажу последние новости и потом пост про вопросы по 🐳 Docker.

1) Сейчас у меня два ученика Junior-Middle уровня, которых веду на полное сопровождение до увеличения ЗП примерно в два раза. Целимся на 300-350к в рублях через полгода.

Со вторым учеником заканчиваем 5 часовой скрининг сегодня и после он приступит к изучению материалов.

2) Смонтировал заявку на участие в роли интервьюера на канале у Антона Назарова.

Точнее, канал его удалили, поэтому куда именно пойдет кроме сообщества на Бусти и в Телеге я не знаю.

Заявку выложил в доступ по ссылке на Youtube.

Если у вас HDR включен, то будьте осторожны! Я не знал, что нужно конвертнуть во что-то другое, чтобы при появлении белых скриншотов не вытекали глаза =)

3) Если хочется подсмотреть как выглядят учебные материалы для моих учеников, то в видео по ссылке выше попал кусочек на 0:45 минуте.

4) Собственно именно приведением учебных материалов для моих учеников к виду Вопрос -> Ответ -> Материалы для углублённого изучения и занимаюсь в последнее время.

Ранее это выглядело просто как набор ссылок, а теперь будет куда прогрессивнее.
9👍3👨‍💻1
Как показать, что шаришь за Docker 🐳 ?

#вопросы_собеседований

Чтобы быть готовым к вопросам со звездочкой и лучше понимать как устроен Docker.

1) Узнай когда лучше подходит VM, вместо контейнера.

Если кратко:
- Тяжелые приложения/Монолит
- Устаревшие приложения, для которых нет образа с поддерживаемой ОС
- Когда приложение не умеет работать внутри контейнера. Например, всё что написано на Java ниже версии 1.8u191, не умело нормально работать внутри контейнера, пока не добавили флаги типа -XX:+UseContainerSupport или -XX:+UseCGroupMemoryLimitForHeap и другие. Хотя даже эта версия еще не очень-то любит контейнера и я бы смотрел на всё что выше Java 10.
- Когда нужно и Linux и Windows, а контейнер ограничен ядром ОС. Поэтому на Linux не запустить Windows контейнер (да, уже и такие есть) и наоборот.
- Нужно больше гибкости в управлении ресурсами
- Не хочется усложнять жизнь дополнительными нюансами безопасности в контейнерах

Материал:
- https://www.youtube.com/watch?v=vuRgqnBsvCg

2) Как устроена файловая система контейнеров.

Она состоит из слоёв. И ситуёвина в том, что если на нижнем слое есть какой-то файл, а на верхнем слое сделали rm, то отображаться файл не будет в запущенном контейнере, НО физическое место он всё равно будет занимать, так как уже записан в нижнем слое.

❗️Поэтому обязательно подчищайте все кеши после RUN apt update

Материал:
- https://habr.com/ru/companies/slurm/articles/701950/

3) Виды сетевых драйверов в Docker и область их применения.

Знаешь только про дефолтный Bridge? Посмотри ссылки, там рассказано про None, Bridge, Host, Overlay, Macvlan, IPvlan.

Например, Overlay используется в Docker Swarm.

Материалы:
- https://www.youtube.com/watch?app=desktop&v=fBRgw5dyBd4
- https://habr.com/ru/articles/790212/

4) Не используй Docker-in-Docker (DIND)

Это небезопасно. Для сборки образов обрати внимание на Kaniko или Buildah. А для запуска контейнеров настрой rootless режим для Docker демона, если это возможно в конкретном случае. Ещё можно глянуть в сторону Podman, как rootless вариант докера по умолчанию. А ещё LXC контейнера есть, помните такие?

Материалы:
- https://habr.com/ru/articles/563040/
- https://habr.com/ru/articles/529814/

5) Как создать образ с нуля, не используя другой образ за основу.

- FROM scratch — чисто ядро Linux, подойдет запускать бинари или накидать своё виденье минимального образа.
- Debootstrap для образов на базе Debian
- А тут скрипты для сборки некоторых ОС с нуля от разрабов Docker.

Материалы:
- https://docs.docker.com/build/building/base-images/#create-a-minimal-base-image-using-scratch
- https://wiki.debian.org/Debootstrap
- https://github.com/moby/moby/tree/master/contrib

6) Лучшие практики при создании Dockerfile.

Основные я бы выделил:
- Multistage (этот пункт имеет нюанс, знаете какой? Из-за этого я его не использую обычно)
- Минимальный образ
- Устанавливать в образ только то, что нужно
- Один процесс - один контейнер
- Использовать кеш при сборке
- Не использовать версию тега :latest
- Комбинировать установку пакетов в один RUN, но при этом не надо вообще всё пихать в один RUN! Подумайте о кеше.
- Используйте CMD в режиме exec

Материал:
- https://docs.docker.com/build/building/best-practices/

7) Отличие между COPYADD, ARGENV и ENTRYPOINTCMD.

📚А это вам ДЗ - найдите ответ сами 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍41
#обновление_roadmap

Собрал для вас свежие обновления за неделю в Дорожной карте DevOps из раздела Update Log
👍12🔥2
Идеальный CI/CD Pipeline

#вопросы_собеседований

Идеального Pipeline не существует, но это хороший вопрос, чтобы порассуждать и узнать глубину ваших знаний. Вот как ответил бы я.

«Идеальный» Pipeline включает:
🔎 Code scanning
🏗️ Code build & Containerization + 🧪 Unit tests
🔒 Image scanning
🔨 Integration/Regression/End-to-End Tests
🏁 Deployment
🚀 Performance Tests


🔎 Code scanning
1) Проверяем соответствие кода правилам и ошибкам синтаксиса с помощью Linter.

eslint, pylint, staticcheck, hadolint, shellcheck.

2) Проверяем качество и безопасность кода (CWE).

SonarQube, Veracode SAST, aikido SAST, CodeQL.

Renovate или Dependabot хорошо дополняют эту секцию, если хочется получать оповещения или даже почти автоматическое обновление зависимостей в коде (создаётся MR с изменениями).

*Вероятно, будет лучше получать оповещения и вручную обновлять зависимости по необходимости.

*Подробнее про Renovate.

🏗️ Code build & Containerization
Здесь самое время задуматься над версионированием сборки.

Модели версионирования:
- SemVer (пример с gitflow);
- CalVer
- romver (используется редко)
- Номер сборки
- datetime, timestamp

Собирать Docker-образ можем с помощью:
- Kaniko
- Buildah

🧪 Unit tests
Выполняется на этапе сборки. Проверяем отдельные модули или функции приложения.

Pytest, Junit, Jest.

🔒 Image scanning
Анализ пакетов приложения и пакетов ОС в Docker-образе на уязвимости по базе CVE.

Grype ,Trivy — интегрируются в Pipeline. Тем самым можем остановить Pipeline, если образ не удовлетворяет требованиям безопаности.

Harbor, Quay.io, Nexus, Artifactory - хранилища артефактов, с встроенными проверками. Лучше подходят для регулярных проверок по расписанию, так как никогда не знаешь в какой день проснешься, а у тебя в Log4j появилась уязвимость Log4Shell (CVE-2021-44228). Статья на тему

🔨 Integration/Regression/End-to-End (E2E) Tests
Чтобы тесты можно было встроить в CI/CD — для них нужно поднимать временные окружения.

Integration Tests — Проверяют интеграцию с другими частями приложениями. Могут выполняться на этапе сборки, если приложение монолитное.

Selenium, Selenoid (требует DIND!).

Regression Tests — Выполняются, чтобы убедиться, что изменения в коде не вызвали непреднамеренные ошибки в уже существующем функционале. По сути, автоматизированные ручные тесты.

Selenium, Playwright, TestComplete.

E2E Tests — Проверка всей системы в целом, от начала до конца, с точки зрения пользователя. Можно сказать, что это самые полные тесты и могут заменять все остальные на этапе.

Selenium, Playwright, TestComplete, Cypress.

🏁 Deployment
Стадия для развертывания приложения в различных окружениях, после прохождения тестов.

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

*Для stage или Pre-Production желательно иметь обезличенную версию БД с Production, чтобы убедиться, что на Production всё будет работать как ожидается.

Кстати, обязательно создайте инструкцию и протестируйте как вы будете откатывать изменения на Production, если что-то пойдет не так после выкатки или во время её.

Helm, helmfile, ArgoCD или Flux (примеры GitOps подхода), kubectl/kustomize.

🚀 Performance Tests
Данный вид тестирования имеет смысл проводить на stage/pre-production окружениях. С тем условием, что ресурсные мощности на нем такие же, как в Production.

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

jmeter, gatling, locust k6.io, Artillery.io, yandex-tank.



Доп. материал по теме:
- https://habr.com/ru/companies/rabota/articles/560922/

*Немного отличается от описанного мной Pipeline, но что-то способен раскрыть подробнее.

Может я что-то упустил? Дополняйте в комментариях, обсудим.
🔥9👍3