BufWriter<Master<'_>> – Telegram
BufWriter<Master<'_>>
105 subscribers
451 photos
28 videos
34 files
1.7K links
https://www.patreon.com/alxe_master

Видео/статьи. Конспект и мои вольные комментарии по инженерии. тут только то, что считаю полезным для себя или других =)

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
== архитектура ИТ-решений
https://youtu.be/VJrj5pcdPYI
== толковый плейлист по Rabbitmq
https://youtube.com/playlist?list=PLprvDkBQwz6ZC1iwd4y80Qqi43sswECdX
- общая инфа
- установка/настройка кластера
- принципы работы работы кролика на практике
- назначение прав доступа в Rabbitmq на практике
- Тесты HA кластера и метод балансировки

есть очереди типа КВОРУМ для кластера

пермишны можно настроить вплоть до конкретного эксченжа и топика

один балансер это одна точка отказа

можно делать балансировку на уровне L3

можно физический интерфейс хоста обьединить в бридж с ВМ

пока не будет всех нод Реббит не стартует !!!
== небольшой плейлист по Network
https://youtube.com/playlist?list=PLprvDkBQwz6bOaO1N0vDaHX-jqlvlKIhp
- Routing VS Nat
- Построение отказоустойчивой сети (Bonding, LAG, LACP)
- Построение отказоустойчивой сети VPC
- Обеспечение бесперебойного интернета (VRRP)
- настройка DNS балансировки и failover
- Тесты на боевой системе

NAT - это медленно
Ip Tables - Это медленно
при NAT нагрузка на ЦПУ выше
при использовании Kubernates/swarm и пр сеть нельзя обьединить с физическим интерфейсом хоста (а при использовании ВМ это сделать МОЖНО)
== DNS Best Practices, Network Protections, and Attack Identification

https://tools.cisco.com/security/center/resources/dns_best_practices

шикарное чтиво если сложно заснуть
== Представление о структуре отказоустойчивого кластера
https://youtu.be/hBrc-jJFbAw

CEPH как кластерная система хранения файлов . ВАРИАНТОВ НЕТ

каждый сервак должен иметь МИНИМУМ две раздельнче сетевые карты с оптикой. настроен бондинг

два физических роутера

два узла nginx
== Установка кластера кафки на 3 ноды.
https://youtu.be/OTxnQ289pvg
проперти, кластер, настройка
- кафка
- зукипер

== Понимание принципов работы kafka на практике
https://youtu.be/Ep9ZQjrn1Rs
- продюссер всегда пишет в лидера. остальные партиции на одной ноде только для чтения
все время хотелось понять как оно работает. шикаааарная статья. лайк

== Знакомство с хранилищем Ceph в картинках
https://habr.com/ru/post/313644/

Алгоритм CRUSH (Controlled Replicated Under Scalable Hashing)
- позволяет однозначно определить местоположение объекта на основе хеша имени объекта и определенной карты, которая формируется исходя из физической и логической структур кластера (датацентры, залы, ряды, стойки, узлы, диски)

== Как мы отказоустойчивый кластер запускали
https://habr.com/ru/company/first/blog/314106/
🔥1
== толковый плейлист по кластеру Postgres & Patroni
https://youtube.com/playlist?list=PLprvDkBQwz6YQLJQ_qlm3-gkk-BXYuuR0

== Что такое кластер Postgres, как он работает и для чего нужен Patroni
https://youtu.be/GtHtRyPcmIM

кластер постгреса работает из коробки

split-brain = разделение двух мастеров

постгрес не поддерживает мастер-мастер !

демон патрони занимается синхронизацием знанием о том кто мастер а кто реплика.

база etcd используется как транспорт и состояние для patroni

haproxy просто разруливает трафик на запись и на чтение. его мутирует patroni напрямую

НО хапрокси это единственная точка отказа

pgbouncer множественный коннект к постгресу . АБСОЛЮТНО БЕСПОЛЕЗЕН ЕСЛИ ИСПОЛЬЗУЮТСЯ ПЕРСИСТЕНТНЫЕ КОННЕКШНЫ
нужен только что бы использовать много частых коннекшнов, не создавая их часто физически

НИКОГДА НЕ ПОДНИМАЙТЕСЬ ПО СЕТЕВОМУ УРОВНЮ ЕСЛИ В ЭТОМ НЕТ НЕОБХОДИМОСТИ
container-ecosystem.drawio.png
181.7 KB
📝 Docker, Kubernetes, OCI, CRI-O, containerd & runc: How do they work together?

Взял вот в этой статье - An attempt to understand container runtime.

#containers #runc #containerd
postgresql_internals-14.pdf
7.5 MB
Это точно сохраню тут

Оглавление книги:

