💪🛠️ Прокачай свой бэкенд: 9 инструментов, которые стоит знать
От браузерной ИИ-песочницы PostgreSQL до суперскоростного валидатора email — обзор новейших инструментов, которые упростят вашу работу и повысят продуктивность.
Читать статью
От браузерной ИИ-песочницы PostgreSQL до суперскоростного валидатора email — обзор новейших инструментов, которые упростят вашу работу и повысят продуктивность.
Читать статью
❤2🔥2
Forwarded from Библиотека задач по DevOps | тесты, код, задания
Какие возможности Kubernetes предоставляет неродным приложениям для установления соединений с серверными модулями?
Anonymous Quiz
36%
Прямой доступ к API-серверу
11%
Ручная настройка балансировщика нагрузки
41%
Механизмы обнаружения сервисов
12%
Список IP-адресов модуля
🔝 React не нужен: 5 альтернативных фреймворков/библиотек
React — самый популярный инструмент для разработки фронтенда. Но не каждому проекту он нужен: есть несколько отличных библиотек и фреймворков, которые гораздо проще и во многом эффективнее.
🔗 Читать статью
🔗 Зеркало
React — самый популярный инструмент для разработки фронтенда. Но не каждому проекту он нужен: есть несколько отличных библиотек и фреймворков, которые гораздо проще и во многом эффективнее.
🔗 Читать статью
🔗 Зеркало
😢2❤1👍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 резолвились только внутри кластера
⚙️ 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-рассылки, посвященной бэкенду. Подпишитесь, чтобы быть в числе первых, кто получит дайджест.
Распределенные системы состоят из многих отдельных частей/узлов, работающих вместе, но физически расположенных в разных местах. Эти части системы должны общаться друг с другом через сеть, чтобы система могла функционировать как единое целое.
Хотя коммуникация критически важна, правильно ее организовать бывает непросто: разработчики иногда пытаются использовать один и тот же подход ко всем задачам коммуникации, что может быть неэффективно. Важно понимать, что существуют разные способы организации коммуникации, и выбор правильного метода зависит от конкретной задачи. Рассмотрим основные паттерны коммуникации, которые можно использовать для решения разных задач.
☑️ Запрос-ответ с HTTP
Этот синхронный паттерн коммуникации предполагает, что один сервис отправляет запрос другому сервису и ожидает ответа или ошибки, блокируя свою работу до получения результата. REST, наиболее популярный архитектурный стиль для этой модели коммуникации, использует методы протокола HTTP — GET, POST, PUT и DELETE.
Однако использование этого паттерна может привести к проблемам, если сервисы образуют цепочку взаимодействий: в таком случае сбой одного из сервисов может привести к отказу всей операции, а также к расточительному использованию ресурсов и каскадным сбоям.
☑️ Общие данные
Этот паттерн часто остается незамеченным, поскольку разработчики не всегда воспринимают его как модель коммуникации. В рамках этого подхода один компонент записывает данные в определенное место, а другой компонент считывает и обрабатывает эти данные. Например, один сервис может загрузить файл в облачное объектное хранилище (например, в корзину Amazon S3), а другой сервис затем извлекает этот файл для дальнейших действий.
Главное преимущество этого паттерна — простота реализации и возможность обеспечения взаимодействия между устаревшими и современными системами без проблем совместимости. Однако он не подходит для сценариев, требующих низкой задержки.
☑️ Асинхронный запрос-ответ
В отличие от синхронного подхода, запрос-ответ может быть реализован асинхронно и без блокировки. В этом случае получающий сервис должен явно знать место назначения для отправки ответа. Для реализации этого паттерна идеально подходят очереди сообщений, которые позволяют буферизовать несколько запросов.
Основная сложность здесь — корреляция между запросом и ответом: экземпляр сервиса, отправивший запрос, может отличаться от экземпляра, получающего ответ, поэтому требуется способ отслеживания запросов.
☑️ Коммуникация на основе событий
В этом подходе сервисы не общаются напрямую друг с другом, а генерируют события, которые могут быть использованы другими сервисами. Это требует наличия места для отправки данных о событиях и механизма, позволяющего получающим сервисам обнаруживать эти события. Брокеры сообщений, такие как RabbitMQ, могут обрабатывать оба этих аспекта. Издатели используют API для отправки событий в брокер, который управляет подписками и уведомляет подписчиков при поступлении события.
Этот паттерн идеально подходит для создания слабосвязанных взаимодействий между сервисами. Однако брокер сообщений должен обеспечивать надежную доставку событий, их упорядочивание и согласованность. Кроме того, добавляется дополнительный компонент в систему.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1🎉1
🎢🎢 Запросы и лимиты в Kubernetes: разбираемся в деталях
В статье рассказано, как в Kubernetes организована работа с запросами и лимитами, как они используются для управления ресурсами. В любой организации чрезвычайно важно управление ресурсами в Kubernetes и роль такого управления. Рассматривается управление ресурсами в Kubernetes с азов.
Подробности тут
#туториал
В статье рассказано, как в Kubernetes организована работа с запросами и лимитами, как они используются для управления ресурсами. В любой организации чрезвычайно важно управление ресурсами в Kubernetes и роль такого управления. Рассматривается управление ресурсами в Kubernetes с азов.
Подробности тут
#туториал
👍4🔥1
Памятка по Nmap: все команды, флаги и переключатели
❤5😁2
🚶🚶 GoAccess
Опенсорсный анализатор веб-журналов в режиме реального времени и интерактивный просмотрщик, который запускается в терминале в системах *nix или через браузер. Он предоставляет статистику HTTP для системных администраторов, которым требуется визуальный отчет сервера на лету.
#софт
Опенсорсный анализатор веб-журналов в режиме реального времени и интерактивный просмотрщик, который запускается в терминале в системах *nix или через браузер. Он предоставляет статистику HTTP для системных администраторов, которым требуется визуальный отчет сервера на лету.
#софт
🔥4
💪💪 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
Все вот тут
#туториал
Серия статей по асинхронному программированию от 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 если есть такая необходимость
➕ 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
Используете ли вы VPN?
Anonymous Poll
15%
Нет, мне лень
23%
Очень редко по особым случаям
39%
Регулярно
23%
Почти не выключаю/каждый день
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤2