Архитектурные паттерны: Circuit-Breaker
Что такое « Circuit Breaker»?
В мире распределенных систем вероятность того, что компоненты выйдут из строя или перестанут реагировать на запросы, выше по сравнению с монолитными системами. Учитывая взаимозависимость микросервисов или модулей в распределенной системе, отказ одного компонента может привести к каскадным сбоям во всей системе, потенциально вызывая сбой или остановку всей системы. Поэтому устойчивость - способность системы справляться со сбоями и восстанавливаться после них - становится критически важной в распределенных средах.
https://lab.scub.net/architecture-patterns-the-circuit-breaker-8f79280771f1
👉 @devops_star
Что такое « Circuit Breaker»?
В мире распределенных систем вероятность того, что компоненты выйдут из строя или перестанут реагировать на запросы, выше по сравнению с монолитными системами. Учитывая взаимозависимость микросервисов или модулей в распределенной системе, отказ одного компонента может привести к каскадным сбоям во всей системе, потенциально вызывая сбой или остановку всей системы. Поэтому устойчивость - способность системы справляться со сбоями и восстанавливаться после них - становится критически важной в распределенных средах.
https://lab.scub.net/architecture-patterns-the-circuit-breaker-8f79280771f1
👉 @devops_star
👍1
Что такое Trunk-based development?
Trunk-based Development (TBD) — модель ветвления, в которой разработчики совместно работают над кодом в одной ветви, называемой "стволом" (trunk). При этом другие ветви имеют короткий срок жизни благодаря использованию документированных методов.
👉 @devops_star
Trunk-based Development (TBD) — модель ветвления, в которой разработчики совместно работают над кодом в одной ветви, называемой "стволом" (trunk). При этом другие ветви имеют короткий срок жизни благодаря использованию документированных методов.
👉 @devops_star
👍1
🗓 10 сентября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «CI/CD на основе GitLab».
🎯 На вебинаре разберем:
👥 Кому будет интересно:
- Начинающим DevOps-инженерам — вы получите базовое понимание архитектуры GitLab и научитесь разворачивать его под разные задачи
- DevOps-практикам, которые уже используют GitLab и хотят повысить стабильность и отказоустойчивость
- Инженерам по внедрению CI/CD, которым важно понять, как масштабировать GitLab в корпоративной среде
🎯 Что вы получите:
- Понимание, как развернуть GitLab оптимально под свои задачи
- Понимание, как правильно выбрать среду (Docker vs Kubernetes) для развёртывания
- Практические советы по стабильности, резервированию и отказоустойчивости GitLab-инсталляций
🔗 Ссылка на регистрацию: https://vk.cc/cPbeO4
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Профилирование: Flame Chart vs. Flame Graph
Flame charts и Flame graphs - это методы визуализации данных профилирования. Для многих инженеров-программистов они являются первыми визуализациями, с которыми мы сталкиваемся, когда начинаем работать над производительностью. Если вы, как и я, являетесь инженером фронтенда, то, скорее всего, диаграмма Flame - это то, с чем вы знакомы больше всего. Хотя диаграммы Flame и графики Flame выглядят и звучат похоже, это не одно и то же.
https://medium.com/performance-engineering-for-the-ordinary-barbie/profiling-flame-chart-vs-flame-graph-7b212ddf3a83
👉 @devops_star
Flame charts и Flame graphs - это методы визуализации данных профилирования. Для многих инженеров-программистов они являются первыми визуализациями, с которыми мы сталкиваемся, когда начинаем работать над производительностью. Если вы, как и я, являетесь инженером фронтенда, то, скорее всего, диаграмма Flame - это то, с чем вы знакомы больше всего. Хотя диаграммы Flame и графики Flame выглядят и звучат похоже, это не одно и то же.
https://medium.com/performance-engineering-for-the-ordinary-barbie/profiling-flame-chart-vs-flame-graph-7b212ddf3a83
👉 @devops_star
👍1
Что такое Docker? В чем отличие контейнера от образа?
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации.
Образ — шаблон приложения, который содержит слои файловой системы в режиме "только-чтение".
Контейнер — запущенный образ приложения, который кроме нижних слоев в режиме "только чтение" содержит верхний слой в режиме "чтение-запись".
👉 @devops_star
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации.
Образ — шаблон приложения, который содержит слои файловой системы в режиме "только-чтение".
Контейнер — запущенный образ приложения, который кроме нижних слоев в режиме "только чтение" содержит верхний слой в режиме "чтение-запись".
👉 @devops_star
👍2
Сколько раз вы слышали истории о том, как злоумышленники получали доступ к Kubernetes-кластерам через неправильно настроенные права доступа или незащищённые секреты? В эпоху, когда контейнеризация стала стандартом, безопасность K8s — это уже не опция, а жизненная необходимость для любой серьёзной инфраструктуры.
📅 9 сентября в 20:00 Денис Шишикин проведёт открытый вебинар «Обеспечение безопасности в Kubernetes» в рамках курса «DevOps Advanced». Это практическое занятие для тех, кто хочет защитить свои кластеры от типовых угроз и научиться применять проверенные практики безопасности.
На вебинаре разберут конкретные инструменты и подходы — механизмы контроля доступа через RBAC, ограничение привилегий подов с помощью Pod Security Admission, безопасную работу с секретами через Sealed Secrets. Денис покажет, как сканировать манифесты и кластеры с помощью Trivy и kube-bench.
Особенно полезно будет DevOps-инженерам, системным администраторам и всем, кто работает с Kubernetes в продакшне. Спикер объяснит, какие угрозы характерны для K8s-кластеров и как проводить базовый аудит безопасности ресурсов и конфигураций.
👉 Вебинар бесплатный, но регистрация обязательна — места ограничены: https://vk.cc/cPeCDo
🎁 Каждый участник вебинара получит бонус — скидку на полный курс. Главное — успеть записаться.
Реклама. ООО «Отус онлайн‑образование», ОГРН 1177746618576
📅 9 сентября в 20:00 Денис Шишикин проведёт открытый вебинар «Обеспечение безопасности в Kubernetes» в рамках курса «DevOps Advanced». Это практическое занятие для тех, кто хочет защитить свои кластеры от типовых угроз и научиться применять проверенные практики безопасности.
На вебинаре разберут конкретные инструменты и подходы — механизмы контроля доступа через RBAC, ограничение привилегий подов с помощью Pod Security Admission, безопасную работу с секретами через Sealed Secrets. Денис покажет, как сканировать манифесты и кластеры с помощью Trivy и kube-bench.
Особенно полезно будет DevOps-инженерам, системным администраторам и всем, кто работает с Kubernetes в продакшне. Спикер объяснит, какие угрозы характерны для K8s-кластеров и как проводить базовый аудит безопасности ресурсов и конфигураций.
👉 Вебинар бесплатный, но регистрация обязательна — места ограничены: https://vk.cc/cPeCDo
🎁 Каждый участник вебинара получит бонус — скидку на полный курс. Главное — успеть записаться.
Реклама. ООО «Отус онлайн‑образование», ОГРН 1177746618576
❤1
Threat Model Examples
Ппроект, представляющий из себя коллекцию различных примеров моделей угроз.
- Kubernetes
- Docker
- Container
- Amazon S3
- Supply Chain
- Cloud Computing
- CI/CD Pipeline и другие
https://github.com/TalEliyahu/Threat_Model_Examples
👉 @devops_star
Ппроект, представляющий из себя коллекцию различных примеров моделей угроз.
- Kubernetes
- Docker
- Container
- Amazon S3
- Supply Chain
- Cloud Computing
- CI/CD Pipeline и другие
https://github.com/TalEliyahu/Threat_Model_Examples
👉 @devops_star
GitHub
GitHub - TalEliyahu/Threat_Model_Examples: A collection of real-world threat model examples across various technologies, providing…
A collection of real-world threat model examples across various technologies, providing practical insights into identifying and mitigating security risks. - GitHub - TalEliyahu/Threat_Model_Exampl...
👍1
Чем отличается StatefulSet от Deployment?
Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.
StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.
👉 @devops_star
Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.
StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.
👉 @devops_star
👍3❤1
Что ты такое, dhclient?
Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.
Чтобы лишний раз не дёргать ядро прерываниями, придумали DMA — Direct Memory Access. Это когда трафик пишется напрямую в память, откуда он считывается приложением в обход ядра. И это дало жизнь классу софта с режимом работы kernel bypass. Например, при DPDK (Intel Data Plane Development Kit) сетевая карта целиком передаётся в userspace, а ядро даже не подозревает о её существовании.
Потом был BPF. А ещё потом усилиями Алексея Старовойтова и компании миру была показана eBPF — штука, умеющая делать прокол в ядро и инжектировать туда микроскопические виртуальные машины с кодом, которые могут в обход всего и вся взаимодействовать с системными событиями, и в том числе с трафиком. Супербыстро и оптимально (на фоне стандартного стека, конечно же). А это в свою очередь дало возможность использовать XDP для ускорения обработки трафика.
Но даже помимо хаков работы с ядром есть такие штуки, как sk_buff, в которой хранятся метаданные всех миллионов протоколов (в большинстве случаев они вообще не нужны: тащим с собой легаси). Есть NAPI (New API), которая призвана уменьшить число прерываний. А 100500 вариантов разных tables? Iptables, arptables, ip6tables, ebtables, nftables…
Если вам мало — ещё придумали SR-IOV. Там тоже уже упомянутый DMA, а ещё можно посплитить физическую карточку на несколько виртуальных и раздать их в разные виртуалки и приложения. Под ручку с DMA идёт и RDMA, когда мы пишем трафик напрямую в память, но не в свою, а в чужую на удалённой по сети машине.
И в этих копаниях можно уйти безгранично далеко. Но сегодня мы всё же поговорим о вещах более приземлённых и повседневных, которые лишь приоткрывают вход в эту разветвлённую сеть кроличьих нор. Мы разберём одну любопытную задачку, на примере которой ужаснёмся (а кто-то ухмыльнётся деловито в усы) тому, как сложно может быть реализован такой простой протокол, как DHCP.
https://habr.com/ru/companies/yandex/articles/774462/
👉 @devops_star
Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.
Чтобы лишний раз не дёргать ядро прерываниями, придумали DMA — Direct Memory Access. Это когда трафик пишется напрямую в память, откуда он считывается приложением в обход ядра. И это дало жизнь классу софта с режимом работы kernel bypass. Например, при DPDK (Intel Data Plane Development Kit) сетевая карта целиком передаётся в userspace, а ядро даже не подозревает о её существовании.
Потом был BPF. А ещё потом усилиями Алексея Старовойтова и компании миру была показана eBPF — штука, умеющая делать прокол в ядро и инжектировать туда микроскопические виртуальные машины с кодом, которые могут в обход всего и вся взаимодействовать с системными событиями, и в том числе с трафиком. Супербыстро и оптимально (на фоне стандартного стека, конечно же). А это в свою очередь дало возможность использовать XDP для ускорения обработки трафика.
Но даже помимо хаков работы с ядром есть такие штуки, как sk_buff, в которой хранятся метаданные всех миллионов протоколов (в большинстве случаев они вообще не нужны: тащим с собой легаси). Есть NAPI (New API), которая призвана уменьшить число прерываний. А 100500 вариантов разных tables? Iptables, arptables, ip6tables, ebtables, nftables…
Если вам мало — ещё придумали SR-IOV. Там тоже уже упомянутый DMA, а ещё можно посплитить физическую карточку на несколько виртуальных и раздать их в разные виртуалки и приложения. Под ручку с DMA идёт и RDMA, когда мы пишем трафик напрямую в память, но не в свою, а в чужую на удалённой по сети машине.
И в этих копаниях можно уйти безгранично далеко. Но сегодня мы всё же поговорим о вещах более приземлённых и повседневных, которые лишь приоткрывают вход в эту разветвлённую сеть кроличьих нор. Мы разберём одну любопытную задачку, на примере которой ужаснёмся (а кто-то ухмыльнётся деловито в усы) тому, как сложно может быть реализован такой простой протокол, как DHCP.
https://habr.com/ru/companies/yandex/articles/774462/
👉 @devops_star