Введение
Часть I. Изоляция и многоверсионность
Изоляция
Страницы и версии строк
Снимки данных
Внутристраничная очистка и hot-обновления
Очистка и автоочистка
Заморозка
Перестроение таблиц и индексов
Часть II. Буферный кеш и журнал
Буферный кеш
Журнал предзаписи
Режимы журнала
Часть III. Блокировки
Блокировки отношений
Блокировки строк
Блокировки разных объектов
Блокировки в памяти
Часть IV. Выполнение запросов
Этапы выполнения запросов
Статистика
Табличные методы доступа
Индексные методы доступа
Индексное сканирование
Вложенный цикл
Хеширование
Сортировка и слияние
Часть V. Типы индексов
Хеш-индекс
B-дерево
Индекс GiST
Индекс SP-GiST
Индекс GIN
Индекс BRIN
== 3 Things You Might Not Know About Numbers in Python
https://davidamos.dev/three-things-you-might-not-know-about-numbers-in-python/

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

плейлист по производным https://youtube.com/playlist?list=PLGtfmJuN1mTA_vI3eLT8jMTEeJ0YDIh-z

== Задачи, приводящие к понятию производной
https://youtu.be/CQpX5f7iIvM

== Определение производной. Геометрический и физический смысл производной.
https://youtu.be/kJE2lqMJe5Q

== Геометрический смысл производной. Уравнение касательной и нормали.
https://youtu.be/KLzq2TTZN34

== Вычисление производных примеры. Самое начало.
https://youtu.be/gIk3EkrYkTg

== Производная сложной функции пример
https://youtu.be/muwAE0Fjlec

== Производная неявной функции примеры
https://youtu.be/7YpyHLHBCw4
== Scale Kubernetes to support 50000 services
https://www.slideshare.net/LCChina/scale-kubernetes-to-support-50000-services

Where is the latency generated (IPTables)?
- not incremental
- copy all rules
- make changes
- save all rules back
- IPTables locked during rule update

Time spent to add once rule when there are 5k services (40k rules) = 11min

20k services (160k rules) = 5 hours
Forwarded from Технотренды
[Перевод] Embedded Linux. Отладка ядра

Придя в embedded linux из мира микроконтроллеров, такого привычного инструмента отладки кода, как пошаговая отладка кода на целевой железке с помощью аппаратного программатора, - очень не хватало. В предыдущих статьях описано, как мы учились дебажить загрузчик u-boot: 1, 2. С ядром все оказалось сложнее. Например, выяснилось, что ядро Linux в принципе невозможно скомпилировать с отключенной оптимизацией (-O0). В статье описывается как нам все таки удалось запустить ядро на микропроцессоре ARM в режиме пошаговой отладки.

#linux #guide
кто бы мог подумать что матан мне станет настолько интересным как сейчас
Forwarded from Cross Join - канал о разработке (Anton Okolelov)
На Хабре появилась очередная статья о том, как php пытаются натянуть на хайлоад, используя для этого костыли swoole.

Статья потрясающая, ведь в ней перечислены все минусы этого подхода по сравнению с Go, Node и т.д., а выводы сделаны противоположные здравому смыслу.

В статье api, которое пишет в базу, нагрузка всего 300rps.

1) Приложение жрет 2 гига памяти и 8 ядер cpu. Ну хз, Go сожрало бы в несколько раз меньше. У меня микросервисы обычно потребляют в разы меньше при гораздо большей нагрузке. Хотя, конечно, зависит от конкретики приложения.

2) раздел "простота инфраструктуры", цитирую:

"...внутри контейнера будет всего 11 процессов: 1 tini (supervisor)+entrypoint, 1 master процесс, 1 manager процесс и 8 worker процессов."

Вы чо, ребят? Какая тут простота? Особенно учитывая, что они зачем-то перезапускают процессы воркеров раз в час.

Image весит всего 120 мегабайт. Ну неплохо, но если это так важно, то в Go можно оставить вообще один бинарник (FROM scratch), и он будет весить по сути вообще около нуля.

3) чтобы добиться постоянного соединения к бд и редису, пришлось написать несколько оберток к библиотекам и драйвер к doctrine.

4) 4ms уходит на обработку запроса без логики (пустой запрос или даже 404). Сорян, но это очень много.

5) в течение месяца после выкатки они вылавливали странные ситуации. Что-то там текло при коннекте к посгресу и тд.

Итог) Вывод делают такой: php закапывать рано, все норм.

Блин. Если бы в статье был упор на удобство написания кода, то я бы это купил и пошарил бы везде. Синтаксис php во многом удобнее. Но статья про хайлоад и производительность, блин.

Отдельно хочу заметить, что описанное в статье могла намутить только команда прокачанных php-синьоров, которые готовы ловить и фиксить необычные проблемы. А на Go с задачей "highload api, которое лезет в базу" справился бы начинающий по стандартному мануалу. И у него не возникло бы ни одной серьёзной проблемы.