ar
Feedback

لا تقع ضحية للمخادعين! تيليمتريو يكتشف ويُميّز هذه القنوات 👉 إذا كنت تريد رؤية العلامة، اشترك

DevOps by REBRAIN

DevOps by REBRAIN

الذهاب إلى القناة على Telegram

Открытые практикумы по DevOps, Linux, Golang, Networks, Security Мы на связи: info@rebrainme.com +7 (499) 116-34-68 https://rebrainme.com/ Зарегистрированы в РКН: https://knd.gov.ru/license?id=674db558d793bc0b0b8845ff®istryType=bloggersPermission

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام DevOps by REBRAIN

تُعد قناة DevOps by REBRAIN (@rebrain_devops) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 28 759 مشتركاً، محتلاً المرتبة 4 611 في فئة التكنولوجيات والتطبيقات والمرتبة 22 418 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 28 759 مشتركاً.

بحسب آخر البيانات بتاريخ 29 أكتوبر, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -102، وفي آخر 24 ساعة بمقدار -4، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 7.79‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 6.50‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 2 241 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 870 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 10.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل dovecot, linux, скрипт, postfix, yandex.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Открытые практикумы по DevOps, Linux, Golang, Networks, Security Мы на связи: info@rebrainme.com +7 (499) 116-34-68 https://rebrainme.com/ Зарегистрированы в РКН: https://knd.gov.ru/license?id=674db558d793bc0b0b8845ff&registryType=bloggersPermiss...”

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 30 أكتوبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

28 759
المشتركون
-424 ساعات
-417 أيام
-10230 أيام
أرشيف المشاركات
🗓️ Расписание вебинаров на сегодня ⏰ 20:00 МСК - Первое знакомство с btrfs 🔗 Регистрация и программа О вебинаре напомним за 5 минут до начала на этом канале. Также вы сможете зайти через личный кабинет. 🔥 Задать вопросы и обсудить детали можно в нашем чате

❗ Открытый практикум Отправка событий безопасности с Linux-хоста в ELK-стек средствами Auditbeat идёт уже 30 минут Если вы ещё не с нами, скорее подключайтесь! Ссылка для входа: https://my.rebrainme.com/live-class/568 🔥 Задать вопрос по практикуму и обсудить детали можно в нашем чате

❗Начало Открытого практикума Отправка событий безопасности с Linux-хоста в ELK-стек средствами Auditbeat уже через 5 минут Встречаемся в 19:00 МСК. Ссылка для входа: https://my.rebrainme.com/live-class/568 Также вы можете подключиться к вебинару через личный кабинет, в разделе «Вебинары». 🔥 Задать вопрос по практикуму и обсудить детали можно в нашем чате

Открытый практикум Отправка событий безопасности с Linux-хоста в ELK-стек средствами Auditbeat начнётся сегодня в 19:00 МСК. Практикум будет проходить на площадке Zoom.US Важно!!! Чтобы вы смогли без проблем к нам присоединиться, заранее протестируйте комнату по ссылке: https://zoom.us/test Ссылку для доступа отправим вам за 5 минут до начала. Либо заходите через личный кабинет в разделе «Вебинары». 🔥 Задать вопрос по практикуму и обсудить детали можно в нашем чате

➕ Открываем регистрацию на интенсив "Системный траблшутинг" с Васей Озеровым Полтора часа ищешь баг глазами, а потом узнаёшь,
➕ Открываем регистрацию на интенсив "Системный траблшутинг" с Васей Озеровым Полтора часа ищешь баг глазами, а потом узнаёшь, что дело было в MTU. Или контейнер падает по OOM-killer, лимиты уже увеличивали трижды, а он падает снова. Знакомо? На интенсиве учим системному алгоритму поиска причины: анамнез, гипотеза и проверка, план устранения. 6 живых эфиров про Linux, сети, cgroups, Kubernetes и мониторинг. Смотрим, где реально ломается система, и разбираем это с tcpdump, cgroups, pprof и Prometheus в руках. Что будет: 🟢 Живой формат: 6 вебинаров с Васей Озеровым и разбором реальных инфраструктурных кейсов 🟢 Ручная проверка: детальный фидбек по практическим заданиям от практикующих инженеров 🟢 Закрытый Telegram-чат: оперативное общение, обмен опытом и поддержка единомышленников 🟢 Записи в ЛК: все материалы и эфиры доступны без ограничений по времени 🟢 Практические стенды: работа в реальном окружении, симулирующем боевые аварии
Программа живых классов: 29.09 - Алгоритм траблшутинга 06.10 - Сеть в Linux: путь пакета и размер пакета 13.10 - Процесс внутри cgroup: лимиты, рантайм и пул 20.10 - Kubernetes: трафик и жизненный цикл пода 27.10 - Путь версии: от коммита до продакшена 03.11 - Путь метрики: почему прибор не видит происходящего
🟡 Старт — 29 сентября 🎁 Сейчас действует скидка 3 000 ₽, а если вчера ты был на эфире с Васей, у тебя уже есть промокод на 7 000 ₽ ↘️ Узнать подробности и занять место

