😤 «Я ненавижу GitHub Actions всей душой»
Разработчик написал эмоциональный текст о том, почему GitHub Actions — это боль. Переводим и разбираем аргументы.
Главные претензии:
1. YAML-ад:
Выглядит просто? Но здесь довольно просто докинуть багов:
• Опечатка в node-version → silent fail
• Забыл @v3 в actions → неожиданная версия
• Отступы не там → непонятная ошибка
2. Дебаг — это пытка
В других CI можно:
• Подключиться по SSH к раннеру
• Запустить локально (GitLab Runner)
• Посмотреть полные логи
В GitHub Actions:
• Логи обрезаны
• Нельзя зайти на раннер
• Локальный запуск через костыли (act)
• Цикл «коммит → push → wait → fail» занимает минуты
3. Секреты — русская рулетка:
Проблемы:
• Секрет не установлен? Пустая строка
• Опечатка в имени? Пустая строка
• Секрет в форке? Не работает
• Дебажить? Удачи, secrets маскируются в логах
4. Кеширование — лотерея:
Проблемы:
• Кеш иногда не восстанавливается
• Иногда восстанавливается битый кеш
• Лимит 10 GB → старые кеши удаляются
5. Версии actions — dependency hell:
• Нет lock-файла для actions
• Breaking changes в минорных версиях
• @main — может сломаться завтра
• @sha — нечитаемо и надо обновлять вручную
💬 Как у вас с GitHub Actions? Всё спокойно или тоже есть дровишки в огонь?
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии
Разработчик написал эмоциональный текст о том, почему GitHub Actions — это боль. Переводим и разбираем аргументы.
Главные претензии:
1. YAML-ад:
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: '18'
- run: npm ci
- run: npm test
Выглядит просто? Но здесь довольно просто докинуть багов:
• Опечатка в node-version → silent fail
• Забыл @v3 в actions → неожиданная версия
• Отступы не там → непонятная ошибка
2. Дебаг — это пытка
В других CI можно:
• Подключиться по SSH к раннеру
• Запустить локально (GitLab Runner)
• Посмотреть полные логи
В GitHub Actions:
• Логи обрезаны
• Нельзя зайти на раннер
• Локальный запуск через костыли (act)
• Цикл «коммит → push → wait → fail» занимает минуты
3. Секреты — русская рулетка:
- name: Deploy
env:
API_KEY: ${{ secrets.API_KEY }}
run: ./deploy.sh
Проблемы:
• Секрет не установлен? Пустая строка
• Опечатка в имени? Пустая строка
• Секрет в форке? Не работает
• Дебажить? Удачи, secrets маскируются в логах
4. Кеширование — лотерея:
- name: Cache node modules
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
Проблемы:
• Кеш иногда не восстанавливается
• Иногда восстанавливается битый кеш
• Лимит 10 GB → старые кеши удаляются
5. Версии actions — dependency hell:
- uses: actions/checkout@v3 # Какая v3? v3.0? v3.5?
- uses: actions/setup-node@v3 # Deprecated через месяц
- uses: docker/build-push-action@v4 # Ломает старые workflow
• Нет lock-файла для actions
• Breaking changes в минорных версиях
• @main — может сломаться завтра
• @sha — нечитаемо и надо обновлять вручную
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
💯3
«Этот манёвр будет стоить нам 51 год...»
DevOps — это не только
Успейте забрать обучение в Proglib Academy по ценам 2025 года:
— Разработка ИИ-агентов
— Математика для разработки AI-моделей
— ML для старта в Data Science
— Математика для Data Science
— Специалист по ИИ
— Алгоритмы и структуры данных
— Программирование на Python
— Основы IT для непрограммистов
— Архитектуры и шаблоны проектирования
Выбрать направление
⚠️ Стоимость изменится 19 января
DevOps — это не только
YAML-конфиги, но и умение автоматизировать процессы с помощью Python и понимание архитектуры систем. Рынок требует всё больше компетенций в ИИ.Успейте забрать обучение в Proglib Academy по ценам 2025 года:
— Разработка ИИ-агентов
— Математика для разработки AI-моделей
— ML для старта в Data Science
— Математика для Data Science
— Специалист по ИИ
— Алгоритмы и структуры данных
— Программирование на Python
— Основы IT для непрограммистов
— Архитектуры и шаблоны проектирования
Выбрать направление
⚠️ Стоимость изменится 19 января
🏷 Теги и лейблы в Terraform как привычка
Ресурсы без тегов почти всегда превращаются в невидимые расходы и в проблемы с управлением. Если навести порядок в тегах прямо в Terraform модулях, инфраструктуру проще искать, считать и контролировать.
Лучше начинать со схемы на уровне модуля. У каждого модуля должен быть входной
Пример:
Последний шаг это запрет на ресурсы без обязательных тегов. Это можно сделать через policy as code и проверки, чтобы не разгребать мусор уже в проде.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_prompt
Ресурсы без тегов почти всегда превращаются в невидимые расходы и в проблемы с управлением. Если навести порядок в тегах прямо в Terraform модулях, инфраструктуру проще искать, считать и контролировать.
Лучше начинать со схемы на уровне модуля. У каждого модуля должен быть входной
map для tags или labels и этот map должен применяться ко всем ресурсам, которые это поддерживают. Идея простая. В модуле есть базовые поля вроде окружения и владельца, а сверху можно передать дополнительные теги и объединить их через мерж.Пример:
variable "environment" {
type = string
}
variable "owner" {
type = string
}
variable "tags" {
type = map(string)
denoscription = "Общие теги для всех ресурсов"
default = {}
}
locals {
common_tags = merge(
{
env = var.environment
owner = var.owner
terraform = "true"
},
var.tags
)
}
resource "proglib_bucket" "this" {
bucket = var.owner
tags = local.common_tags
}Последний шаг это запрет на ресурсы без обязательных тегов. Это можно сделать через policy as code и проверки, чтобы не разгребать мусор уже в проде.
📍 Навигация: Вакансии • Задачи • Собесы
#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
systemd-cgls — это утилита для отображения иерархии control groups в системах на базе systemd. Она показывает древовидную структуру всех процессов, сгруппированных по юнитам systemd.
В отличие от классического ps или top, systemd-cgls показывает не просто список процессов, а их организационную структуру: какие процессы принадлежат каким службам, сессиям пользователей и слайсам системы.
Просто запустите без аргументов:
systemd-cgls
Вы увидите дерево, разделённое на слайсы:
•
system.slice — системные службы•
user.slice — пользовательские сессии•
machine.slice — виртуальные машины и контейнерыПоказать только конкретный юнит:
systemd-cgls /system.slice/nginx.service
Показать процессы определённого пользователя:
systemd-cgls /user.slice/user-1000.slice
📍 Навигация: Вакансии • Задачи • Собесы
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
Если в контейнере приложение запускается не от root, то права на файлы часто ломают сборку или запуск. Вместо отдельного
RUN chown можно сразу копировать файлы с нужным владельцем через COPY с флагом chown.Простой пример для приложения, которое запускается от appuser:
FROM alpine:3.20
RUN addgroup -S app && adduser -S -G app appuser
WORKDIR /app
COPY --chown=appuser:app . /app
USER appuser
CMD ["./app"]
Если в образе нет
/etc/passwd или /etc/group, и указать имя пользователя или группы, сборка может упасть, поэтому для минимальных образов иногда проще использовать числовые UID и GID.📍 Навигация: Вакансии • Задачи • Собесы
#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
🗞 Первая рабочая неделя
Собрали для вас новости и материалы прошедшей недели.
— Трудоголики снова в моде
— Свежий Wine
— Когда ls уже не впечатляет
— Linux Mint 22.3 Zena
— SSD за грамм стали дороже золота
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#дайджест_недели
Собрали для вас новости и материалы прошедшей недели.
— Трудоголики снова в моде
— Свежий Wine
— Когда ls уже не впечатляет
— Linux Mint 22.3 Zena
— SSD за грамм стали дороже золота
📍 Навигация: Вакансии • Задачи • Собесы
#дайджест_недели
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
Контейнер может продолжать работать, даже если внутри уже все сломалось.
HEALTHCHECK позволяет Docker периодически проверять состояние и выставлять статус healthy или unhealthy.Самый простой вариант это дергать внутренний эндпоинт и падать по ненулевому коду, если ответ плохой. Docker поддерживает параметры interval, timeout и retries, чтобы настроить частоту и порог ошибок.
Пример:
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
CMD curl -f http://localhost:8080/health || exit 1
Команда может быть любой, главное чтобы успешный результат был exit 0, а неуспешный exit 1.
📍 Навигация: Вакансии • Задачи • Собесы
#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
price_update: scheduled for Jan 20Завтра мы деплоим повышение цен на все программы. Успейте сегодня нажать
apply, пока старые условия не превратились в legacy.Настроить пайплайн саморазвития
🥱1
Let’s Encrypt добавили короткоживущие сертификаты со сроком 160 часов. Это чуть больше шести дней. Чем меньше срок, тем меньше ущерб, если ключ утек.
Подключение сделано как опция. В ACME клиенте нужно выбрать профиль shortlived, и дальше все упирается в автоматизацию выпуска и продления. Если продление не автоматизировано, такой срок будет раздражать и ломать процессы.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2🤔2
70% работодателей выбирают кандидатов с hands-on проектами. В DevOps это особенно критично — здесь нужно доказать, что вы умеете автоматизировать, масштабировать и решать задачи. Портфолио — это ваш главный козырь.
Что включить:
🔹 CI/CD пайплайн. Jenkins, GitHub Actions, GitLab CI или CircleCI. Покажите автоматическую сборку, тестирование, деплой с rollback и уведомлениями.
🔹 Infrastructure as Code. Terraform, CloudFormation или Ansible. Разверните веб-приложение с версионируемой инфраструктурой в облаке.
🔹 Контейнеризация. Docker + Kubernetes или Docker Swarm. Контейнеризуйте приложение и разверните его с оркестрацией.
🔹 Мониторинг и логирование. Prometheus + Grafana или ELK stack. Настройте систему отслеживания и алертов в реальном времени.
🔹 Автоматизация безопасности. Интеграция сканирования уязвимостей в пайплайн или автоматизация compliance-проверок.
Где брать идеи:
• Изучите вакансии — воссоздайте описанное окружение
• Автоматизируйте личный проект, например, деплой блога через CI/CD)
• Контрибьютьт в open-source инфраструктурные проекты
• Используйте free tier AWS/Azure/GCP для экспериментов
• Участвуйте в хакатонах и челленджах
Как оформить:
📍 Навигация: Вакансии • Задачи • Собесы
#холиварня
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
ChaosBSD — форк FreeBSD, который существует по одной простой причине: upstream не может и не должен принимать сломанные драйверы, полуработающее железо, вендорский мусор или спекулятивные хаки.
Иными словами это лаборатория для издевательств над железом или полигон для разработки драйверов: портирование, реверс-инжиниринг, clean-room реализации.
Идеальный проект для тех, кто хочет поэкспериментировать с диким железом, не ломая прод.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM