DevOps | YeaHub
683 subscribers
263 photos
53 videos
1 file
511 links
Теория, подготовка к интервью и курсы для DevOps специалистов

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
Forwarded from YeaHub
🚀 YeaHub развивается

Февраль и март выдались для нас непростыми. Мы прошли через сложную миграцию и разделили проект на два отдельных продукта.

Теперь у нас есть:
yeahub.ru — публичная SEO-ориентированная часть на Next.js с быстрым серверным рендерингом
app.yeahub.ru — основное приложение: личный кабинет пользователя со статистикой, прогрессом и аналитикой

🔥 Лайвкодинг — наконец-то готов

Мы серьезно прокачали сервис лайвкодинга:
— добавили привязку задач к коллекциям (собеседованиям)
— сделали связь с компаниями
— теперь можно готовиться по задачам с реальных собеседований

Уже доступны задачи из: Сбер, Яндекс, Авито, VK, Ozon, Т-Банк и других компаний.

📌 Сейчас добавлено ~100 задач.

Да, это меньше, чем планировали — но пришлось сделать шаг назад, чтобы сделать десять вперед.

Мы полностью переработали:
— шаблон задач
— систему тесткейсов

Ранее была допущена ошибка, из-за которой пришлось вручную исправить 80+ задач 😢

Но теперь база готова к масштабированию — и мы можем быстро и правильно наполнять её дальше.

📈 Что дальше по лайвкодингу

Мы будем активно развивать этот сервис.
Это не только про собеседования — это инструмент для роста и прокачки.
Планируется много новых фич.

📅 Регулярные обновления контента

Мы выстроили процесс: каждую неделю 4–8 собеседований, 6–10 задач
И каждое обновление будем анонсировать, чтобы вы всегда были в курсе.

🛠 Сейчас в разработке (2 ключевых сервиса)

Агрегатор вакансий + платформа размещения вакансий
ATS-оптимизация резюме
— Бэкенд почти готов.
— Идёт дизайн.
— Фронтенд начнем совсем скоро.

🎯 Цель — выпустить оба сервиса в бэта до лета.

🧠 Новая структура обучения

Раньше было: Навык → Вопрос
Теперь: Навык → Тема → Вопрос

Это сильно упрощает обучение.

Теперь можно: готовиться точечно к собеседованиям или системно изучать темы

💻 Мы — open source

Мы не бросаем слов на ветер. Мы делаем.

Код проекта открыт https://github.com/YeaHubTeam:
— фронтенд
— мобильные приложения
— backend на Python (решили новый сервис делать публично, для новичков)
— автотесты

Это open source платформа, где новички могут учиться и смотреть на реальные практики.

❤️ Поддержка

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

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

У нас полностью открытый код, и это не просто слова. Вы в любой момент можете зайти и посмотреть активность, коммиты и то, как проект развивается каждый день.

По подписке: сейчас стоимость — 800 рублей за месяц и 1800 рублей за 3 месяца. Это уже ниже, чем у аналогичных сервисов. При этом важно понимать — после выхода новых сервисов (агрегатор вакансий и ATS для резюме) цена будет пересмотрена.

Если хотите зафиксировать текущую стоимость — лучше сделать это сейчас:
https://app.yeahub.ru/settings#select-tariff

Мы строим продукт.
Мы двигаемся вперёд.
И мы делаем IT снова великим.
💪🚀✊🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Собес #transaction #acid #consistency
🤔 Почему критичные операции в backend-системах должны выполняться в рамках транзакций базы данных?

💬 Кратко:

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

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
1
#book #book
📚 Непрерывное развёртывание ПО. Джез Хамбл, Дэвид Фарли

Тестирование ПО нередко проходит болезненно и не так быстро, как нам бы того хотелось. В «Непрерывном развёртывании ПО» можно прочитать о новейших подходах к разработке, сборке и установке программного обеспечения без потерь для команды, которая также получает новые возможности для обучения в рамках проектов вне зависимости от их сложности.

Перейти к материалу

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#Собес #sensor #resource
🤔 Какие проблемы с ресурсами могут возникать при неправильном использовании сенсоров?

💬 Кратко:

При неправильном использовании сенсоры могут занимать worker-ы на долгое время. Это приводит к нехватке слотов для реальных задач. Scheduler начинает работать медленнее, а DAG-и встают в очередь. Также растёт нагрузка на внешние системы из-за частых проверок. В итоге Airflow становится нестабильным.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
🥰1
#Собес #operator #task
🤔 Что такое оператор в Airflow и какую роль он выполняет?

💬 Кратко:

Оператор в Airflow — это шаблон для выполнения конкретного действия. Он описывает, что именно нужно сделать: запустить Python-код, выполнить SQL или вызвать API. Задача создаётся на основе оператора внутри DAG. Один оператор можно использовать много раз. Оператор не управляет порядком выполнения — этим занимается DAG.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#Собес #isolation #level
🤔 Какой уровень изоляции используется в PostgreSQL по умолчанию?

💬 Кратко:

В PostgreSQL по умолчанию используется уровень изоляции Read Committed. Это означает, что транзакция видит только зафиксированные данные. Каждое SQL-выражение внутри транзакции видит актуальное состояние данных на момент своего выполнения. Грязные чтения не допускаются. Такой уровень обеспечивает хороший баланс между корректностью и производительностью.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#Собес #optimization #performance #caching
🤔 Как работает оптимизация в серверных приложениях?

💬 Кратко:

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

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#Собес #coverage #test #scalability
🤔 Почему покрытие тестами важно при росте команды

💬 Кратко:

При росте команды увеличивается количество изменений и рисков. Автотесты позволяют быстро выявлять поломки. Они уменьшают зависимость от конкретных разработчиков. Тесты упрощают онбординг новых участников. Без тестов масштабирование замедляется.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
🔥1
#Собес #gitignore
🤔 Что делает файл .gitignore?

