Как следует назвать EndpointSlice, управляемый вашим собственным кодом контроллера?
  Anonymous Quiz
    40%
    Используйте «контроллер» в качестве значения для endpointslice.kubernetes.io/managed-by
      
    27%
    Используйте значение, похожее на «мой-домен.пример/имя-контроллера»
      
    32%
    Используйте имя сервиса Kubernetes
      
    1%
    Используйте случайную строку в качестве имени
      
    Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
  
♾️💎 20 лайфxаков для DevOps-инженеров
В каждой профессии — и DevOps не исключение — есть обширный пласт тайных знаний, лайфхаков, секретов мастерства и лучших практик. Любой специалист, продержавшись в профессии достаточно долго, набирает собственный багаж таких навыков. И хотя быстрых способов стать DevOps-гуру нет, есть хитрости и инструменты, которые подарят вам мгновенный прирост продуктивности — делимся подборкой.
Читать статью
В каждой профессии — и DevOps не исключение — есть обширный пласт тайных знаний, лайфхаков, секретов мастерства и лучших практик. Любой специалист, продержавшись в профессии достаточно долго, набирает собственный багаж таких навыков. И хотя быстрых способов стать DevOps-гуру нет, есть хитрости и инструменты, которые подарят вам мгновенный прирост продуктивности — делимся подборкой.
Читать статью
👍1
  Что из перечисленного не является особенностью непрерывной доставки?
  Anonymous Quiz
    26%
    Требование к сбору
      
    22%
    Автоматизация всего
      
    11%
    Постоянное улучшение
      
    41%
    Исправления ошибок и эксперименты
      
    Какой принцип DevOps фокусируется на мышлении о продуктах и услугах?
  Anonymous Quiz
    11%
    Клиентоориентированное действие
      
    20%
    Постоянное улучшение
      
    8%
    Создавай, помня о цели
      
    61%
    Все вышеперечисленное
      
    Приглашенный спикер: Павел Запольский – Senior Quantitative Researcher at Exness и Co-founder GrowLytics. Запустивший более 10 проектов по машинному обучению и анализу данных для ведущих компаний.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👾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
  Как сервис без селекторов обеспечивает гибкость в управлении внутренними ресурсами?
  Anonymous Quiz
    20%
    Путем автоматического масштабирования подов
      
    27%
    Путем абстрагирования доступа к внешним ресурсам
      
    10%
    Путем соблюдения строгих правил выбора модулей
      
    43%
    С помощью предопределенных сетевых политик
      
    ❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
  
  Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
ad.proglib.io
  
  Вакансии в медиа «Библиотека программиста»
  Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
  🔝 React не нужен: 5 альтернативных фреймворков/библиотек
React — самый популярный инструмент для разработки фронтенда. Но не каждому проекту он нужен: есть несколько отличных библиотек и фреймворков, которые гораздо проще и во многом эффективнее.
🔗 Читать статью
🔗 Зеркало
  React — самый популярный инструмент для разработки фронтенда. Но не каждому проекту он нужен: есть несколько отличных библиотек и фреймворков, которые гораздо проще и во многом эффективнее.
🔗 Читать статью
🔗 Зеркало
Какая практика предполагает развертывание кода в производственной среде перед фактическим производством?
  Anonymous Quiz
    17%
    Непрерывное тестирование
      
    26%
    Canary Release
      
    25%
    Сине-зеленое развертывание
      
    32%
    Непрерывное развертывание
      
    Какое значение не следует использовать для метки «управляемый» EndpointSlice в Kubernetes?
  Anonymous Quiz
    36%
    “controller”
      
    22%
    “my-domain.example/name-of-controller”
      
    18%
    “staff”
      
    24%
    “cluster-admins”
      
    Организация XYZ проводит масштабную перестройку жизненного цикла разработки ПО с целью внедрения культуры DevOps. Как консультант DevOps, вы должны внедрить методы непрерывной интеграции. В этом контексте, каково основное преимущество включения автоматизированного тестирования в конвейер CI/CD?
  Выберите правильный ответ
  Anonymous Quiz
    77%
    Ускоряет цикл выпуска программного обеспечения за счет сокращения усилий по ручному тестированию
      
    8%
    Вносит задержки в конвейер CI/CD из-за времени, необходимого для автоматизированных тестов
      
    9%
    Увеличивает сотрудничество между командами разработки и эксплуатации
      
    6%
    Автоматизированное тестирование не имеет значения в контексте непрерывной интеграции
      
    Forwarded from Библиотека питониста | Python, Django, Flask
🐍🔍 7 малоизвестных возможностей стандартной библиотеки Python
Стандартная библиотека Python — это кладезь возможностей. Мы представляем семь недооценённых модулей, которые помогут вам улучшить организацию данных, оптимизировать производительность и упростить распространение ваших программ.
🔗 Читать обо всём в статье
Стандартная библиотека Python — это кладезь возможностей. Мы представляем семь недооценённых модулей, которые помогут вам улучшить организацию данных, оптимизировать производительность и упростить распространение ваших программ.
🔗 Читать обо всём в статье
