Библиотека девопса | DevOps, SRE, Sysadmin
10.3K subscribers
1.38K photos
70 videos
4 files
2.58K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
💪🛠️ Прокачай свой бэкенд: 9 инструментов, которые стоит знать

От браузерной ИИ-песочницы PostgreSQL до суперскоростного валидатора email — обзор новейших инструментов, которые упростят вашу работу и повысят продуктивность.

Читать статью
2🔥2
Какие возможности Kubernetes предоставляет неродным приложениям для установления соединений с серверными модулями?
Anonymous Quiz
36%
Прямой доступ к API-серверу
11%
Ручная настройка балансировщика нагрузки
41%
Механизмы обнаружения сервисов
12%
Список IP-адресов модуля
🔝 React не нужен: 5 альтернативных фреймворков/библиотек

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

🔗 Читать статью
🔗 Зеркало
😢21👍1🌚1
#дайджест перед выходными

⚙️ The Kubernetes Troubleshooting Handbook — рассмотрены различные методы и инструменты, помогающие устранять неполадки и отлаживать Kubernetes

⚙️ Python Logging: From Basics to Advanced Practices — в статье разобраны подходы к журналированию на базе модулей logging, structlog и loguru

⚙️ Как мониторить Containerd — о подходах к мониторингу containerd: плагины containerd и методы сбора метрик, логов, трейсов и профилировании

⚙️ OpenShift Lightspeed — Red Hat анонсировала виртуального помощника на базе AI, который призван упростить работу инженеров и разработчиков

⚙️ k8s_gateway — когда хочется, чтобы Ingress, type LoadBalancer, HTTPRoutes, TLSRoutes, GRPCRoutes резолвились только внутри кластера
4👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📶 Паттерны коммуникации в распределенных системах

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

Хотя коммуникация критически важна, правильно ее организовать бывает непросто: разработчики иногда пытаются использовать один и тот же подход ко всем задачам коммуникации, что может быть неэффективно. Важно понимать, что существуют разные способы организации коммуникации, и выбор правильного метода зависит от конкретной задачи. Рассмотрим основные паттерны коммуникации, которые можно использовать для решения разных задач.

☑️ Запрос-ответ с HTTP

Этот синхронный паттерн коммуникации предполагает, что один сервис отправляет запрос другому сервису и ожидает ответа или ошибки, блокируя свою работу до получения результата. REST, наиболее популярный архитектурный стиль для этой модели коммуникации, использует методы протокола HTTP — GET, POST, PUT и DELETE.
 
Однако использование этого паттерна может привести к проблемам, если сервисы образуют цепочку взаимодействий: в таком случае сбой одного из сервисов может привести к отказу всей операции, а также к расточительному использованию ресурсов и каскадным сбоям.

☑️ Общие данные

Этот паттерн часто остается незамеченным, поскольку разработчики не всегда воспринимают его как модель коммуникации. В рамках этого подхода один компонент записывает данные в определенное место, а другой компонент считывает и обрабатывает эти данные. Например, один сервис может загрузить файл в облачное объектное хранилище (например, в корзину Amazon S3), а другой сервис затем извлекает этот файл для дальнейших действий.

Главное преимущество этого паттерна — простота реализации и возможность обеспечения взаимодействия между устаревшими и современными системами без проблем совместимости. Однако он не подходит для сценариев, требующих низкой задержки.

☑️ Асинхронный запрос-ответ

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

Основная сложность здесь — корреляция между запросом и ответом: экземпляр сервиса, отправивший запрос, может отличаться от экземпляра, получающего ответ, поэтому требуется способ отслеживания запросов.

☑️ Коммуникация на основе событий

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

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

👨‍💻 Подробнее читайте в статье.
📨 Материал взят из нашей еженедельной email-рассылки, посвященной бэкенду. Подпишитесь, чтобы быть в числе первых, кто получит дайджест.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61🎉1
🎢🎢 Запросы и лимиты в Kubernetes: разбираемся в деталях

В статье рассказано, как в Kubernetes организована работа с запросами и лимитами, как они используются для управления ресурсами. В любой организации чрезвычайно важно управление ресурсами в Kubernetes и роль такого управления. Рассматривается управление ресурсами в Kubernetes с азов.

Подробности тут

#туториал
👍4🔥1
Памятка по Nmap: все команды, флаги и переключатели
5😁2
🚶🚶 GoAccess

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

#софт
🔥4
📖📖 Knee — A CLI for Ansible Playbooks

Knee —интерактивная CLI-утилита, созданная на основе Ansible, которая используется для автоматизации настройки инфраструктуры, что повышает эффективность и снижает количество человеческих ошибок.

Подробнее тут

#софт
👍41
💪💪 asyncio: We Did It Wrong

Серия статей по асинхронному программированию от Staff инженера Spotify. Под капотом 8 частей покрывающий практически все вопросы по asyncio возникающие у разработчика:

Part 0: Initial Setup
Part 1: True Concurrency
Part 2: Graceful Shutdowns
Part 3: Exception Handling
Part 4: Working with Synchronous & Threaded Code
Part 5: Testing asyncio Code
Part 6: Debugging asyncio Code
Part 7: Profiling asyncio Code

Все вот тут

#туториал
5👍2
Очередной #дайджест для DevOps-ов

Kubectx + Kubens: Power tools for kubectl — инструмент, позволяющий легко переключаться между пространствами имен Kubernetes (и настраивать их для kubectl)

Это база: нюансы работы с Redis — сказ в двух частях об особенностях работы, которые непосредственно влияют на конфигурирование и эффективность

mRemoteNG — опенсорсный мультипротокольный менеджер удаленных соединений для Windows (когда нужно много ссш-ей и телнетов)

API DRA — подвезли в новой версии кубера 1.31

Well-Known Labels, Annotations and Taints — лейбл, который позволяет закрывать часть сервисов за разными CNI/kube-proxy/loxilb если есть такая необходимость
3🔥2
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
2