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

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

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
🔟🏩 ТОП-10 перспективных студий разработки: лучшие компании для вашего карьерного роста

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

Читать статью
2🤩1
🚶🚶 Multi-Stage Docker Builds

Начиная с версии 17.5 Docker стал поддерживать multi-stage builds. Этот метод помог разделить сложные технические сборки на несколько этапов, каждый из которых выполняет определённую задачу. Благодаря этому важному обновлению стало легче уменьшать поверхность атаки и размер образов, а также эффективнее использовать кэш Docker.

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

#туториал
👍42
💻🔍💼 Кризис IT-рынка: как джуны и кадровый голод меняют правила игры

В условиях нехватки опытных специалистов и наплыва джунов, IT-компании вынуждены искать нестандартные подходы к найму. Рассмотрим основные тренды и стратегии адаптации рынка.

Читать статью

#почитать
2👍1
Как следует назвать EndpointSlice, управляемый вашим собственным кодом контроллера?
Anonymous Quiz
27%
Используйте значение, похожее на «мой-домен.пример/имя-контроллера»
32%
Используйте имя сервиса Kubernetes
1%
Используйте случайную строку в качестве имени
👍2
#дайджест перед выходными

🔴 Patch Operator — крутой помощник в патчах

🔴 Почему не следует анализировать выходные данные ls — материал об обработке вывода команды ls, пробелах в именах файлов и их обработке в скриптах

🔴 CodeQL: From zero to hero — про CodeQL, принципы его работы и возможности.

🔴 Picosnitch — мониторинг сетевого трафика на каждый исполняемый файл с помощью BPF.

🔴 Разработка Nginx перешла с Mercurial на Git — репозиторий проекта теперь на GitHub, а GitHub Issues и GitHub Discussions вместо системы отслеживания ошибок trac.nginx.org
4
🔍🏃 С Vitest ваше тестирование в Vite станет легким и эффективным

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

Читать статью
👍21
Привет, друзья! 👋

Мы хотим обсудить важную тему — токсичность в среде разработчиков и значимость поддержки и наставничества. Нам интересно узнать ваше мнение и опыт! Поделитесь своими мыслями, и самые полезные советы мы включим в нашу статью. Вот несколько вопросов для вас:

🤔 Приходилось ли вам сталкиваться с токсичными коллегами на работе? Как вы справлялись с этой ситуацией?
🌟 Какие качества вы считаете важными для хорошего наставника в IT-сфере?
💡 Какие советы вы бы дали тем, кто хочет создать более поддерживающую и позитивную рабочую атмосферу?

Спасибо за ваше участие! Ваши ответы помогут сделать рабочую среду лучше для всех. 🚀
👏32🎉2
Перечислите некоторые исходные пространства имен, из которых запускается Kubernetes.

Вот некоторые начальные пространства имен:
Default: это пространство имен включено Kubernetes, чтобы пользователи могли начать использовать новый кластер без необходимости предварительного создания пространства имен.
Kube-system: это пространство имен для объектов, созданное системой Kubernetes.
Kube-public: это пространство имен доступно для чтения как аутентифицированным, так и неаутентифицированным клиентам. Оно зарезервировано в основном для использования в кластере.
👍21🌚1
Kamal

Open Source-инструмент для развёртывания веб-приложений с помощью Docker. В нем всё одинаково просто работает и при деплое на 50 серверов, и при деплое 5 приложений на одном сервере.

Особенности:
👉 переход с использования прокси Traefik на собственный kamal-proxy;
👉 Kamal 2.0 будет запускать все контейнеры в кастомной сети Docker;
👉 новый способ передачи секретов в контейнеры.

#софт
👍31
🤔🤔 Proxmox vs FreeBSD: кто производительнее

Сравнительные тесты Proxmox и Bhyve

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

#туториал
👍51
⚙️ Подпишись на нашу еженедельную email-рассылку, чтобы быть в курсе последних открытий и тенденций в мире бэкенда.

В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования

👉Подписаться👈
3❤‍🔥2🔥2
🐞🔍 Инструменты отладки JavaScript: 7 незаменимых помощников разработчика

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

🔗 Читать статью
🔗 Зеркало
😁32🔥1
Очередной #дайджест для DevOps-ов

🛟 Armada — используя Armada, Kubernetes может стать основой для пакетной обработки и обслуживания рабочих нагрузок и выполнения миллионов заданий на нодах в день

🛟 Kubernetes на Proxmox — в статье автор создает кластер и две ноды: управление и рабочая. В качестве дополнительной задачи — сквозной доступ к PCIe для рабочей ноды

🛟 Рассказ о переводе Kubernetes на новую платформу— связка website-metadata-scraper, KDP, ArgoCD и CloudFlare с шифрованием origin

🛟 Практический пентест Kubernetes — правильная настройка среды оркестрации влияет на работу всей инфраструктуры

🛟 Введение в Istio для Kubernetes: основы и начальная настройка — мощная платформа, обеспечивающая сетевое взаимодействие, безопасность и наблюдаемость в кластере Kubernetes
1👍31🎉1
#вопросы_с_собеседования

Объясните концепцию Ingress в Kubernetes

Ingress — это объект API Kubernetes, который используется для предоставления маршрутов HTTP и HTTPS извне кластера к сервисам внутри кластера. Это обеспечивает единую точку входа в кластер, позволяет более просто управлять приложениями и устранять проблемы с маршрутизацией.
3🔥2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
⚛️🔄 Улучшенная обработка асинхронных операций в React 19

Новая функциональность в React 19 направлена, прежде всего, на улучшение:
☑️ Управления состоянием.
☑️ Обработки ошибок.
☑️ Работы с асинхронными операциями.

👉 Рассмотрим ключевые улучшения подробнее:
▪️ Actions предназначены для обработки асинхронных запросов и автоматизации управления отложенными состояниями, ошибками и оптимистичными обновлениями. Фронтендеры теперь могут работать с асинхронными операциями более интуитивно, сохраняя пользовательский интерфейс отзывчивым в любое время — даже когда запросы выполняются в реальном времени.
▪️ Улучшенная работа с формами: в React 19 появился новый хук useActionState, который предоставляет разработчикам встроенную поддержку для обработки состояний и отправки формы.
▪️ Оптимистические обновления — способ мгновенно показать пользователю предполагаемый финальный результат в интерфейсе, даже если в фоновом режиме продолжается обработка данных. Это делает приложение более отзывчивым, особенно в случаях плохого соединения или долгих запросов. Если при выполнении возникает ошибка, интерфейс возвращается к исходному состоянию.
▪️ В React 19 появилась новая возможность — использовать API use для работы с ресурсами, такими как промисы и контексты, прямо внутри функции рендеринга. Это позволяет использовать use даже в условных конструкциях, что ранее было невозможно с хуками.
▪️ Server Components в React 19 — новый способ рендеринга компонентов: рендеринг происходит заранее, либо один раз во время сборки, либо при каждом запросе на сервере, который отделен от клиентской части приложения. Похожим образом реализован серверный рендеринг в Next.js.
▪️ Server Actions — новая функция в React, позволяющая компонентам на клиенте вызывать асинхронные функции, выполняемые на сервере.

🔗 Читать статью полностью
🔗 Зеркало
Please open Telegram to view this post
VIEW IN TELEGRAM
33
Объясните, что такое диспетчер облачного контроллера.

Cloud Controller Manager позволяет связать кластер с API облачного провайдера. Cloud-controller manager позволяет поставщикам облачных услуг развиваться независимо от основного кода Kubernetes, абстрагируя специфичный код. Это позволяет поставщикам облачных услуг разрабатывать и поддерживать свой код независимо от основного кода Kubernetes.