🗓️ Расписание вебинаров на сегодня ⏰ 19:00 МСК - Отправка событий безопасности с Linux-хоста в ELK-стек средствами Auditbeat 🔗 Регистрация и программа О вебинаре напомним за 5 минут до начала на этом канале. Также вы сможете зайти через личный кабинет. 🔥 Задать вопросы и обсудить детали можно в нашем чате

❗ Открытый практикум Онлайн-траблшутинг: WebApp Gateway Timeout идёт уже 30 минут Если вы ещё не с нами, скорее подключайтесь! Ссылка для входа: https://my.rebrainme.com/live-class/580 🔥 Задать вопрос по практикуму и обсудить детали можно в нашем чате

❗Начало Открытого практикума Онлайн-траблшутинг: WebApp Gateway Timeout уже через 5 минут Встречаемся в 19:00 МСК. Ссылка для входа: https://my.rebrainme.com/live-class/580 Также вы можете подключиться к вебинару через личный кабинет, в разделе «Вебинары». 🔥 Задать вопрос по практикуму и обсудить детали можно в нашем чате

Открытый практикум Онлайн-траблшутинг: WebApp Gateway Timeout начнётся сегодня в 19:00 МСК. Практикум будет проходить на площадке Zoom.US Важно!!! Чтобы вы смогли без проблем к нам присоединиться, заранее протестируйте комнату по ссылке: https://zoom.us/test Ссылку для доступа отправим вам за 5 минут до начала. Либо заходите через личный кабинет в разделе «Вебинары». 🔥 Задать вопрос по практикуму и обсудить детали можно в нашем чате

🔥Уже сегодня в 19:00 мск встречаемся на эфире с Васей Озеровым, вместе решаем задачу по траблшутингу и выигрываем призы! На
🔥Уже сегодня в 19:00 мск встречаемся на эфире с Васей Озеровым, вместе решаем задачу по траблшутингу и выигрываем призы! На эфире Вася будет рассказывать про саму задачу, даст немного теории, пока участники в течение двух часов будут решать задачу. Среди всех, кто решит траблшутинг во время эфира, разыграем место на новом Васином интенсиве. Что нужно сделать сейчас: 1️⃣ Зарегистрироваться на эфир, сегодня, 7 сентября 19:00-21:00 мск 2️⃣ Получить бесплатно доступ к траблшутингу на платформе Ссылка на эфир придет на почту за 5 минут до начала эфира, либо вы ее можете найти на платформе в разделе "Вебинары". Также в этом канале публикуем все ссылки на наши эфиры. До встречи!

🗓️ Расписание вебинаров на сегодня ⏰ 19:00 МСК - Онлайн-траблшутинг: WebApp Gateway Timeout 🔗 Регистрация и программа О вебинаре напомним за 5 минут до начала на этом канале. Также вы сможете зайти через личный кабинет. 🔥 Задать вопросы и обсудить детали можно в нашем чате

📌 Ключевой момент: при auto-ack: false брокер считает доставку успешной только после d.Ack(false). При сбое или обрыве связи происходит повторная доставка, поэтому обработчик обязателен должен быть идёмпотентным. 🚀 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. В демодоступе развёрнута полноценная боевая среда. Приходите!

📨 Очереди сообщений: Погружение в RabbitMQ и Kafka для обработки событий Синхронные 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
}

❗ Открытый практикум Первое знакомство с ZFS идёт уже 30 минут Если вы ещё не с нами, скорее подключайтесь! Ссылка для входа: https://my.rebrainme.com/live-class/566 🔥 Задать вопрос по практикуму и обсудить детали можно в нашем чате

❗Начало Открытого практикума Первое знакомство с ZFS уже через 5 минут Встречаемся в 20:00 МСК. Ссылка для входа: https://my.rebrainme.com/live-class/566 Также вы можете подключиться к вебинару через личный кабинет, в разделе «Вебинары». 🔥 Задать вопрос по практикуму и обсудить детали можно в нашем чате

Открытый практикум Первое знакомство с ZFS начнётся сегодня в 20:00 МСК. Практикум будет проходить на площадке Zoom.US Важно!!! Чтобы вы смогли без проблем к нам присоединиться, заранее протестируйте комнату по ссылке: https://zoom.us/test Ссылку для доступа отправим вам за 5 минут до начала. Либо заходите через личный кабинет в разделе «Вебинары». 🔥 Задать вопрос по практикуму и обсудить детали можно в нашем чате

Всем привет!👋 Нам очень важно, чтобы наши курсы были полезны для вас. Хотим двигаться в правильном направлении - а для этого нужна ваша обратная связь! 👇 📝 Просим пройти вас небольшой опрос из 4 вопросов - это займёт не больше 2-3 минут. Самый главный для нас - вопрос №4. Именно там мы ждём ваших идей, пожеланий. Помогите нам стать лучше! 💡 🔗 Ссылка на опрос Спасибо, что развиваете Rebrain вместе с нами! ❤️

