Что такое Filebeat?
Filebeat используется для мониторинга каталогов логов внутри виртуальных машин или монтируется в качестве вспомогательного устройства при экспорте журналов из контейнеров, а затем пересылает эти логи для дальнейшей обработки, обычно в logstash.
Filebeat используется для мониторинга каталогов логов внутри виртуальных машин или монтируется в качестве вспомогательного устройства при экспорте журналов из контейнеров, а затем пересылает эти логи для дальнейшей обработки, обычно в logstash.
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
♾️💎 20 лайфxаков для DevOps-инженеров
В каждой профессии — и DevOps не исключение — есть обширный пласт тайных знаний, лайфхаков, секретов мастерства и лучших практик. Любой специалист, продержавшись в профессии достаточно долго, набирает собственный багаж таких навыков. И хотя быстрых способов стать DevOps-гуру нет, есть хитрости и инструменты, которые подарят вам мгновенный прирост продуктивности — делимся подборкой.
Читать статью
В каждой профессии — и DevOps не исключение — есть обширный пласт тайных знаний, лайфхаков, секретов мастерства и лучших практик. Любой специалист, продержавшись в профессии достаточно долго, набирает собственный багаж таких навыков. И хотя быстрых способов стать DevOps-гуру нет, есть хитрости и инструменты, которые подарят вам мгновенный прирост продуктивности — делимся подборкой.
Читать статью
Что такое сокет? Где можно увидеть список сокетов в вашей системе?
Сокет — это программная конечная точка, которая обеспечивает двустороннюю связь между процессами по сети. Сокеты предоставляют стандартизированный интерфейс для сетевой связи, позволяя приложениям отправлять и получать данные по сети. Чтобы просмотреть список открытых сокетов в системе Linux: netstat -an Эта команда отображает список всех открытых сокетов, а также их протокол, локальный адрес, внешний адрес и состояние.
Сокет — это программная конечная точка, которая обеспечивает двустороннюю связь между процессами по сети. Сокеты предоставляют стандартизированный интерфейс для сетевой связи, позволяя приложениям отправлять и получать данные по сети. Чтобы просмотреть список открытых сокетов в системе Linux: netstat -an Эта команда отображает список всех открытых сокетов, а также их протокол, локальный адрес, внешний адрес и состояние.
Знаете ли вы, что такое «теорема CAP»? (так называемая теорема Брюера)
Согласно теореме CAP, распределенное хранилище данных не может одновременно предоставлять более двух из следующих данных:
Доступность: на каждый запрос приходит ответ (не обязательно самые последние данные); Согласованность: на каждый запрос приходит ответ с самыми последними данными.
Согласно теореме CAP, распределенное хранилище данных не может одновременно предоставлять более двух из следующих данных:
Доступность: на каждый запрос приходит ответ (не обязательно самые последние данные); Согласованность: на каждый запрос приходит ответ с самыми последними данными.
Приглашенный спикер: Павел Запольский – Senior Quantitative Researcher at Exness и Co-founder GrowLytics. Запустивший более 10 проектов по машинному обучению и анализу данных для ведущих компаний.
Please open Telegram to view this post
VIEW IN TELEGRAM
📶 Паттерны коммуникации в распределенных системах
Распределенные системы состоят из многих отдельных частей/узлов, работающих вместе, но физически расположенных в разных местах. Эти части системы должны общаться друг с другом через сеть, чтобы система могла функционировать как единое целое.
Хотя коммуникация критически важна, правильно ее организовать бывает непросто: разработчики иногда пытаются использовать один и тот же подход ко всем задачам коммуникации, что может быть неэффективно. Важно понимать, что существуют разные способы организации коммуникации, и выбор правильного метода зависит от конкретной задачи. Рассмотрим основные паттерны коммуникации, которые можно использовать для решения разных задач.
☑️ Запрос-ответ с 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
В чем разница между var x int = 2 и x := 2 в Go?
Результат тот же — переменная со значением 2. С помощью var x int = 2 мы устанавливаем тип переменной как целое число, а с помощью x := 2 мы позволяем Go самому определить тип.
Результат тот же — переменная со значением 2. С помощью var x int = 2 мы устанавливаем тип переменной как целое число, а с помощью x := 2 мы позволяем Go самому определить тип.
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
ad.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
🔝 React не нужен: 5 альтернативных фреймворков/библиотек
React — самый популярный инструмент для разработки фронтенда. Но не каждому проекту он нужен: есть несколько отличных библиотек и фреймворков, которые гораздо проще и во многом эффективнее.
🔗 Читать статью
🔗 Зеркало
React — самый популярный инструмент для разработки фронтенда. Но не каждому проекту он нужен: есть несколько отличных библиотек и фреймворков, которые гораздо проще и во многом эффективнее.
🔗 Читать статью
🔗 Зеркало
Что такое Workspaces в Terraform?
Workspaces в Terraform — это возможность управления state файлами. Workspace содержит все что необходимо для управления набором инфраструктуры, а отдельные рабочие области функционируют как полностью отдельные рабочие каталоги. С помощью Workspaces возможно управлять несколькими средами инфраструктуры.
Workspaces в Terraform — это возможность управления state файлами. Workspace содержит все что необходимо для управления набором инфраструктуры, а отдельные рабочие области функционируют как полностью отдельные рабочие каталоги. С помощью Workspaces возможно управлять несколькими средами инфраструктуры.
Вопрос, который вы, как кандидат, можете задать на собеседовании: Каков текущий уровень технического долга, с которым вы имеете дело?
Будьте осторожны, задавая этот вопрос — все компании, независимо от размера, имеют определенный уровень технической задолженности. Сформулируйте вопрос в свете того, что все компании сталкиваются с этим, но вы хотите увидеть текущие болевые точки, с которыми сталкиваются именно они. Это отличный способ понять, как менеджеры справляются с незапланированной работой и насколько хорошо они устанавливают ожидания в отношении проектов.
Будьте осторожны, задавая этот вопрос — все компании, независимо от размера, имеют определенный уровень технической задолженности. Сформулируйте вопрос в свете того, что все компании сталкиваются с этим, но вы хотите увидеть текущие болевые точки, с которыми сталкиваются именно они. Это отличный способ понять, как менеджеры справляются с незапланированной работой и насколько хорошо они устанавливают ожидания в отношении проектов.
Какие коды ответа HTTP существуют?
1xx — информационный
2xx — успех
3xx — перенаправление
4xx — ошибка, сбой клиента
5xx — ошибка, сбой сервера
1xx — информационный
2xx — успех
3xx — перенаправление
4xx — ошибка, сбой клиента
5xx — ошибка, сбой сервера
Forwarded from Библиотека питониста | Python, Django, Flask
🐍🔍 7 малоизвестных возможностей стандартной библиотеки Python
Стандартная библиотека Python — это кладезь возможностей. Мы представляем семь недооценённых модулей, которые помогут вам улучшить организацию данных, оптимизировать производительность и упростить распространение ваших программ.
🔗 Читать обо всём в статье
Стандартная библиотека Python — это кладезь возможностей. Мы представляем семь недооценённых модулей, которые помогут вам улучшить организацию данных, оптимизировать производительность и упростить распространение ваших программ.
🔗 Читать обо всём в статье