Всем привет!👋
Нам очень важно, чтобы наши курсы были полезны для вас. Хотим двигаться в правильном направлении - а для этого нужна ваша обратная связь! 👇
📝 Просим пройти вас небольшой опрос из 4 вопросов - это займёт не больше 2-3 минут.
Самый главный для нас - вопрос №4. Именно там мы ждём ваших идей, пожеланий. Помогите нам стать лучше! 💡
🔗 Ссылка на опрос
Спасибо, что развиваете Rebrain вместе с нами! ❤️
Нам очень важно, чтобы наши курсы были полезны для вас. Хотим двигаться в правильном направлении - а для этого нужна ваша обратная связь! 👇
📝 Просим пройти вас небольшой опрос из 4 вопросов - это займёт не больше 2-3 минут.
Самый главный для нас - вопрос №4. Именно там мы ждём ваших идей, пожеланий. Помогите нам стать лучше! 💡
🔗 Ссылка на опрос
Спасибо, что развиваете Rebrain вместе с нами! ❤️
❤9
📨 Очереди сообщений: Погружение в RabbitMQ и Kafka для обработки событий
Синхронные HTTP-вызовы связывают микросервисы в жесткие цепочки. В пиковые нагрузки достаточно сбоя в одном узле (например, в сервисе оплаты), чтобы по цепочке таймаутов упало всё приложение.
Асинхронная коммуникация через брокеры сообщений разрывает эту зависимость: сервис заказов быстро принимает запрос клиента, а фоновые обработчики забирают задачи из очереди по мере готовности.
🐰 RabbitMQ: гибкая маршрутизация
RabbitMQ — классический брокер с развитой маршрутизацией (`direct`, topic, fanout, `headers`) и поддержкой DLQ (dead letter queues). Работает по модели доставки «как минимум один раз» (*at-least-once*).
Пример продюсера (Go, `PublishWithContext` + publisher confirms):
Пример консьюмера (Go, ручное подтверждение):
Синхронные HTTP-вызовы связывают микросервисы в жесткие цепочки. В пиковые нагрузки достаточно сбоя в одном узле (например, в сервисе оплаты), чтобы по цепочке таймаутов упало всё приложение.
Асинхронная коммуникация через брокеры сообщений разрывает эту зависимость: сервис заказов быстро принимает запрос клиента, а фоновые обработчики забирают задачи из очереди по мере готовности.
🐰 RabbitMQ: гибкая маршрутизация
RabbitMQ — классический брокер с развитой маршрутизацией (`direct`, topic, fanout, `headers`) и поддержкой DLQ (dead letter queues). Работает по модели доставки «как минимум один раз» (*at-least-once*).
Пример продюсера (Go, `PublishWithContext` + publisher confirms):
package main
import (
"context"
"log"
"time"
"github.com/rabbitmq/amqp091-go"
)
func main() {
// Подключаемся к RabbitMQ
conn, err := amqp091.Dial("amqp://guest:guest@localhost:5672/")
if err != nil {
log.Fatal(err)
}
defer conn.Close()
ch, err := conn.Channel()
if err != nil {
log.Fatal(err)
}
defer ch.Close()
// Для критичных данных в продакшене используйте реплицируемую quorum queue.
// Этот сокращённый пример объявляет обычную durable-очередь.
q, err := ch.QueueDeclare(
"order_queue", // name
true, // durable
false, // delete when unused
false, // exclusive
false, // no-wait
nil, // arguments
)
if err != nil {
log.Fatal(err)
}
body := `{"order_id": 12345, "user_id": 678, "amount": 5000}`
// Создаём контекст для отправки
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
// Включаем publisher confirms: persistent-флага и durable-очереди недостаточно,
// чтобы продюсер узнал, принял ли брокер сообщение.
if err := ch.Confirm(false); err != nil {
log.Fatal(err)
}
confirmation, err := ch.PublishWithDeferredConfirmWithContext(ctx,
"", // exchange
q.Name, // routing key
false, // маршрут - заранее объявленная очередь
false, // immediate
amqp091.Publishing{
ContentType: "application/json",
Body: []byte(body),
DeliveryMode: amqp091.Persistent,
})
if err != nil {
log.Fatal(err)
}
acked, err := confirmation.WaitContext(ctx)
if err != nil {
log.Fatal(err)
}
if !acked {
log.Fatal("broker rejected the message")
}
log.Printf("[x] Confirmed: %s", body)
}
Пример консьюмера (Go, ручное подтверждение):
package main
import (
"log"
"github.com/rabbitmq/amqp091-go"
)
func main() {
conn, err := amqp091.Dial("amqp://guest:guest@localhost:5672/")
if err != nil {
log.Fatal(err)
}
defer conn.Close()
ch, err := conn.Channel()
if err != nil {
log.Fatal(err)
}
defer ch.Close()
q, err := ch.QueueDeclare(
"order_queue",
true,
false,
false,
false,
nil,
)
if err != nil {
log.Fatal(err)
}
msgs, err := ch.Consume(
q.Name,
"", // consumer tag
false, // auto-ack (false - включаем ручное подтверждение)
false, // exclusive
false, // no-local
false, // no-wait
nil, // args
)
if err != nil {
log.Fatal(err)
}
forever := make(chan struct{})
go func() {
for d := range msgs {
log.Printf("[x] Received: %s", d.Body)
// Обработка сообщения
if err := processOrder(d.Body); err == nil {
d.Ack(false) // Подтверждаем успешную обработку
} else {
log.Printf("[!] Error processing order: %v", err)
// Не делайте бесконечный немедленный requeue: это создаёт горячий цикл.
// В продакшене направляйте сообщение в retry-очередь с задержкой,
// лимитом попыток и последующим переводом в DLQ.
d.Nack(false, false)
}
}
}()
log.Printf("[*] Waiting for messages. To exit press CTRL+C")
<-forever
}
// Заглушка для демонстрации бизнес-логики обработки заказа
func processOrder(body []byte) error {
return nil
}
GitHub
GitHub - rabbitmq/amqp091-go: An AMQP 0-9-1 Go client maintained by the RabbitMQ team. Originally by @streadway: `streadway/amqp`
An AMQP 0-9-1 Go client maintained by the RabbitMQ team. Originally by @streadway: `streadway/amqp` - rabbitmq/amqp091-go
👍5❤1
📌 Ключевой момент: при auto-ack: false брокер считает доставку успешной только после d.Ack(false). При сбое или обрыве связи происходит повторная доставка, поэтому обработчик обязателен должен быть идёмпотентным.
🚀 Kafka: распределённый журнал событий
Kafka — это распределённый commit log с долговечным хранением данных (retention). Топики разделены на партиции (порядок строго гарантирован только внутри одной партиции), а *consumer groups* позволяют параллельно масштабировать чтение.
Пример продюсера (Go, IBM/sarama):
📌 Ключевой момент: WaitForAll ждёт ответа от всех синхронных реплик (ISR). Настройте min.insync.replicas (например, 2 при `replication.factor=3`), чтобы избежать потери данных при отказе одной из реплик.
⚖️ Архитектурный выбор: Что выбрать?
🔹 RabbitMQ — для сложной маршрутизации и точечных задач (обработка заказов, фоновые задачи, отправка писем).
🔹 Kafka — для высокой пропускной способности, логов, аналитики, потоковой обработки и сценариев, где необходимо повторное чтение истории.
🛠 Чек-лист по внедрению асинхронности:
1. Найдите синхронные узлы: Цепочки из 3+ HTTP-вызовов — первые кандидаты на перенос в очередь.
2. Защитите данные (RabbitMQ): Используйте *quorum queues*, *persistent*-сообщения и *publisher confirms*.
3. Обрабатывайте ошибки: Используйте ретраи с экспоненциальной задержкой (джиттером) и уводите неисправимые сообщения в DLQ. Избегайте бесконечных немедленных requeue.
4. Обеспечьте идёмпотентность: Из-за дублирования сетевых пакетов передавайте UUID события и проверяйте по БД/Redis, обрабатывалось ли оно ранее.
5. Мониторьте метрики: Для RabbitMQ отслеживайте *ready/unacked messages*; для Kafka — *consumer lag* и состояние ISR.
🎓 Хотите освоить брокеры сообщений на практике? Открывайте 🔥бесплатный демодоступ🔥:
• RabbitMQ — маршрутизация, кластеризация, DLQ и мониторинг.
• Kafka — партиционирование, consumer groups и тюнинг брокеров.
• Docker — деплой брокеров через docker-compose.
В демодоступе развёрнута полноценная боевая среда. Приходите!
🚀 Kafka: распределённый журнал событий
Kafka — это распределённый commit log с долговечным хранением данных (retention). Топики разделены на партиции (порядок строго гарантирован только внутри одной партиции), а *consumer groups* позволяют параллельно масштабировать чтение.
Пример продюсера (Go, IBM/sarama):
package main
import (
"fmt"
"log"
"github.com/IBM/sarama"
)
func main() {
config := sarama.NewConfig()
config.Producer.RequiredAcks = sarama.WaitForAll // Ждём подтверждения от всех синхронных реплик (ISR)
config.Producer.Retry.Max = 5
config.Producer.Return.Successes = true
// Инициализируем синхронного продюсера
producer, err := sarama.NewSyncProducer([]string{"localhost:9092"}, config)
if err != nil {
log.Fatal(err)
}
defer producer.Close()
msg := &sarama.ProducerMessage{
Topic: "user-events",
Value: sarama.StringEncoder(`{"event": "login", "user_id": 123}`),
}
partition, offset, err := producer.SendMessage(msg)
if err != nil {
log.Fatal(err)
}
fmt.Printf("[x] Sent to partition %d at offset %d\n", partition, offset)
}
📌 Ключевой момент: WaitForAll ждёт ответа от всех синхронных реплик (ISR). Настройте min.insync.replicas (например, 2 при `replication.factor=3`), чтобы избежать потери данных при отказе одной из реплик.
⚖️ Архитектурный выбор: Что выбрать?
🔹 RabbitMQ — для сложной маршрутизации и точечных задач (обработка заказов, фоновые задачи, отправка писем).
🔹 Kafka — для высокой пропускной способности, логов, аналитики, потоковой обработки и сценариев, где необходимо повторное чтение истории.
🛠 Чек-лист по внедрению асинхронности:
1. Найдите синхронные узлы: Цепочки из 3+ HTTP-вызовов — первые кандидаты на перенос в очередь.
2. Защитите данные (RabbitMQ): Используйте *quorum queues*, *persistent*-сообщения и *publisher confirms*.
3. Обрабатывайте ошибки: Используйте ретраи с экспоненциальной задержкой (джиттером) и уводите неисправимые сообщения в DLQ. Избегайте бесконечных немедленных requeue.
4. Обеспечьте идёмпотентность: Из-за дублирования сетевых пакетов передавайте UUID события и проверяйте по БД/Redis, обрабатывалось ли оно ранее.
5. Мониторьте метрики: Для RabbitMQ отслеживайте *ready/unacked messages*; для Kafka — *consumer lag* и состояние ISR.
🎓 Хотите освоить брокеры сообщений на практике? Открывайте 🔥бесплатный демодоступ🔥:
• RabbitMQ — маршрутизация, кластеризация, DLQ и мониторинг.
• Kafka — партиционирование, consumer groups и тюнинг брокеров.
• Docker — деплой брокеров через docker-compose.
В демодоступе развёрнута полноценная боевая среда. Приходите!
GitHub
GitHub - IBM/sarama: Sarama is a Go library for Apache Kafka.
Sarama is a Go library for Apache Kafka. Contribute to IBM/sarama development by creating an account on GitHub.
🔥6👍3❤1
🔥Уже сегодня в 19:00 мск встречаемся на эфире с Васей Озеровым, вместе решаем задачу по траблшутингу и выигрываем призы!
На эфире Вася будет рассказывать про саму задачу, даст немного теории, пока участники в течение двух часов будут решать задачу. Среди всех, кто решит траблшутинг во время эфира, разыграем место на новом Васином интенсиве.
Что нужно сделать сейчас:
1️⃣ Зарегистрироваться на эфир, сегодня, 7 сентября 19:00-21:00 мск
2️⃣ Получить бесплатно доступ к траблшутингу на платформе
Ссылка на эфир придет на почту за 5 минут до начала, либо вы ее можете найти на платформе в разделе "Вебинары". Также в этом канале публикуем все ссылки на наши эфиры. До встречи!
На эфире Вася будет рассказывать про саму задачу, даст немного теории, пока участники в течение двух часов будут решать задачу. Среди всех, кто решит траблшутинг во время эфира, разыграем место на новом Васином интенсиве.
Что нужно сделать сейчас:
1️⃣ Зарегистрироваться на эфир, сегодня, 7 сентября 19:00-21:00 мск
2️⃣ Получить бесплатно доступ к траблшутингу на платформе
Ссылка на эфир придет на почту за 5 минут до начала, либо вы ее можете найти на платформе в разделе "Вебинары". Также в этом канале публикуем все ссылки на наши эфиры. До встречи!
❤8🔥3👍1
Полтора часа ищешь баг глазами, а потом узнаёшь, что дело было в MTU. Или контейнер падает по OOM-killer, лимиты уже увеличивали трижды, а он падает снова. Знакомо?
На интенсиве учим системному алгоритму поиска причины: анамнез, гипотеза и проверка, план устранения. 6 живых эфиров про Linux, сети, cgroups, Kubernetes и мониторинг. Смотрим, где реально ломается система, и разбираем это с tcpdump, cgroups, pprof и Prometheus в руках.
Что будет:
Программа живых классов:
29.09 - Алгоритм траблшутинга
06.10 - Сеть в Linux: путь пакета и размер пакета
13.10 - Процесс внутри cgroup: лимиты, рантайм и пул
20.10 - Kubernetes: трафик и жизненный цикл пода
27.10 - Путь версии: от коммита до продакшена
03.11 - Путь метрики: почему прибор не видит происходящего
↘️ Узнать подробности и занять место
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥2
-30% на комплексное освоение технологий: FreeIPA + Patroni + Postfix + PostgreSQL + Dovecot + Kerberos + LDAP
Мы собрали комплексный пакет программ в единый практикум "Корпоративная почтовая система", который разработан для системных инженеров, которые хотят освоить проектирование и эксплуатацию критически важной корпоративной инфраструктуры.
Ты научишься разворачивать отказоустойчивые почтовые системы, централизованно управлять доступом пользователей и обеспечивать непрерывную работу баз данных под высокой нагрузкой.
Вместо разрозненных знаний ты получишь цельный инженерный стек. В рамках единого трека ты последовательно пройдешь путь от настройки базовых почтовых сервисов Postfix и Dovecot до их интеграции с централизованным каталогом FreeIPA. Ты закроешь вопросы безопасности инфраструктуры с помощью Kerberos, SSL и политик доступа, а также развернешь отказоустойчивый кластер PostgreSQL под управлением Patroni и Etcd, способный выдерживать любые аварии.
🎁 На комплексный пакет действует скидка -30%, это намного выгоднее, чем покупать практикумы по отдельным технологиям
➕ Начать можно бесплатно, с демодоступа
↘️ Узнать подробнее о практикуме
Мы собрали комплексный пакет программ в единый практикум "Корпоративная почтовая система", который разработан для системных инженеров, которые хотят освоить проектирование и эксплуатацию критически важной корпоративной инфраструктуры.
Ты научишься разворачивать отказоустойчивые почтовые системы, централизованно управлять доступом пользователей и обеспечивать непрерывную работу баз данных под высокой нагрузкой.
Вместо разрозненных знаний ты получишь цельный инженерный стек. В рамках единого трека ты последовательно пройдешь путь от настройки базовых почтовых сервисов Postfix и Dovecot до их интеграции с централизованным каталогом FreeIPA. Ты закроешь вопросы безопасности инфраструктуры с помощью Kerberos, SSL и политик доступа, а также развернешь отказоустойчивый кластер PostgreSQL под управлением Patroni и Etcd, способный выдерживать любые аварии.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤1
⌛ Осталось 5 дней до завершения траблшутинга, еще есть время решить задачу и поучаствовать в розыгрыше
В новом симуляторе инцидента ты останешься один на один со сломанной инфраструктурой: Nginx, Go-приложение и PostgreSQL отказываются общаться друг с другом, хотя каждый сервис запущен и рапортует об успехе. Твоя задача - восстановить связность трехкомпонентного веб-приложения на изолированной виртуальной машине.
Что нужно сделать сейчас:
1️⃣ Получить бесплатно доступ к траблшутингу на платформе, создать окружение и вернуть приложение в рабочее состояние
2️⃣ Зарегистрироваться на эфир Васи Озерова с разбором задачи, 17 сентября 19:00-21:00 мск, где он разыграет оставшиеся призы среди участников
Всем удачи🤍
В новом симуляторе инцидента ты останешься один на один со сломанной инфраструктурой: Nginx, Go-приложение и PostgreSQL отказываются общаться друг с другом, хотя каждый сервис запущен и рапортует об успехе. Твоя задача - восстановить связность трехкомпонентного веб-приложения на изолированной виртуальной машине.
Что нужно сделать сейчас:
1️⃣ Получить бесплатно доступ к траблшутингу на платформе, создать окружение и вернуть приложение в рабочее состояние
2️⃣ Зарегистрироваться на эфир Васи Озерова с разбором задачи, 17 сентября 19:00-21:00 мск, где он разыграет оставшиеся призы среди участников
Всем удачи
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8
Если вы не нашли тему, которая вам интересна, то можете написать в форме 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
☕️ IT-сводка нескучных новостей: складной айфон за две зарплаты, облако на своём кремнии и сбежавшие агенты
🟢 «Группа Астра» запустила первое в России облако целиком на отечественных процессорах
«Астра» подняла Astra Cloud на процессорах «Байкал-С», и это первое российское облако, где отечественное всё, от кремния до сервиса. До этого Cloud.ru, «Яндекс», VK и «Ростелеком» строили облака на Intel Xeon и AMD EPYC, то есть железо оставалось импортным, даже когда софт и дата-центр были свои. Компания честно называет это не столько коммерческим продуктом, сколько заявкой на стандарт. Вопрос, выдержит ли своё железо реальную прод-нагрузку, проверит первый же крупный клиент.
🟢 1200 агентов OpenAI сбежали из песочницы и оставили друг другу 18 тысяч сообщений на самодельной доске
26 августа OpenAI выпустила 37-страничный отчёт о том, как её агенты пробили платформу Hugging Face. Между маем и июлем как минимум 1200 агентов в тестовой среде сами, без человека, устроили скоординированную атаку: подняли импровизированные доски объявлений, чтобы договариваться о побеге из изоляции, и накопили на них сотни тысяч сообщений, прежде чем это заметили. Когда OpenAI зачистила доску и перезапустила инфраструктуру, агенты через два дня подняли переписку заново, уже другим способом. Модель, участвовавшая в атаке, была настроена работать без штатных предохранителей.
🟢 «Магнит» первым из крупных ритейлеров слез с GitLab на российский GitFlic
«Магнит» стал первым крупным ритейлером, кто внедряет GitFlic, российскую альтернативу GitLab. История встаёт в один ряд с майским заявлением депутата, что с GitHub пора уезжать, и с проблемами доступа к нему из России. Пока одни спорят, что там с GitHub, крупный бизнес уже переносит репозитории, потому что закладываться на зарубежный хостинг в критичном месте стало слишком рискованно.
🟢 Три крупнейших AI-сервиса легли в один день, ровно когда OpenAI показывала новую модель
3 сентября одновременно посыпались ChatGPT и Codex у OpenAI, Claude у Anthropic и Grok у xAI. Совпадение оказалось таким плотным, что сразу поползли догадки про общий облачный сбой или атаку, но доказательств связи между инцидентами так и не нашли. Anthropic и xAI подняли свои системы, OpenAI дольше всех оставалась в статусе деградации. Сбой пришёлся на тот же день, когда OpenAI представила GPT-6 Astra.
🟢 Apple наконец показала складной айфон и догнала Samsung спустя семь лет
9 сентября Apple представила свой первый складной айфон вместе с iPhone 18 Pro. Ценник стартует примерно с 2000 долларов за версию на 256 ГБ, что делает его самым дорогим айфоном в истории, а старшие конфигурации подбираются к 2500–3000. Внутри экран 7,8 дюйма без обещанной складки, снаружи 5,5, две камеры и вернувшийся вместо Face ID Touch ID. Складные телефоны Samsung делает с 2019 года, так что Apple зашла на рынок последней, зато с самым дорогим устройством и обещанием, что уж её-то шарнир не оставит складку на экране.
🔥Если рубрика была интересной, поставь реакцию. И пиши в нашем чате, купил бы себе новый девайс от эпл?)
«Астра» подняла Astra Cloud на процессорах «Байкал-С», и это первое российское облако, где отечественное всё, от кремния до сервиса. До этого Cloud.ru, «Яндекс», VK и «Ростелеком» строили облака на Intel Xeon и AMD EPYC, то есть железо оставалось импортным, даже когда софт и дата-центр были свои. Компания честно называет это не столько коммерческим продуктом, сколько заявкой на стандарт. Вопрос, выдержит ли своё железо реальную прод-нагрузку, проверит первый же крупный клиент.
26 августа OpenAI выпустила 37-страничный отчёт о том, как её агенты пробили платформу Hugging Face. Между маем и июлем как минимум 1200 агентов в тестовой среде сами, без человека, устроили скоординированную атаку: подняли импровизированные доски объявлений, чтобы договариваться о побеге из изоляции, и накопили на них сотни тысяч сообщений, прежде чем это заметили. Когда OpenAI зачистила доску и перезапустила инфраструктуру, агенты через два дня подняли переписку заново, уже другим способом. Модель, участвовавшая в атаке, была настроена работать без штатных предохранителей.
«Магнит» стал первым крупным ритейлером, кто внедряет GitFlic, российскую альтернативу GitLab. История встаёт в один ряд с майским заявлением депутата, что с GitHub пора уезжать, и с проблемами доступа к нему из России. Пока одни спорят, что там с GitHub, крупный бизнес уже переносит репозитории, потому что закладываться на зарубежный хостинг в критичном месте стало слишком рискованно.
3 сентября одновременно посыпались ChatGPT и Codex у OpenAI, Claude у Anthropic и Grok у xAI. Совпадение оказалось таким плотным, что сразу поползли догадки про общий облачный сбой или атаку, но доказательств связи между инцидентами так и не нашли. Anthropic и xAI подняли свои системы, OpenAI дольше всех оставалась в статусе деградации. Сбой пришёлся на тот же день, когда OpenAI представила GPT-6 Astra.
9 сентября Apple представила свой первый складной айфон вместе с iPhone 18 Pro. Ценник стартует примерно с 2000 долларов за версию на 256 ГБ, что делает его самым дорогим айфоном в истории, а старшие конфигурации подбираются к 2500–3000. Внутри экран 7,8 дюйма без обещанной складки, снаружи 5,5, две камеры и вернувшийся вместо Face ID Touch ID. Складные телефоны Samsung делает с 2019 года, так что Apple зашла на рынок последней, зато с самым дорогим устройством и обещанием, что уж её-то шарнир не оставит складку на экране.
🔥Если рубрика была интересной, поставь реакцию. И пиши в нашем чате, купил бы себе новый девайс от эпл?)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41👍17😁4❤3👏1
📚 Открыли теорию на Васином траблшутинге - осталось буквально несколько дней, чтобы решить задачу
Что интересного узнаешь в теоретическом блоке:
• Policy Routing (PBR) и база правил ip rule
• Фильтрация трафика на основе метаданных сокета в nftables
• Сетевая фильтрация в systemd на основе cgroups v2
• Реализация фильтрации через eBPF и особенности работы tcpdump
Что нужно сделать сейчас:
1️⃣ Получить бесплатно доступ к траблшутингу на платформе, создать окружение и вернуть приложение в рабочее состояние
2️⃣ Зарегистрироваться на эфир Васи Озерова с разбором задачи, 17 сентября 19:00-21:00 мск, где он разыграет оставшиеся призы среди участников
Траблшутинг доступен до 16 сентября, времени совсем немного ⌛️
Что интересного узнаешь в теоретическом блоке:
• Policy Routing (PBR) и база правил ip rule
• Фильтрация трафика на основе метаданных сокета в nftables
• Сетевая фильтрация в systemd на основе cgroups v2
• Реализация фильтрации через eBPF и особенности работы tcpdump
Что нужно сделать сейчас:
1️⃣ Получить бесплатно доступ к траблшутингу на платформе, создать окружение и вернуть приложение в рабочее состояние
2️⃣ Зарегистрироваться на эфир Васи Озерова с разбором задачи, 17 сентября 19:00-21:00 мск, где он разыграет оставшиеся призы среди участников
Траблшутинг доступен до 16 сентября, времени совсем немного ⌛️
👍7❤3
🔥 Открыли демодоступ к новым практикумам: VictoriaMetrics, OpenSearch, Load Testing & Benchmarking, Golang и другим
Заходите на платформу, активируйте доступ, начинайте проходить и выполнять задания.
🟢 VictoriaMetrics
Развернёте кластер с репликацией, vmagent и vmauth и настроите мониторинг, который держит нагрузку там, где Prometheus упирается в лимиты.
🟢 OpenSearch
Соберёте отказоустойчивый кластер из нескольких нод с TLS и RBAC, настроите Ingest Pipeline для парсинга логов и ISM-политики ротации индексов.
🟢 Load Testing & Benchmarking
Спроектируете профиль нагрузки по логам Nginx и проведёте нагрузочное тестирование микросервисного приложения в JMeter и k6.
🟢 Golang: Тестирование и качество кода
Настроите CI/CD-пайплайн с параллельными тестами, покрытием от 80% и статическим анализом через golangci-lint.
🟢 Docker Base
Разберётесь в архитектуре Docker на уровне namespaces и cgroups, напишете многоэтапные Dockerfile и настроите изолированные сети для микросервисов.
🟢 DevOps Container Expert
Соберёте весь продакшн-контур в одном треке из 10 модулей: Git, GitLab CI, Kubernetes, Helm, Argo CD, мониторинг и логи.
🟢 Корпоративная почтовая система
Развернёте отказоустойчивую почтовую инфраструктуру на FreeIPA, Postfix, Dovecot и PostgreSQL под управлением Patroni и Kerberos.
🎁 В честь запуска — скидка -20% на эти программы до 27 сентября
Как активировать демо:
🟢 Переходите по ссылке курса, доступ откроется автоматически всем зарегистрированным пользователям платформы
🟢 Слева вы увидите, какие модули и блоки открылись
🟢 Проходите в своём темпе, выполняйте задания и знакомьтесь с платформой
Сентябрь подходящий месяц, чтобы наверстать то, что откладывал все лето. Выбирай практикум и начинай🤍
Заходите на платформу, активируйте доступ, начинайте проходить и выполнять задания.
Развернёте кластер с репликацией, vmagent и vmauth и настроите мониторинг, который держит нагрузку там, где Prometheus упирается в лимиты.
Соберёте отказоустойчивый кластер из нескольких нод с TLS и RBAC, настроите Ingest Pipeline для парсинга логов и ISM-политики ротации индексов.
Спроектируете профиль нагрузки по логам Nginx и проведёте нагрузочное тестирование микросервисного приложения в JMeter и k6.
Настроите CI/CD-пайплайн с параллельными тестами, покрытием от 80% и статическим анализом через golangci-lint.
Разберётесь в архитектуре Docker на уровне namespaces и cgroups, напишете многоэтапные Dockerfile и настроите изолированные сети для микросервисов.
Соберёте весь продакшн-контур в одном треке из 10 модулей: Git, GitLab CI, Kubernetes, Helm, Argo CD, мониторинг и логи.
Развернёте отказоустойчивую почтовую инфраструктуру на FreeIPA, Postfix, Dovecot и PostgreSQL под управлением Patroni и Kerberos.
Как активировать демо:
Сентябрь подходящий месяц, чтобы наверстать то, что откладывал все лето. Выбирай практикум и начинай
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤4👍1👏1
Зачем инженерам траблшутинг?
Мы проводим траблшутинги уже несколько лет и раз за разом видим одно и то же: инструменты инженеры знают хорошо, а вот с быстрым поиском причины сбоя у большинства проблемы.
С чем сталкиваются чаще всего:
🟢 аварию ищут наугад, и время простоя растягивается на часы
🟢 крупные запросы зависают в VPN и туннелях из-за MTU/MSS
🟢 контейнеры падают по OOM killer или тормозят из-за throttling, а увеличение лимитов не помогает
🟢 при обновлении в Kubernetes часть трафика теряется, хотя пробы настроены
🟢 пайплайн зелёный, а на проде крутится старая версия
🟢 алерты не успевают сработать из-за неверного scrape interval в Prometheus
За каждым пунктом стоит конкретный механизм. MTU и MSS считаются по формуле, а не подбираются наугад. Лимиты cgroups настраиваются под рантайм конкретного приложения. PreStop хуки и правильный terminationGracePeriodSeconds сводят потерю трафика при деплое к минимуму. Scrape interval в Prometheus подбирается под длительность события, чтобы алерт срабатывал вовремя, а не после того, как сбой заметили пользователи.
Мы собрали эти механики и трёхшаговый алгоритм локализации: анамнез, гипотеза и проверка, план устранения. Все это Вася Озеров упаковал в интенсив по системному траблшутингу. Шесть живых занятий, на каждом реальный кейс с сетью, cgroups, Kubernetes или мониторингом, который разбираем от симптома до фикса.
Ставьте 🔥, если тоже считаете, что навыки траблшутинга важны
Если хочешь прокачаться в этом направлении, записывайся на интенсив к Васе 😉
↘️ Узнать подробности и записаться
Мы проводим траблшутинги уже несколько лет и раз за разом видим одно и то же: инструменты инженеры знают хорошо, а вот с быстрым поиском причины сбоя у большинства проблемы.
С чем сталкиваются чаще всего:
За каждым пунктом стоит конкретный механизм. MTU и MSS считаются по формуле, а не подбираются наугад. Лимиты cgroups настраиваются под рантайм конкретного приложения. PreStop хуки и правильный terminationGracePeriodSeconds сводят потерю трафика при деплое к минимуму. Scrape interval в Prometheus подбирается под длительность события, чтобы алерт срабатывал вовремя, а не после того, как сбой заметили пользователи.
Мы собрали эти механики и трёхшаговый алгоритм локализации: анамнез, гипотеза и проверка, план устранения. Все это Вася Озеров упаковал в интенсив по системному траблшутингу. Шесть живых занятий, на каждом реальный кейс с сетью, cgroups, Kubernetes или мониторингом, который разбираем от симптома до фикса.
Ставьте 🔥, если тоже считаете, что навыки траблшутинга важны
Если хочешь прокачаться в этом направлении, записывайся на интенсив к Васе 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36❤2👍1
Представьте, что это записанный кружочек от Васи 📹
🧑💻"Друзья, всем привет! Василий Озеров на связи! Сегодня жду всех в 7 вечера на открытом вебинаре. Будем разбирать задачку с нашего последнего траблшутинга. Поговорим про системную диагностику Gateway Timeout в веб-приложении, и как проверять гипотезы при разборе реального инцидента в Linux. Сегодня до самого эфира в рабочих созвонах, поэтому пишу вам тут. Скоро увидимся!"
↘️ Встретимся тут
🧑💻"Друзья, всем привет! Василий Озеров на связи! Сегодня жду всех в 7 вечера на открытом вебинаре. Будем разбирать задачку с нашего последнего траблшутинга. Поговорим про системную диагностику Gateway Timeout в веб-приложении, и как проверять гипотезы при разборе реального инцидента в Linux. Сегодня до самого эфира в рабочих созвонах, поэтому пишу вам тут. Скоро увидимся!"
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13😁8👍5🔥2
Практическое руководство по переходу на Nftables
Делимся записью вебианра с Николаем Лавлинским, который посвящен переходу со старой системы фильтрации IPTables (семейства X-tables) на современный инструмент ядра Linux — Nftables.
↘️ Смотреть в YouTube
↘️ Смотреть в ВК
Краткий конспект
1. Архитектура
Netfilter обрабатывает трафик в ядре Linux до 4-го уровня OSI. X-tables (iptables, ip6tables, arptables, ebtables) — разные утилиты и конфиги под каждый протокол. NFTables — одна утилита nft, один модуль ядра, общий конфиг для всех протоколов.
2. Почему NFTables лучше
— sets работают за O(1) вместо линейного роста времени как в iptables (нужен был отдельный ipset)
— таблиц и цепочек по умолчанию нет — создаёшь только нужное, а не предзаданный filter/nat/mangle
— семейство inet объединяет IPv4 и IPv6 в одном наборе правил
— одно правило может выполнять сразу несколько действий, конфиг применяется атомарно целиком
3. Проверка и миграция
nf_tables в выводе — бэкенд уже новый.
4. Базовая настройка
Политику на drop переключаем после проверки разрешающих правил.
5. Handle вместо номеров правил
6. Sets — замена ipset
7. NAT
8. Персистентность
Итог
Nftables заменяет весь стек x-tables (iptables, ip6tables, arptables, ebtables, ipset) одной утилитой и одним модулем ядра, даёт sets за O(1) и правила по handle вместо номеров.
Если хочешь узнать больше, начни с бесплатного демодоступа к практикумам:
🔥Начать Linux Basics
🔥Начать Linux: Анализ производительности и тюнинг
🔥Начать Повышение привилегий в Linux
Делимся записью вебианра с Николаем Лавлинским, который посвящен переходу со старой системы фильтрации IPTables (семейства X-tables) на современный инструмент ядра Linux — Nftables.
Краткий конспект
1. Архитектура
Netfilter обрабатывает трафик в ядре Linux до 4-го уровня OSI. X-tables (iptables, ip6tables, arptables, ebtables) — разные утилиты и конфиги под каждый протокол. NFTables — одна утилита nft, один модуль ядра, общий конфиг для всех протоколов.
2. Почему NFTables лучше
— sets работают за O(1) вместо линейного роста времени как в iptables (нужен был отдельный ipset)
— таблиц и цепочек по умолчанию нет — создаёшь только нужное, а не предзаданный filter/nat/mangle
— семейство inet объединяет IPv4 и IPv6 в одном наборе правил
— одно правило может выполнять сразу несколько действий, конфиг применяется атомарно целиком
3. Проверка и миграция
iptables -V
nf_tables в выводе — бэкенд уже новый.
iptables-translate -A INPUT -p tcp --dport 22 -j ACCEPT
iptables-restore-translate -f ipt.rules > nft.rules
4. Базовая настройка
nft add table ip filter
nft add chain ip filter input { type filter hook input priority 0 \; policy accept \; }
nft add rule ip filter input tcp dport 22 counter accept
nft add rule ip filter input iifname "lo" accept
nft add rule ip filter input ct state vmap { established : accept, related : accept, invalid : drop }
nft chain ip filter input { policy drop \; }
Политику на drop переключаем после проверки разрешающих правил.
5. Handle вместо номеров правил
nft --handle list ruleset
nft delete rule ip filter input handle 2
nft insert rule ip filter input tcp dport 22 accept
nft replace rule ip filter input handle 2 tcp dport 22 ct state new accept
6. Sets — замена ipset
nft add set ip filter blackhole { type ipv4_addr \; flags interval \; }
nft add element ip filter blackhole { 1.1.1.1, 192.168.0.0/24 }
nft add rule ip filter input ip saddr @blackhole drop
7. NAT
nft add table ip nat
nft add chain ip nat postrouting { type filter hook postrouting priority 100 \; }
nft add rule ip nat postrouting oifname "enp1s0" masquerade
nft add rule ip nat prerouting iifname "enp1s0" tcp dport 80 dnat to 192.168.1.100
8. Персистентность
nft -s list ruleset > /etc/nftables.conf
systemctl enable nftables
Итог
Nftables заменяет весь стек x-tables (iptables, ip6tables, arptables, ebtables, ipset) одной утилитой и одним модулем ядра, даёт sets за O(1) и правила по handle вместо номеров.
Если хочешь узнать больше, начни с бесплатного демодоступа к практикумам:
🔥Начать Linux Basics
🔥Начать Linux: Анализ производительности и тюнинг
🔥Начать Повышение привилегий в Linux
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍8❤6💯4
☕️ IT-сводка нескучных новостей: Nvidia покупает Hugging Face, дефолтные пароли текут, консоль на пенсии
🟢 Nvidia купила за 13 миллиардов ту самую платформу, которую пару месяцев назад взломали AI-агенты OpenAI
3 сентября Nvidia официально закрыла покупку Hugging Face за 12,93 миллиарда долларов, это её крупнейшая сделка в истории. Ирония в тайминге: летом эту же платформу без человека пробили агенты OpenAI, а стартап десять лет назад назвали в честь эмодзи «обнимашки». Производитель GPU, построивший капитализацию на железе, теперь владеет и главным складом опенсорсных моделей.
🟢 У AI-шлюза каждой десятой компании админский пароль так и остался «sk-1234» из инструкции
10 сентября Wiz Research отчиталась: почти каждый десятый LiteLLM-сервер в интернете принимает ключ sk-1234, тот самый пример из официального гайда по установке. Это админский пароль шлюза между приложениями и платными провайдерами моделей. Кто им владеет, читает весь трафик и жжёт чужие токены. Дефолт из документации снова оказался открытой дверью в прод.
🟢 Fedora выкинула текстовую консоль Linux, которая жила в ядре с девяностых
15 сентября вышла бета Fedora 45, и главный сюрприз в том, что легендарную in-kernel консоль, тот самый чёрный текстовый экран под Ctrl+Alt+F2, заменили на userspace-эмулятор kmscon. Штуку, которая работала практически без изменений с ранних лет Linux и не раз спасала сисадминов, когда графика падала, наконец отправили на пенсию. Получаем нормальные шрифты, юникод и мультисит, но привычка, когда все сломалось, уходи в tty, теперь работает иначе.
🟢 PostgreSQL получил прозрачное шифрование данных, и ключи наконец живут снаружи
Вышел pg_vault_tde, движок прозрачного шифрования (TDE) для PostgreSQL 17 и 18: каждая строка шифруется AES-256-GCM до попадания в хранилище и расшифровывается на выходе, приложениям переписывать ничего не надо. Ключевая деталь в том, где лежат ключи, а лежат они снаружи базы, в HashiCorp Vault, OpenBao, на HSM или в PKCS#11-токене. Многолетняя боль, когда данные зашифрованы, но ключ валяется рядом, наконец закрывается штатно.
🟢 Kubernetes выпиливает IPVS-режим kube-proxy, на котором сидят многие крупные кластеры
В Kubernetes режим IPVS в kube-proxy объявили устаревшим и убирают. На него в своё время массово переходили ровно потому, что старый iptables-режим не тянул тысячи сервисов на масштабе. Теперь тем, кто выбрал IPVS, снова предстоит миграция. Классический цикл: сегодняшний правильный выбор через пару релизов становится техдолгом.
🔥Если рубрика была интересной, поставь реакцию. В нашем чате можно обсудить все новости)
3 сентября Nvidia официально закрыла покупку Hugging Face за 12,93 миллиарда долларов, это её крупнейшая сделка в истории. Ирония в тайминге: летом эту же платформу без человека пробили агенты OpenAI, а стартап десять лет назад назвали в честь эмодзи «обнимашки». Производитель GPU, построивший капитализацию на железе, теперь владеет и главным складом опенсорсных моделей.
10 сентября Wiz Research отчиталась: почти каждый десятый LiteLLM-сервер в интернете принимает ключ sk-1234, тот самый пример из официального гайда по установке. Это админский пароль шлюза между приложениями и платными провайдерами моделей. Кто им владеет, читает весь трафик и жжёт чужие токены. Дефолт из документации снова оказался открытой дверью в прод.
15 сентября вышла бета Fedora 45, и главный сюрприз в том, что легендарную in-kernel консоль, тот самый чёрный текстовый экран под Ctrl+Alt+F2, заменили на userspace-эмулятор kmscon. Штуку, которая работала практически без изменений с ранних лет Linux и не раз спасала сисадминов, когда графика падала, наконец отправили на пенсию. Получаем нормальные шрифты, юникод и мультисит, но привычка, когда все сломалось, уходи в tty, теперь работает иначе.
Вышел pg_vault_tde, движок прозрачного шифрования (TDE) для PostgreSQL 17 и 18: каждая строка шифруется AES-256-GCM до попадания в хранилище и расшифровывается на выходе, приложениям переписывать ничего не надо. Ключевая деталь в том, где лежат ключи, а лежат они снаружи базы, в HashiCorp Vault, OpenBao, на HSM или в PKCS#11-токене. Многолетняя боль, когда данные зашифрованы, но ключ валяется рядом, наконец закрывается штатно.
В Kubernetes режим IPVS в kube-proxy объявили устаревшим и убирают. На него в своё время массово переходили ровно потому, что старый iptables-режим не тянул тысячи сервисов на масштабе. Теперь тем, кто выбрал IPVS, снова предстоит миграция. Классический цикл: сегодняшний правильный выбор через пару релизов становится техдолгом.
🔥Если рубрика была интересной, поставь реакцию. В нашем чате можно обсудить все новости)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥47👏1