DevOps Brain 🧠
1.35K subscribers
132 photos
17 videos
130 links
Пишу про kubernetes, terraform, linux, сети, автоматизации и полезные тулзы. Без спама и щитпостинга.

Хотите пообщаться? @devopsbrain_chat

Автор: @itcaat
Download Telegram
📍 Карта канала

Ламповый чатик для своих людей: @devopsbrain_chat

Собрал в одном месте все самые полезные посты - изучайте, применяйте!
---
🔵Вредные советы начинающим специалистам в IT
🔵Говорим с TeamCity на одном языке с помощью MCP
🔵Делаем свой бесплатный сайт - закроем тему
🔵Динамические матрицы в github actions - Часть 1 | Часть 2
🔵Про магию for в prometheus
🔵Как запустить публичный сайт на телефоне или экономим на спичках
🔵Как прокачать сетку между разными ЦОД за пару команд
🔵Как умерла OS/2 в неравной схватке с Windows - Часть 1 | Часть 2
🔵Кольцо хеширования: теория и симулятор
🔵Лучшие практики конфигурирования Kubernetes в 2025 — Часть 1: Это база! | Часть 2: Сервисы, метки, конфиги и лимиты | Часть 3: безопасность, логи, наблюдаемость и graceful shutdown [продолжение следует...]
🔵Наводим красоту в htop
🔵Настройка самоподписных валидных ssl-сертификатов в локальном k8s. Часть 1 и Часть 2.
🔵Отправка уведомлений на телефон через API запрос
🔵Поиск эксплойтов в вашем кубе с помощью kubescape и metasploit
🔵Почему вам надо вводить практику написания посмортемов?
🔵Про git fixup и чистую историю
🔵Размышления об opensource. Оно катится в ад?
🔵Симулируем сети в GNS3. Часть 1 - настройка под MacOS | Часть 2 - делаем свою первую сеть
🔵Топ полезных утилит для работы с кучей серверов на примерах
🔵Тулзы для детекта утечки секретов
🔵Чеклист на Новый 2026 год для инженеров эксплуатации
🔵Эмуляция сетевых проблем в Linux через tc netem

🔵Dive in performance tools. Часть 1 - Sysdig
🔵Dive in performance tools. Часть 2 - top / htop. Про память в Linux | Про CPU | Таблица процессов в top | Основные выводы в практике | Что еще можно посмотреть в top
🔵Dive in performance tools. Часть 3 - Сеть. bmon | bandwhich [продолжение следует...]
🔵Excalidraw - как рисовать схемы без боли и страданий
🔵DocMost - аналог notion
🔵grafana k6 - знакомство с нагрузочным тестированием
🔵keephq - мониторинг на стеройдах
🔵kubetools - сборник тулов для k8s
🔵neohtop - htop под macos
🔵macpine - запускаем вмки под MacOS терминала
🔵oh-my-zsh - красиво оформляем командную строку
🔵postman - TUI аналог postman для любителей консоли
🔵siyuan - обзор решения для личного управления знаниями
🔵SLA, SLO и SLI простыми словами - Часть 1 | Часть 2
🔵tabby.sh - еще один кросплатформенный терминал
🔵Zerolog - удобные логи в golang

🔖 Полезные теги на канале
---
#ai #cicd #career #clickhouse #docker #dotnet #external_links #facts #fun #golang #github_actions #haproxy #kafka #linux #kubernetes #macos #management #networking #opentelemetry #proxmox #simulators #study #tools

------

🌐Мои репки opensource: https://github.com/itcaat/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Бесконечно можно смотреть на 3 вещи: огонь, воду и симулятор kafka от softwaremill

🔗 https://softwaremill.com/kafka-visualisation.

Очень классная визуализация, которая позволяет понять принципы работы и покрутить разные ручки для разных сценариев 🔥

#kafka #simulators
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤4
Всем привет в этом “чате”. Решил немного разбавить материал новой рубрикой: “а как оно работает на самом деле” с отсылками к теоретической части различных технологий. И сегодня мы поговорим про кольцо хеширования (Consistent Hashing) и почему оно нам интересно. Также я навайбкодил симулятор и выложил его в конце статьи.

Кольцо хеширования - это алгоритм распределения ключей между множеством узлов (например, серверов, кешей, шардов БД) таким образом, чтобы минимизировать количество перестановок при добавлении или удалении узлов. А интересен он тем, что этот принцип широко используется в системах с распределённым хранением данных, например, в DynamoDB, Cassandra, Riak, а также в Memcached.

# Основные термины

- Хеш-пространство. Все возможные значения хеша (например, от 0 до 2³²−1 при использовании 32-битного хеш-функции) образуют кольцо - замкнутое пространство.
- Хеширование узлов. Каждый узел (сервер) получает одно или несколько значений в этом пространстве - они определяются с помощью хеш-функции от имени узла (например, hash("cache1")).
- Хеширование ключей. Каждый ключ (например, ID объекта) также хешируется и отображается на кольцо.
- Поиск узла для ключа. Ищется ближайший по часовой стрелке узел на кольце - он и будет ответственным за хранение данного ключа. Если не нашлось подходящего узла “вправо” - кольцо замыкается, и мы просто берём первый по кругу. Вот такая красивая логика.

# Как рассчитывается позиция узла

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


## Разберем на примере
Базовая реализация расчета позиции узла в кольце будет выглядеть так:


position = hash(node_id)


Где:
- node_id - уникальный идентификатор узла (например, `"node-1"`).
- hash() - детерминированная хеш-функция (например, **SHA1**).

Хеш-функция преобразует node_id в число из диапазона 0 до 2³²−1, где N количество бит хеша (например, 32 или 64). Это число и определяет позицию узла на кольце.


# считаем позиции
hash("node-A") = 132
hash("node-B") = 278
hash("node-C") = 75


Если добавляется "node-D" он встанет между A и B на кольце и запустится перераспределение части ключей.


hash("node-D") = 200


Чтобы избежать неравномерного распределения, часто применяют виртуальные узлы (virtual nodes):


hash("node-D#1")
hash("node-D#2")
hash("node-D#3")


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

Поиграться с симулятором consistent hashing можно тут https://consistent-hashing.simulators.devopsbrain.ru. В симуляторе вы можете добавить/удалить узлы, увидеть, как перераспределяются ключи.

UPD: оказывается версия на мобилках работала криво - поправил.

#simulators
🔥13👍1🤔1