🧑🎓🧑🎓 Мониторинг простыми словами, или как я объяснил маме работу SRE
Несмотря на то, что я не единственный айтишник в семье, объяснить свою профессию выходило немного накладно. «Что такое SRE? Как сис.админ что ли? А в чем разница-то?». И ведь действительно, с учетом того, что в РФ границы между теми же DevOps и SRE размыты, а на должность системного администратора ищут чернокнижника с опытом стабилизации прода, неудивительно, что человек и вовсе не связанный с этой сферой может запутаться.
Подробнее тут
#почитать
Несмотря на то, что я не единственный айтишник в семье, объяснить свою профессию выходило немного накладно. «Что такое SRE? Как сис.админ что ли? А в чем разница-то?». И ведь действительно, с учетом того, что в РФ границы между теми же DevOps и SRE размыты, а на должность системного администратора ищут чернокнижника с опытом стабилизации прода, неудивительно, что человек и вовсе не связанный с этой сферой может запутаться.
Подробнее тут
#почитать
1👍5🔥2
Опрос «Как вы учитесь с помощью телефона: поделитесь своим опытом!»
Мы хотим стать ещё круче, и для этого нужно узнать, как вы учитесь!
Заполните мини-анкету о том, как вы используете мобильные приложения для прокачки знаний.
⏳ Займёт всего 5 минут — как раз успеете за чашкой кофе! А за ваш ценный вклад мы дарим 15% скидку на все курсы https://proglib.academy/ 🎁
Дорогие подписчики, мы на миссии улучшений, и вы — наш ключ! 🔑
Мы хотим стать ещё круче, и для этого нужно узнать, как вы учитесь!
Заполните мини-анкету о том, как вы используете мобильные приложения для прокачки знаний.
⏳ Займёт всего 5 минут — как раз успеете за чашкой кофе! А за ваш ценный вклад мы дарим 15% скидку на все курсы https://proglib.academy/ 🎁
👍1
🧩⚛️ React + структуры данных = суперкод: 7 примеров для практики
Представляешь, оказывается, если правильно подобрать структуру данных, можно не только заставить приложение летать, но и сделать код настолько чистым и красивым, что глаз не оторвать. Серьезно, это как убраться в квартире — и жить приятнее, и гостей не стыдно позвать. Причем, это не какая-то там магия — это просто грамотный подход, который может освоить каждый разработчик, было бы желание!
Читать статью
Представляешь, оказывается, если правильно подобрать структуру данных, можно не только заставить приложение летать, но и сделать код настолько чистым и красивым, что глаз не оторвать. Серьезно, это как убраться в квартире — и жить приятнее, и гостей не стыдно позвать. Причем, это не какая-то там магия — это просто грамотный подход, который может освоить каждый разработчик, было бы желание!
Читать статью
👍2❤🔥1
🧑🎓🧑🎓Спецификации Pod Level Resource
Интересный KEP про Pod-level resource limits and requests для всех подов, без необходимости суммировать ресурсы контейнеров при шедулинге. Полезно, если нет желания рассчитывать ресурсы для каждого контейнера отдельно.
Подробнее тут
Интересный KEP про Pod-level resource limits and requests для всех подов, без необходимости суммировать ресурсы контейнеров при шедулинге. Полезно, если нет желания рассчитывать ресурсы для каждого контейнера отдельно.
Подробнее тут
❤🔥1👍1
📊🚀 Почему все говорят о Kafka?
Хочешь узнать, как обрабатывать миллионы событий в секунду и почему такие гиганты, как Netflix и Uber, без ума от Kafka? Давай разберемся, как этот инструмент может превратить поток данных в золотую жилу для твоего проекта.
Читать статью
Хочешь узнать, как обрабатывать миллионы событий в секунду и почему такие гиганты, как Netflix и Uber, без ума от Kafka? Давай разберемся, как этот инструмент может превратить поток данных в золотую жилу для твоего проекта.
Читать статью
👍3❤🔥1
Очередной #дайджест для DevOps-ов
➕ Улучшенная аналитика предупреждений в Grafana — в Grafana 11.2 появился новый интерфейс для просмотра истории состояний всех оповещений в системе
➕ GlitchTip вместо Sentry — как бесплатно настроить мониторинг ошибок
➕ Может ли пода Kubernetes быть подключена к нескольким сетям — использование Multus CNI и оператора состояния NM для добавления дополнительных сетей к модулям и виртуалкам в OpenShift Virtualization
➕ Kubectl Port-forward Flow — все, в диаграмму Mermaid, начиная с этапа аутентификации и заканчивая отправкой запроса через localhost, который отправляется через SPDY
➕ k8gb — GSLB-решение с открытым исходным кодом для Cloud Native
➕ Улучшенная аналитика предупреждений в Grafana — в Grafana 11.2 появился новый интерфейс для просмотра истории состояний всех оповещений в системе
➕ GlitchTip вместо Sentry — как бесплатно настроить мониторинг ошибок
➕ Может ли пода Kubernetes быть подключена к нескольким сетям — использование Multus CNI и оператора состояния NM для добавления дополнительных сетей к модулям и виртуалкам в OpenShift Virtualization
➕ Kubectl Port-forward Flow — все, в диаграмму Mermaid, начиная с этапа аутентификации и заканчивая отправкой запроса через localhost, который отправляется через SPDY
➕ k8gb — GSLB-решение с открытым исходным кодом для Cloud Native
👍2❤🔥1
Forwarded from Библиотека задач по DevOps | тесты, код, задания
Какой механизм использует Kubernetes для предотвращения несанкционированного доступа к конечным точкам через сервер API?
Anonymous Quiz
10%
Аутентификация прокси
13%
Авторизация конечной точки
67%
RBAC (ролевое управление доступом)
10%
Сегментация сети
🔥3❤🔥1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🪶 Как следовать принципу DRY при настройке Apache APISIX
DRY — один из самых известных принципов разработки ПО: он помогает избежать ненужного повторения фрагментов кода, которые выполняют одни и те же действия. DRY также стоит применять при настройке конфигурации сложных систем, поскольку этот принцип:
☑️ Делает конфигурацию более компактной и легкой для понимания.
☑️ Упрощает поддержку — когда нужно внести изменения, вы делаете это только в одном месте.
☑️ Повышает читаемость — конфигурация становится более структурированной и логичной, что облегчает ее понимание.
☑️ Улучшает масштабируемость — при усложнении конфигурации принципы DRY помогают сохранять ее управляемой и расширяемой.
☑️ Сокращает время на настройку — используя переиспользуемые компоненты, можно быстрее создавать новые конфигурации или модифицировать существующие.
В качестве примера в статье рассматриваем, как применять DRY при настройке конфигурации API-шлюза Apache APISIX.
🔗 Читать статью
🔗 Зеркало
DRY — один из самых известных принципов разработки ПО: он помогает избежать ненужного повторения фрагментов кода, которые выполняют одни и те же действия. DRY также стоит применять при настройке конфигурации сложных систем, поскольку этот принцип:
☑️ Делает конфигурацию более компактной и легкой для понимания.
☑️ Упрощает поддержку — когда нужно внести изменения, вы делаете это только в одном месте.
☑️ Повышает читаемость — конфигурация становится более структурированной и логичной, что облегчает ее понимание.
☑️ Улучшает масштабируемость — при усложнении конфигурации принципы DRY помогают сохранять ее управляемой и расширяемой.
☑️ Сокращает время на настройку — используя переиспользуемые компоненты, можно быстрее создавать новые конфигурации или модифицировать существующие.
В качестве примера в статье рассматриваем, как применять DRY при настройке конфигурации API-шлюза Apache APISIX.
🔗 Читать статью
🔗 Зеркало
❤🔥1😁1
🤔🤔 Как снизить расходы на мониторинг: более разумный подход к данным
Мониторинг может стать дорогостоящим из-за огромных объемов данных, которые необходимо обрабатывать. В этой статье вы узнаете о лучших способах хранения и обработки метрик мониторинга для снижения расходов и о том, как VictoriaMetrics может в этом помочь.
Подробности тут
#туториал
Мониторинг может стать дорогостоящим из-за огромных объемов данных, которые необходимо обрабатывать. В этой статье вы узнаете о лучших способах хранения и обработки метрик мониторинга для снижения расходов и о том, как VictoriaMetrics может в этом помочь.
Подробности тут
#туториал
🥰2❤🔥1👍1
🚀 Новые возможности React 19: конец эры повторных рендерингов
Новый компилятор React 19 обещает существенное повышение производительности, что станет настоящим прорывом для разработчиков. Но это лишь верхушка айсберга. В этой статье мы не только разберемся, как работает компилятор, но и погрузимся в мир других новейших возможностей React 19.
🔗 Читать статью
🔗 Зеркало
Новый компилятор React 19 обещает существенное повышение производительности, что станет настоящим прорывом для разработчиков. Но это лишь верхушка айсберга. В этой статье мы не только разберемся, как работает компилятор, но и погрузимся в мир других новейших возможностей React 19.
🔗 Читать статью
🔗 Зеркало
❤🔥1
Forwarded from Библиотека задач по DevOps | тесты, код, задания
Какой из этих вариантов не является методом WebElement?
Anonymous Quiz
14%
getText()
30%
size()
17%
setTagName()
39%
sendKeys()
❤🔥1
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
job.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
❤🔥1
Linux Dash
Позволяет мониторить:
👉 Среднюю загрузку системы (load average)
👉 Оперативную память (Всего/Использовано/Свободно)
👉 Использование дисков (свободное место)
👉 Список пользователей
👉 Список ПО и пути до бинарных файлов
👉 Список интерфейсов с их IP-адресами
👉 Текущую скорость интерфейса (Входящая/Исходящая)
👉 Список подключенных пользователей
👉 Список процессов
#софт
Позволяет мониторить:
👉 Среднюю загрузку системы (load average)
👉 Оперативную память (Всего/Использовано/Свободно)
👉 Использование дисков (свободное место)
👉 Список пользователей
👉 Список ПО и пути до бинарных файлов
👉 Список интерфейсов с их IP-адресами
👉 Текущую скорость интерфейса (Входящая/Исходящая)
👉 Список подключенных пользователей
👉 Список процессов
#софт
😁3❤🔥1🔥1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
😮 SQL: от Тетриса до ИИ — неожиданные возможности языка баз данных
Долгое время SQL использовали лишь для запросов и изменения записей в базах данных — для полноценного программирования в привычном смысле слова он не подходил. Однако добавление рекурсивных общих табличных выражений (CTE) сделало SQL полным по Тьюрингу. Рекурсивные CTE состоят из двух частей:
• Нерекурсивная часть (базовый случай) — создает начальные данные.
• Рекурсивная часть — может выполняться много раз, каждый раз используя результат предыдущего шага.
Благодаря CTE на SQL можно при желании реализовать любой алгоритм. Энтузиасты уже сделали:
• Визуализацию множества Мандельброта с помощью ASCII-графики.
• 3D-движок для рисования объемных фигур.
• GPT на 500 строках SQL-кода. Подробная статья о реализации этого проекта опубликована здесь.
• Трассировку лучей (это метод создания реалистичных изображений).
На прошлой неделе коллекция крутых SQL-проектов пополнилась еще одной интересной разработкой — версией «Тетриса».
Эта реализация демонстрирует несколько нестандартных SQL-техник, о которых стоит знать, даже если вы используете SQL только по прямому назначению:
• Игровой цикл. В основе игры – рекурсивное общее табличное выражение (CTE). Оно создает бесконечный цикл, который инициализирует состояние игры, обновляет его на основе ввода пользователя и отрисовывает игру. Цикл продолжается, пока игра не закончится.
• Вывод игры. Поскольку SQL-запрос обычно возвращает результат только после завершения, для отображения игры в реальном времени используется команда RAISE NOTICE. Эта команда выводит информацию в стандартный вывод, позволяя отображать игровое поле и другую информацию в процессе игры.
• Пользовательский ввод. Обработка пользовательского ввода реализована через отдельную таблицу в базе данных. Эта таблица служит коммуникационной шиной между игрой и пользователем. Пользователь добавляет команды в эту таблицу, а игра их считывает.
• Решение проблемы изоляции данных. Чтобы игра могла видеть новые команды, добавленные в таблицу ввода во время выполнения запроса, используется расширение dblink. Оно позволяет создавать новое подключение к базе данных с новым снимком данных, что дает возможность считывать самые последние команды пользователя.
• Предотвращение кэширования. Чтобы PostgreSQL не кэшировал результаты запроса к таблице ввода, к запросу добавляется уникальный идентификатор итерации. Это заставляет базу данных выполнять запрос заново на каждой итерации игрового цикла.
Для управления состоянием игры и обработки игровых событий используются подзапросы и агрегатные функции.
• Подзапросы позволяют вычислить новое состояние игры после каждого хода, включая позицию фигуры, состояние поля, счет и т. д. К примеру, рекурсивный подзапрос используется для вычисления максимального количества линий, на которые может упасть текущая фигура.
• Агрегации применяются для подсчета очищенных линий, выбора фигуры с наименьшим рангом, обновления счета и уровня игры. Например,
🔗 Подробнее читайте в статье
🔗 Зеркало
Долгое время SQL использовали лишь для запросов и изменения записей в базах данных — для полноценного программирования в привычном смысле слова он не подходил. Однако добавление рекурсивных общих табличных выражений (CTE) сделало SQL полным по Тьюрингу. Рекурсивные CTE состоят из двух частей:
• Нерекурсивная часть (базовый случай) — создает начальные данные.
• Рекурсивная часть — может выполняться много раз, каждый раз используя результат предыдущего шага.
Благодаря CTE на SQL можно при желании реализовать любой алгоритм. Энтузиасты уже сделали:
• Визуализацию множества Мандельброта с помощью ASCII-графики.
• 3D-движок для рисования объемных фигур.
• GPT на 500 строках SQL-кода. Подробная статья о реализации этого проекта опубликована здесь.
• Трассировку лучей (это метод создания реалистичных изображений).
На прошлой неделе коллекция крутых SQL-проектов пополнилась еще одной интересной разработкой — версией «Тетриса».
Эта реализация демонстрирует несколько нестандартных SQL-техник, о которых стоит знать, даже если вы используете SQL только по прямому назначению:
• Игровой цикл. В основе игры – рекурсивное общее табличное выражение (CTE). Оно создает бесконечный цикл, который инициализирует состояние игры, обновляет его на основе ввода пользователя и отрисовывает игру. Цикл продолжается, пока игра не закончится.
• Вывод игры. Поскольку SQL-запрос обычно возвращает результат только после завершения, для отображения игры в реальном времени используется команда RAISE NOTICE. Эта команда выводит информацию в стандартный вывод, позволяя отображать игровое поле и другую информацию в процессе игры.
• Пользовательский ввод. Обработка пользовательского ввода реализована через отдельную таблицу в базе данных. Эта таблица служит коммуникационной шиной между игрой и пользователем. Пользователь добавляет команды в эту таблицу, а игра их считывает.
• Решение проблемы изоляции данных. Чтобы игра могла видеть новые команды, добавленные в таблицу ввода во время выполнения запроса, используется расширение dblink. Оно позволяет создавать новое подключение к базе данных с новым снимком данных, что дает возможность считывать самые последние команды пользователя.
• Предотвращение кэширования. Чтобы PostgreSQL не кэшировал результаты запроса к таблице ввода, к запросу добавляется уникальный идентификатор итерации. Это заставляет базу данных выполнять запрос заново на каждой итерации игрового цикла.
Для управления состоянием игры и обработки игровых событий используются подзапросы и агрегатные функции.
• Подзапросы позволяют вычислить новое состояние игры после каждого хода, включая позицию фигуры, состояние поля, счет и т. д. К примеру, рекурсивный подзапрос используется для вычисления максимального количества линий, на которые может упасть текущая фигура.
• Агрегации применяются для подсчета очищенных линий, выбора фигуры с наименьшим рангом, обновления счета и уровня игры. Например,
BOOL_OR()
применяется для определения, есть ли хотя бы одно столкновение между фигурой и занятыми клетками на поле.🔗 Подробнее читайте в статье
🔗 Зеркало
❤🔥1
#дайджест перед выходными
🛟 Фильтры Ansible: превращаем сложное в простое — как легко и просто можно обрабатывать данные прямо в Ansible, используя его собственные мощные возможности
🛟 Azure DevOps с OpenShift — как интегрировать Azure DevOps с кластером OpenShift для создания и развертывания приложений на нем
🛟 От чего зависит, готова ли нода Kubernetes — что делать со статусом NotReady
🛟 pgbackweb — утилита для управления бэкапами PostgreSQL с графическим интерфейсом.
🛟 Inside PromQL: A closer look at the mechanics of a Prometheus query — как данные передаются от источника к конечному пункту назначения в API
🛟 Фильтры Ansible: превращаем сложное в простое — как легко и просто можно обрабатывать данные прямо в Ansible, используя его собственные мощные возможности
🛟 Azure DevOps с OpenShift — как интегрировать Azure DevOps с кластером OpenShift для создания и развертывания приложений на нем
🛟 От чего зависит, готова ли нода Kubernetes — что делать со статусом NotReady
🛟 pgbackweb — утилита для управления бэкапами PostgreSQL с графическим интерфейсом.
🛟 Inside PromQL: A closer look at the mechanics of a Prometheus query — как данные передаются от источника к конечному пункту назначения в API
❤🔥1🔥1
Claudie
Платформа для управления multi-cloud и hybrid-cloud кластерами Kubernetes с поддержкой пулов нод различных облачных провайдеров и локальных центров обработки данных
Типичные варианты использования
👉 Экономия средств
👉 Локализация данных и соответствие требованиям (например, GDPR).
👉 Управляемый Kubernetes для провайдеров, которые не предлагают подобные услуги
👉 Cloud bursting
👉 Интерконнект сервисов
#софт
Платформа для управления multi-cloud и hybrid-cloud кластерами Kubernetes с поддержкой пулов нод различных облачных провайдеров и локальных центров обработки данных
Типичные варианты использования
👉 Экономия средств
👉 Локализация данных и соответствие требованиям (например, GDPR).
👉 Управляемый Kubernetes для провайдеров, которые не предлагают подобные услуги
👉 Cloud bursting
👉 Интерконнект сервисов
#софт
❤🔥1