Пятничный деплой
4.47K subscribers
1.41K photos
29 videos
167 files
7.78K links
Подборка ссылок, статей и постов из мира DevOps\SRE\разработки. Если вы хотите прислать фидбек, интересную статью или просто поболтать пишите @count0ru https://xn--r1a.website/s/count0_digest
Download Telegram
Forwarded from Yandex for Backend
🖍 Как ломаются большие системы и как их траблшутить

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

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

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

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

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

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

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

Подписывайтесь:
💬 @Yandex4Backend
📹 @YandexforBackend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Пиарим проекты подписчиков! Кстати, если вы пишите что-то полезное и нужны звезды на гитхабе или просто хочется поделиться с миром - приносите!
1👍1
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
👍112
Forwarded from DevOps Deflope News
Методология Twelve-Factor App теперь доступна как Open Source.

Сам манифест выложен на GitHub. Ожидается, что это привлечёт сообщество к совместной работе и поможет актуализировать принципы.
2
Forwarded from /usr/bin
cgroups и namespaces в Linux: как это работает?

В статье рассмотрена изоляция процессов и управление ресурсами в Linux, изучив возможности cgroups и namespaces. Разбераются, как работают контейнеры изнутри и учат создавать собственное изолированное окружение без Docker. Читать на Хабре.
Смотрим что происходит у коллег из Казахстана, недавно там прошла codetalks.kz смотрим записи тут https://youtube.com/@codetalkskz?si=nN4GJHTb9EkBk5JYl
👍2
Forwarded from Кубертатный период (Pavel Klyuev)
VictoriaMetrics реализуют собственную библиотеку стандарта OpenTelemetry, так как, по мнению разработчиков, OpenTelemetry излишне сложный и перегружен функциональностью, которая редко используется на практике, а также призывают сообщество к упрощению стандартов и повышения производительности.

https://www.datanami.com/2024/04/01/opentelemetry-is-too-complicated-victoriametrics-says/
👍14
Forwarded from Двач
Google представил самого мощного ИИ-репетитора — LearnLM 1.5 Pro

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

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

Пользуемся с VPN тут:
aistudio.google.com/prompts/new_chat
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎31
Forwarded from DevOps&SRE Library
cubefs

As an open-source distributed storage, CubeFS can serve as your datacenter filesystem, data lake storage infra, and private or hybrid cloud storage. In particular, CubeFS enables the separation of storage/compute architecture for databases and AI/ML applications.


https://github.com/cubefs/cubefs
Forwarded from /usr/bin
Неочевидные для начинающих тонкости Postgres

В статье интересные инсайты опытного пользователя Postgres.
👍51🔥1
Forwarded from Bash Days | Linux | DevOps (Роман Шубин)
Здрасти. Как-то я писал про 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
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Forwarded from Кубернетичек
Давно не читал отличных статей. Тут линкендин выпустила статью про то, почему они написали свой стейтфулсет контроллер. Подходил к ее прочтению очень скептически. Обычно в таких статьях "уникальная проблема", которую никак не решить кроме написания своего уникального, воздушного и прекрасного или выбрать свой уникальный путь. Как это сделали недавно Яндекс, GitPod и Crafting-Code (ссылок давать не буду, это можно нагуглить, если такое желание имеется).

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

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

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

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

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

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

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

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

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

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

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

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

Видеозапись онлайн-мероприятия можно посмотреть на удобной для вас площадке:
🎥
ВКонтакте
🎥
Rutube
🎥
YouTube
👍3👎2🔥1
Мне тут сообщили, что многие тут хотят серьезно прокачать свой DevOps. Но не знают где взять информацию и четкий план.

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

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

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

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

📌 Ну а тем, кто хочет двигаться под руководством опытного наставника, моего коллеги - индивидуальная программа.
👎10👍2
Forwarded from k8s (in)security (Дмитрий Евдокимов)
kondense - это проект на Go выполненный в виде sidecar контейнера, который помогает автоматически управлять ресурсами контейнеров в Kubernetes без их перезапуска. На пример, освобождать не используемое количество выделенной контейнеру memory и CPU. Для этого используется не так давно появившееся фича InPlacePodVerticalScaling.

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

Хоть проект и полезный, но с учетом вопросов ИБ к нему врят ли его можно рекомендовать. Явно нужно ждать другой реализации. Но сам факт появление подобных проектов вокруг фичи InPlacePodVerticalScaling это отлично.
Forwarded from Clean Code
Лучший Гайд по Kafka для Начинающих За 1 Час

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

📺 YouTube

Clean Code #видео #kafka
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🧑‍💻 Оптимистические 🆚 Пессимистические блокировки: наглядная #инфографика для разработчика

👉 Источник
Please open Telegram to view this post
VIEW IN TELEGRAM