Используя CCM, облачные операции, такие как создание и управление балансировщиками нагрузки, томами блочного хранения и облачными сетевыми ресурсами, могут выполняться бесперебойно в кластере Kubernetes. Это позволяет пользователям использовать преимущества как Kubernetes, так и облачного провайдера, сводя к минимуму потенциальные проблемы совместимости.
👍31
Forwarded from Библиотека программиста | программирование, кодинг, разработка
😮 SQL: от Тетриса до ИИ — неожиданные возможности языка баз данных

Долгое время SQL использовали лишь для запросов и изменения записей в базах данных — для полноценного программирования в привычном смысле слова он не подходил. Однако добавление рекурсивных общих табличных выражений (CTE) сделало SQL полным по Тьюрингу. Рекурсивные CTE состоят из двух частей:

• Нерекурсивная часть (базовый случай) — создает начальные данные.
• Рекурсивная часть — может выполняться много раз, каждый раз используя результат предыдущего шага.

Благодаря CTE на SQL можно при желании реализовать любой алгоритм. Энтузиасты уже сделали:

Визуализацию множества Мандельброта с помощью ASCII-графики.
3D-движок для рисования объемных фигур.
GPT на 500 строках SQL-кода. Подробная статья о реализации этого проекта опубликована здесь.
Трассировку лучей (это метод создания реалистичных изображений).

На прошлой неделе коллекция крутых SQL-проектов пополнилась еще одной интересной разработкой — версией «Тетриса».

Эта реализация демонстрирует несколько нестандартных SQL-техник, о которых стоит знать, даже если вы используете SQL только по прямому назначению:

Игровой цикл. В основе игры – рекурсивное общее табличное выражение (CTE). Оно создает бесконечный цикл, который инициализирует состояние игры, обновляет его на основе ввода пользователя и отрисовывает игру. Цикл продолжается, пока игра не закончится.
Вывод игры. Поскольку SQL-запрос обычно возвращает результат только после завершения, для отображения игры в реальном времени используется команда RAISE NOTICE. Эта команда выводит информацию в стандартный вывод, позволяя отображать игровое поле и другую информацию в процессе игры.
Пользовательский ввод. Обработка пользовательского ввода реализована через отдельную таблицу в базе данных. Эта таблица служит коммуникационной шиной между игрой и пользователем. Пользователь добавляет команды в эту таблицу, а игра их считывает.
Решение проблемы изоляции данных. Чтобы игра могла видеть новые команды, добавленные в таблицу ввода во время выполнения запроса, используется расширение dblink. Оно позволяет создавать новое подключение к базе данных с новым снимком данных, что дает возможность считывать самые последние команды пользователя.
Предотвращение кэширования. Чтобы PostgreSQL не кэшировал результаты запроса к таблице ввода, к запросу добавляется уникальный идентификатор итерации. Это заставляет базу данных выполнять запрос заново на каждой итерации игрового цикла.

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

• Подзапросы позволяют вычислить новое состояние игры после каждого хода, включая позицию фигуры, состояние поля, счет и т. д. К примеру, рекурсивный подзапрос используется для вычисления максимального количества линий, на которые может упасть текущая фигура.
• Агрегации применяются для подсчета очищенных линий, выбора фигуры с наименьшим рангом, обновления счета и уровня игры. Например, BOOL_OR() применяется для определения, есть ли хотя бы одно столкновение между фигурой и занятыми клетками на поле.

🔗 Подробнее читайте в статье
🔗 Зеркало
😁32👍1
Привет, друзья! 👋

Мы готовим статью о распространенных ошибках в карьере программиста и хотели бы услышать ваше мнение! Поделитесь своими мыслями и опытом, и самые полезные советы мы включим в нашу статью. Вот несколько вопросов для вас:

🤔 С какими ошибками в своей карьере программиста вы сталкивались? Как вы их преодолели?
📚 Какие советы вы бы дали начинающим разработчикам, чтобы избежать распространенных ловушек в программировании?
🖥️ Что, по вашему мнению, важно учитывать при планировании своей карьеры в IT, чтобы минимизировать сожаления в будущем?

Спасибо за ваше участие! 🚀
👍21