💬 Кратко:

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

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
💩2🤡1🥴1
#article #gitlab #cicd
📚 Как выжать максимум метрик из GitLab CI/CD

Статья объясняет, как использовать Apache DevLake для сбора и анализа метрик из GitLab CI/CD (а также других DevOps-источников), преобразуя данные через несколько слоёв (Raw→Tool→Domain) и строя собственные дашборды (например, по jobs, окружениям и success-rate), чтобы глубже мониторить эффективность пайплайнов и процессы разработки.

Перейти к материалу

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#Собес #ci/cd #jenkins #gitlab
🤔 Какие инструменты CI/CD можно использовать для автоматизации сборки и деплоя приложений?

💬 Кратко:

Для CI/CD чаще всего используют инструменты вроде Jenkins, GitLab CI, GitHub Actions, CircleCI и TeamCity. Они помогают автоматизировать процесс сборки, тестирования и доставки приложения, снижая количество ошибок и ускоряя выпуск. Эти системы интегрируются с репозиториями кода и позволяют выстраивать пайплайны.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#Собес #SPA #dynamic_configuration #environment_variables
🤔 Какие способы существуют для динамической конфигурации SPA при старте?

💬 Кратко:
Динамическая конфигурация позволяет менять настройки приложения (API-адреса, ключи) без пересборки. Основные способы: использование переменных окружения, загрузка конфигурационного JSON-файла с сервера и передача параметров через глобальные переменные в window. Это делает приложение переносимым между разными средами (разработка, тестирование, продакшн).

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#Собес #api #system
🤔 Существуют ли системы без API?

💬 Кратко:

Да, системы без API существуют, но они крайне редки в современной разработке. Это могут быть простые изолированные программы (например, калькулятор), монолитные приложения, которые не предназначены для интеграции с другими системами, или устаревшее (legacy) ПО, написанное без учета необходимости внешнего взаимодействия

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#article #docker #production
📚 Как работает DNS в Linux. Часть 1: от getaddrinfo до resolv.conf

Статья объясняет, как в Linux происходит разрешение доменных имён на низком уровне — от вызова getaddrinfo() до обработки конфигурации resolv.conf. В ней разбирается, что за механизм стоит за переводом имени в IP: как стандартная библиотека C (glibc или musl) через NSS и плагины (например, для /etc/hosts или DNS) обрабатывает запросы, как настраивается порядок источников в /etc/nsswitch.conf, и как resolv.conf влияет на запросы к DNS-серверу. Также обсуждаются различия в реализации (glibc vs musl) и упоминается, что некоторые языки/программы могут использовать собственные резолверы.

Перейти к материалу

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#Собес #ci/cd #pipeline #testing
🤔 Каковы ключевые компоненты CI/CD-пайплайна?

💬 Кратко:

Основные компоненты CI/CD:

- Source Control — управление исходным кодом (Git, SVN).
- Build Automation — автоматическая сборка кода.
- Testing — запуск автоматизированных тестов.
- Deployment Automation — развертывание кода в тестовые и продакшн-среды.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#Собес #profiling #performance #debug
🤔 Что такое профилирование и как его использовать в Go?

💬 Кратко:

Профилирование — это процесс измерения производительности кода. В Go это делается через net/http/pprof, который позволяет собирать метрики CPU, памяти, блокировок и т.д.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#article #vps
📚 Гайд по первоначальной настройке VPS

Статья содержит пошаговую инструкцию по базовой настройке нового VPS на Debian/Ubuntu: от подключения по SSH, создания пользователя, настройки SSH-ключей и отключения паролей до установки фаервола (ufw), смены SSH-порта, установки Docker и базовых утилит для безопасной и удобной работы сервера.

Перейти к материалу

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
👍1
#Собес #monitoring #alerting #incident_management
🤔 Какие подходы используются для алертинга в системах?

💬 Кратко:
Алертинг — это процесс автоматического уведомления команды о проблемах в системе. Основные подходы включают мониторинг метрик, логов и трассировок. Ключевая идея — настраивать алерты на реальные проблемы, влияющие на пользователей, а не на каждое колебание метрики. Для этого используют SLO и SLI, чтобы определять значимые пороги. Также важно избегать 'шума' и применять группировку и эскалацию оповещений.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#Собес #Docker_Compose #container_update #docker-compose_up
🤔 Что происходит при обновлении приложения через Docker Compose?

💬 Кратко:
При обновлении приложения через Docker Compose команда `docker-compose up` с флагом `--build` пересобирает образы, указанные в конфигурации. Docker Compose останавливает старые контейнеры и запускает новые с обновлёнными образами. По умолчанию это создаёт простой downtime, так как старый контейнер останавливается до запуска нового. Для минимизации простоя можно использовать стратегии, описанные в конфигурации, или оркестраторы вроде Docker Swarm.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа
#Собес #deadlock #transaction #index
🤔 Какие причины могут привести к возникновению deadlock при конкурентных запросах к базе данных и как их предотвращать?

💬 Кратко:

Deadlock появляется, когда два запроса блокируют ресурсы друг друга в пересекающемся порядке: один заблокировал строку A и ждёт строку B, а другой — наоборот. Причины: несогласованный порядок обновлений, долгие транзакции, отсутствие индексов, смешивание SELECT FOR UPDATE и UPDATE на разных путях. Чтобы избегать deadlock: соблюдать единый порядок обновления сущностей, делать транзакции короткими, использовать правильные индексы, избегать сканирования больших таблиц под блокировками и по возможности минимизировать конкурирующие UPDATE по одним и тем же строкам.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
Анонсы → канал
Комьюнити → чат
База задач и вопросов → платформа