🔥Новое видео с Андреем Бурановым по администрированию дисковых систем: работа с LVM уже на канале Вебинар про LVM в Linux: архитектура (PV, VG, LV), изменение размеров разделов на лету и перенос данных на RAID без остановки сервисов. Смотрите полную запись на любой платформе. ↘️ Смотреть в YouTube ↘️ Смотреть в ВК Краткий конспект 👇🏼 1. Проблемы классической разметки При работе с классическими разделами (`/dev/vdb1`, `/dev/vdb2`) администратор жёстко ограничен их физическими границами: • увеличить можно только последний раздел на диске; • сдвиг начала раздела ломает суперблок ФС (у ext4 он смещён на 1024 байта, у XFS — в первом секторе) — раздел становится нерабочим; • любые перемещения блоков требуют остановки служб и размонтирования. Алгоритм увеличения последнего раздела (ext4):

partprobe   # или kpartx — сообщить ядру об изменении таблицы разделов
resize2fs /dev/vdb3   # для ext4
xfs_growfs /mnt/point # для XFS
2. Архитектура LVM PV (Physical Volume) — диск или раздел, инициализированный под LVM VG (Volume Group) — пул из одного или нескольких PV LV (Logical Volume) — раздел внутри VG, на нём создаётся ФС Пространство делится на экстенты (PE) по 4 МБ — это минимальная единица выделения места.

pvs / pvdisplay
vgs / vgdisplay
lvs / lvdisplay
3. Создание LVM

pvcreate /dev/vde
vgcreate vgnew /dev/vde
lvcreate -n lv01 -L 100M vgnew
lvcreate -n lv02 -L 100M vgnew
lvcreate -n lv03 -L 100M vgnew

mkfs.ext4 /dev/mapper/vgnew-lv01
mount /dev/mapper/vgnew-lv01 /mnt/01
4. Изменение размера LV Свободное место из VG можно добавить в любой LV независимо от порядка создания.

# в два шага
lvextend -L 200M /dev/vgnew/lv01
resize2fs /dev/mapper/vgnew-lv01

# в один шаг
lvextend -r -L 200M /dev/vgnew/lv02
Увеличивать ФС можно онлайн без проблем. А вот уменьшение почти нигде не поддерживается на лету: ext4 требует размонтирования, XFS не поддерживает вообще. 5. Перенос на RAID-1 без остановки сервисов Задача: перенести данные с диска /dev/vde (в VG vgnew`) на зеркало RAID-1 из `/dev/vdb1 и /dev/vde.

# 1. деградированный RAID-1 на одном диске
mdadm --create /dev/md127 --level=1 --raid-devices=2 missing /dev/vdb1

# 2. добавляем массив в VG
vgextend vgnew /dev/md127

# 3. переносим данные онлайн — ФС остаётся доступна на чтение и запись
pvmove /dev/vde

# 4. убираем старый диск из VG
vgreduce vgnew /dev/vde
pvremove /dev/vde

# 5. добавляем освободившийся диск в массив — начнётся синхронизация
mdadm --manage /dev/md127 --add /dev/vde
При сбое питания pvmove просто начнётся заново — данные не теряются. 6. Тонкие тома и альтернативы Thin-тома дают overcommit места: физически занимается только то, что реально записано. Удобно для образов ВМ и снапшотов. Но из VG с thin pool почти невозможно безопасно вывести PV — теряется главное преимущество LVM: гибкая миграция дисков. ZFS и Btrfs сами совмещают RAID, менеджер томов и ФС — LVM поверх них смысла не имеет. Ключевые выводы LVM — стандарт де-факто для серверов на Linux: снимает жёсткие границы классических разделов lvextend -r расширяет том и ФС одной командой без остановки сервисов; уменьшение — почти всегда офлайн-операция pvmove переносит данные между дисками онлайн — так можно менять диски или переезжать на RAID без простоя связка mdadm + LVM — стандартное решение для отказоустойчивости в production Если хочешь узнать больше, начни с бесплатного демодоступа к практикумам: 🔥Начать Linux Basics 🔥Начать Linux: Анализ производительности и тюнинг 🔥Начать Повышение привилегий в Linux

🗓️ Расписание вебинаров на сегодня ⏰ 20:00 МСК - Первое знакомство с ZFS 🔗 Регистрация и программа О вебинаре напомним за 5 минут до начала на этом канале. Также вы сможете зайти через личный кабинет. 🔥 Задать вопросы и обсудить детали можно в нашем чате

Всем привет! Сегодняшний вебинар GameDay (или Chaos Day): «Тяжело в учении — легко в бою» отменяется в связи с техническими неполадками у спикера. Позже сообщим новую дату и время проведения вебинара. Приносим извинения за доставленные неудобства!