Не пора ли Docker свалить в закат? (заметка на подумать перед началом рабочей недели)
Основная проблема Docker — это наличие демона. Последнее означает единую точку отказа и необходимость запуска от рута. А вот, например, containerd ничего из этого не требуется. Есть ещё podman, которому не требуется демон и права рута для запуска. А еще его команды полностью совместимы с Docker.
На что я бы поменял Docker:
🚀 для локальной разработки можно использовать Podman, Colima или NerdCTL. Они легкие, быстрые и не требуют Docker Desktop.
🚀 для конвейеров CI/CD containerd. Он более эффективен, лучше интегрируется с Kubernetes и не зависит от демона.
🚀 для Kubernetes runtime можно юзать CRI-O или containerd. Оба Kubernetes-native и не требуют дополнительных прокладок.
🚀 для пользователей рабочих станций отличными альтернативами станут Rancher Desktop (если нужен графический интерфейс) или Podman (для управления через CLI).
❗️ Дорогие читатели канала, расскажите в комментариях, что вы думаете о перспективах Docker. Ещё не начинали искать замену?
Основная проблема Docker — это наличие демона. Последнее означает единую точку отказа и необходимость запуска от рута. А вот, например, containerd ничего из этого не требуется. Есть ещё podman, которому не требуется демон и права рута для запуска. А еще его команды полностью совместимы с Docker.
На что я бы поменял Docker:
🚀 для локальной разработки можно использовать Podman, Colima или NerdCTL. Они легкие, быстрые и не требуют Docker Desktop.
🚀 для конвейеров CI/CD containerd. Он более эффективен, лучше интегрируется с Kubernetes и не зависит от демона.
🚀 для Kubernetes runtime можно юзать CRI-O или containerd. Оба Kubernetes-native и не требуют дополнительных прокладок.
🚀 для пользователей рабочих станций отличными альтернативами станут Rancher Desktop (если нужен графический интерфейс) или Podman (для управления через CLI).
❗️ Дорогие читатели канала, расскажите в комментариях, что вы думаете о перспективах Docker. Ещё не начинали искать замену?
🔥15👍11☃3🤡3❤2
Несколько интересных утилит Linux, которые могут заменить те, что вы используете каждый день
🚀 Забытые планировщики
или
🚀 Запуск служб «на лету» с
🚀 Автоматическая оптимизация производительности с
🚀 Защита от удаления с
🚀 Забытые планировщики
at
и batch
, с которыми не нужно редактировать файлы как с cron
.echo "shutdown -h now" | at 11:00 PM
или
echo "updatedb" | batch
🚀 Запуск служб «на лету» с
systemd-run
. Подходит для тестирования служб или планирования задач по обслуживанию с полной поддержкой systemd. Запуск без создания файла службы:systemd-run --unit=backup-job tar -czf /backup/home.tar.gz /home
🚀 Автоматическая оптимизация производительности с
tuned
. Динамически регулирует параметры системы в зависимости от типа рабочей нагрузки (виртуализация, пропускная способность, задержка и т. д.). Предварительно изучите принцип работы утилиты.dnf install tuned
tuned-adm profile throughput-performance
🚀 Защита от удаления с
chattr
. Даже root не сможет удалить или изменить файл пока не удалить неизменяемый бит.chattr +i /etc/passwd
👍17❤1🔥1🤔1
kpatch
kpatch — это утилита для исправления ядра Linux, которая позволяет патчить работающее ядро без перезагрузки или перезапуска каких-либо процессов. Она позволяет системным администраторам немедленно применять критические исправления безопасности к ядру, не дожидаясь завершения длительных задач, выхода пользователей из системы или запланированных окон перезагрузки.
Репыч на Гитхабе
kpatch — это утилита для исправления ядра Linux, которая позволяет патчить работающее ядро без перезагрузки или перезапуска каких-либо процессов. Она позволяет системным администраторам немедленно применять критические исправления безопасности к ядру, не дожидаясь завершения длительных задач, выхода пользователей из системы или запланированных окон перезагрузки.
Репыч на Гитхабе
🔥9👍5❤3🤝1
Сбор событий Linux: есть цель – ищем путь
В этой статье рассматриваются подходы к тонкой настройке журналирования в Linux, а также события и их назначение, которые записываются в определенные системные журналы. Особенно полезно, если вы занимаетесь инфобезом.
В этой статье рассматриваются подходы к тонкой настройке журналирования в Linux, а также события и их назначение, которые записываются в определенные системные журналы. Особенно полезно, если вы занимаетесь инфобезом.
🔥3👍2🤣2
О ненависти к российским дистрибутивам Linux
Автор статьи рассуждает на тему ненависти к российским дистрам Linux. Предлагает посмотреть на иностранные Rocky Linux, RHEV и прочие форки. Типа а почему это не хейтят их забугорных собратьев? Мое мнение таково: весь хейт связан с тем, что во многих организациях использование российских ОС является принудительным в госструктурах. Коли б не этот факт, рынок бы сам порешал.
А вы считаете отечественные ОС достойной заменой того же коммерческого RedHat или даже заменой иностранных ОС при условии бесплатного использования?
Автор статьи рассуждает на тему ненависти к российским дистрам Linux. Предлагает посмотреть на иностранные Rocky Linux, RHEV и прочие форки. Типа а почему это не хейтят их забугорных собратьев? Мое мнение таково: весь хейт связан с тем, что во многих организациях использование российских ОС является принудительным в госструктурах. Коли б не этот факт, рынок бы сам порешал.
А вы считаете отечественные ОС достойной заменой того же коммерческого RedHat или даже заменой иностранных ОС при условии бесплатного использования?
🤡28👍9🖕5🤨3❤1
Как работает DNS в Linux. Часть 2: все уровни DNS-кэширования
В первой части было разобрано, как в Linux работает процесс разрешения имен — от вызова getaddrinfo() до получения IP-адреса. Однако если бы каждый вызов требовал нового DNS-запроса, это было бы неэффективно и сильно нагружало как систему, так и сеть. Поэтому используется кэширование.
Кэширование DNS может быть везде — в glibc, в systemd-resolved, в браузерах и даже в приложениях на Go. Кэш помогает увеличить скорость работы, но создает дополнительные сложности при отладке. Например: вы меняете DNS-запись, но сервер продолжает ходить по старому IP-адресу. Или, Dig показывает правильный адрес, а curl всё равно подключается к устаревшему.
В этой статье разобраны различные уровни кэшей самой системы, приложений и языков программирования, контейнеров, прокси. А также их мониторинг и сброс.
В первой части было разобрано, как в Linux работает процесс разрешения имен — от вызова getaddrinfo() до получения IP-адреса. Однако если бы каждый вызов требовал нового DNS-запроса, это было бы неэффективно и сильно нагружало как систему, так и сеть. Поэтому используется кэширование.
Кэширование DNS может быть везде — в glibc, в systemd-resolved, в браузерах и даже в приложениях на Go. Кэш помогает увеличить скорость работы, но создает дополнительные сложности при отладке. Например: вы меняете DNS-запись, но сервер продолжает ходить по старому IP-адресу. Или, Dig показывает правильный адрес, а curl всё равно подключается к устаревшему.
В этой статье разобраны различные уровни кэшей самой системы, приложений и языков программирования, контейнеров, прокси. А также их мониторинг и сброс.
👍9🔥3🤮1
Получаем root через iptables
Iptables — это утилита пользовательского пространства в Linux, используемая для настройки правил фильтрации пакетов в брандмауэре ядра Linux, называемом netfilter. По сути, это инструмент командной строки, позволяющий администраторам управлять обработкой сетевого трафика системой.
У iptables есть параметр ‑modprobe, предназначенный для загрузки всех необходимых модулей при добавлении правил в цепочку. А вот дальше уже дело техники.
Iptables — это утилита пользовательского пространства в Linux, используемая для настройки правил фильтрации пакетов в брандмауэре ядра Linux, называемом netfilter. По сути, это инструмент командной строки, позволяющий администраторам управлять обработкой сетевого трафика системой.
У iptables есть параметр ‑modprobe, предназначенный для загрузки всех необходимых модулей при добавлении правил в цепочку. А вот дальше уже дело техники.
👍7🔥6🤡4❤1
Bash vs Python: битва, где нет проигравших
В мире автоматизации часто возникает вопрос: писать скрипт на Bash или на Python? Оба инструмента подходят отлично, но принципиально разные. Bash — больше про "скоропись", для системных задач, где важна скорость и краткость. Python же — универсальный язык, который намного лучше справляется со сложной логикой и структурами данных. Но когда лучше выбрать один, а когда - другой?
Некоторые задачи в Bash решаются одной строкой, когда же на Python потребуется десяток строк кода. При усложнении сценария - Bash превращается в головоломку из awk, sed и прочих, что значительно усложняет поддержку. В этой статье сравниваются подходы и определяется, когда и какой язык лучше использовать.
В мире автоматизации часто возникает вопрос: писать скрипт на Bash или на Python? Оба инструмента подходят отлично, но принципиально разные. Bash — больше про "скоропись", для системных задач, где важна скорость и краткость. Python же — универсальный язык, который намного лучше справляется со сложной логикой и структурами данных. Но когда лучше выбрать один, а когда - другой?
Некоторые задачи в Bash решаются одной строкой, когда же на Python потребуется десяток строк кода. При усложнении сценария - Bash превращается в головоломку из awk, sed и прочих, что значительно усложняет поддержку. В этой статье сравниваются подходы и определяется, когда и какой язык лучше использовать.
👍6🔥5🥴2
Как один глупый Bash-скрипт сэкономил 100 часов ручной работы
Есть некоторая ирония в том, как простые инструменты решают сложные задачи. Пока технические форумы гудят от обсуждений Kubernetes, пайплайнов машинного обучения и микросервисных архитектур, автор этой статьи хочет на минуту отвлечься и поговорить о чем-то до безобразия простом: Bash-скрипте. Не особенно изящном. Без функций. Без параметров. Без проверок корректности. Просто линейный, безжалостно прагматичный shell-скрипт, который за год сэкономил ему несколько недель работы.
Это история не о красоте кода, а об его полезности. Не о совершенстве, а о решении реальных проблем в условиях нехватки времени, терпения и мотивации команды. Если вы разработчик, системный администратор, специалист по данным или просто устали от рутинных задач — этот пост для вас.
Есть некоторая ирония в том, как простые инструменты решают сложные задачи. Пока технические форумы гудят от обсуждений Kubernetes, пайплайнов машинного обучения и микросервисных архитектур, автор этой статьи хочет на минуту отвлечься и поговорить о чем-то до безобразия простом: Bash-скрипте. Не особенно изящном. Без функций. Без параметров. Без проверок корректности. Просто линейный, безжалостно прагматичный shell-скрипт, который за год сэкономил ему несколько недель работы.
Это история не о красоте кода, а об его полезности. Не о совершенстве, а о решении реальных проблем в условиях нехватки времени, терпения и мотивации команды. Если вы разработчик, системный администратор, специалист по данным или просто устали от рутинных задач — этот пост для вас.
👍10❤2🔥1
Как установить GUI на сервер Ubuntu 24.04
Изначально Ubuntu Server создавался как легкая и производительная операционная система для работы с задачами на серверах. Именно поэтому на них по умолчанию не устанавливается графический интерфейс (GUI) — это позволяет экономить ресурсы, ускорять работу системы и повышать ее безопасность.
Однако бывают ситуации, когда графический интерфейс на сервере все же необходим. Например, если вам нужно запускать привычные десктопные программы прямо на сервере, тестировать приложения с графическим управлением и решать другие задачи. В статье пошагово рассказывают, как установить GUI на примере сервера Ubuntu 24.04 с минимальной конфигурацией.
Изначально Ubuntu Server создавался как легкая и производительная операционная система для работы с задачами на серверах. Именно поэтому на них по умолчанию не устанавливается графический интерфейс (GUI) — это позволяет экономить ресурсы, ускорять работу системы и повышать ее безопасность.
Однако бывают ситуации, когда графический интерфейс на сервере все же необходим. Например, если вам нужно запускать привычные десктопные программы прямо на сервере, тестировать приложения с графическим управлением и решать другие задачи. В статье пошагово рассказывают, как установить GUI на примере сервера Ubuntu 24.04 с минимальной конфигурацией.
💊12👍2🔥1
pg_dphyp: учим PostgreSQL соединять таблицы по-другому
Эта статья не о DPhyp как таковом, а о том, с чем автору статьи пришлось столкнуться в процессе написания соответствующего расширения для PostgreSQL.
Статья на Хабре
Репыч на Гитхабе
Эта статья не о DPhyp как таковом, а о том, с чем автору статьи пришлось столкнуться в процессе написания соответствующего расширения для PostgreSQL.
Статья на Хабре
Репыч на Гитхабе
👍2🔥1
Цикл из 2 статей
Закрепление включает в себя методы, которые злоумышленники используют для сохранения доступа к системам после перезагрузок, смены учетных данных и других событий, способных прервать их доступ. Атакующие применяют техники закрепления, чтобы не пришлось повторять этапы эксплуатации.
Поиск способов закрепления в Linux (Часть 1)
Поиск способов закрепления в Linux (Часть 2). Манипуляция учётными записями
Закрепление включает в себя методы, которые злоумышленники используют для сохранения доступа к системам после перезагрузок, смены учетных данных и других событий, способных прервать их доступ. Атакующие применяют техники закрепления, чтобы не пришлось повторять этапы эксплуатации.
Поиск способов закрепления в Linux (Часть 1)
Поиск способов закрепления в Linux (Часть 2). Манипуляция учётными записями
👍2🔥1
How we built fast UPDATEs for the ClickHouse column store – Part 1: Purpose-built engines
Колоночные хранилища данных не предназначены для обновлений на уровне строк. ClickHouse не стал исключением: он разработан для обеспечения высокой скорости при масштабировании, оптимизирован для быстрых вставок и аналитики, а не для изменения отдельных строк. Однако, реальный опыт использования иногда требует обновления отдельных строк.
Пользователи ClickHouse часто его используют для хранения быстро меняющихся данных: данные Интернета вещей (показания датчиков) , электронной коммерции (заказы и инвентарь) , финансов (статус платежей) , игр (статистика игроков) и CRM/HR (профили пользователей или сотрудников) — данные, которые необходимо корректировать, обновлять или удалять. Вместо того, чтобы принудительно выполнять медленные операции обновления (UPDATE) в системе, рассчитанной на большие объемы данных, в Clickhouse пошли другим путем: они рассматривают обновления как вставки.
Это не обходной путь, а осознанное решение. Такие движки, как ReplacingMergeTree , CoalescingMergeTree и CollapsingMergeTree , позволяют ClickHouse обрабатывать обновления и удаления, записывая новые строки вместо изменения существующих. Они используют высокую производительность ClickHouse при вставке и фоновый процесс слияния, избегая снижения производительности, характерного для обновлений на месте.
Читать дальше в блоге Clickhouse
Колоночные хранилища данных не предназначены для обновлений на уровне строк. ClickHouse не стал исключением: он разработан для обеспечения высокой скорости при масштабировании, оптимизирован для быстрых вставок и аналитики, а не для изменения отдельных строк. Однако, реальный опыт использования иногда требует обновления отдельных строк.
Пользователи ClickHouse часто его используют для хранения быстро меняющихся данных: данные Интернета вещей (показания датчиков) , электронной коммерции (заказы и инвентарь) , финансов (статус платежей) , игр (статистика игроков) и CRM/HR (профили пользователей или сотрудников) — данные, которые необходимо корректировать, обновлять или удалять. Вместо того, чтобы принудительно выполнять медленные операции обновления (UPDATE) в системе, рассчитанной на большие объемы данных, в Clickhouse пошли другим путем: они рассматривают обновления как вставки.
Это не обходной путь, а осознанное решение. Такие движки, как ReplacingMergeTree , CoalescingMergeTree и CollapsingMergeTree , позволяют ClickHouse обрабатывать обновления и удаления, записывая новые строки вместо изменения существующих. Они используют высокую производительность ClickHouse при вставке и фоновый процесс слияния, избегая снижения производительности, характерного для обновлений на месте.
Читать дальше в блоге Clickhouse
👍4❤1🔥1🤡1
How we built fast UPDATEs for the ClickHouse column store – Part 2: SQL-style UPDATEs
Это вторая часть цикла статей о принципах выполнения обновления данных в Clickhouse. Здесь разбираются примеры SQL-запросов.
Читать дальше в блоге Clickhouse
P.S. Будет еще 3 часть.
Это вторая часть цикла статей о принципах выполнения обновления данных в Clickhouse. Здесь разбираются примеры SQL-запросов.
Читать дальше в блоге Clickhouse
P.S. Будет еще 3 часть.
👍2🔥1🤡1
Структура файловой иерархии Linux
Структура файловой иерархии Linux, также известная как Filesystem Hierarchy Standard (FHS), определяет организацию каталогов и их содержимое в операционных системах, подобных Unix. За поддержание стандарта отвечает организация Linux Foundation. Читать дальше на Хабре.
Структура файловой иерархии Linux, также известная как Filesystem Hierarchy Standard (FHS), определяет организацию каталогов и их содержимое в операционных системах, подобных Unix. За поддержание стандарта отвечает организация Linux Foundation. Читать дальше на Хабре.
❤6👍2🤡2🔥1
Intel прикрыла Clear Linux: конец эпохи «самого быстрого» дистрибутива
Intel внезапно поставила точку в истории Clear Linux — дистрибутива, который больше десяти лет считался одним из самых шустрых в мире Linux. Разработка остановлена, поддержка прекращена, а пользователям настоятельно советуют паковать чемоданы и мигрировать на другие системы. Что привело к такому решению, какие уникальные фичи Clear Linux уже не увидят свет? А главное — что это значит для Linux-сообщества? Подробности.
Intel внезапно поставила точку в истории Clear Linux — дистрибутива, который больше десяти лет считался одним из самых шустрых в мире Linux. Разработка остановлена, поддержка прекращена, а пользователям настоятельно советуют паковать чемоданы и мигрировать на другие системы. Что привело к такому решению, какие уникальные фичи Clear Linux уже не увидят свет? А главное — что это значит для Linux-сообщества? Подробности.
🔥2❤1👍1
В этом цикле статей автор максимально понятно и подробно рассказывает о том, что такое Embedded Linux в целом и Buildroot в частности.
Embedded Linux для начинающих (Часть первая)
Embedded Linux для начинающих (Часть вторая)
Embedded Linux для начинающих (Часть первая)
Embedded Linux для начинающих (Часть вторая)
🔥2👍1
Поиск способов закрепления в Linux (Часть 3). Systemd, таймеры и Cron
3 статья цикла о методах, которые злоумышленники используют для сохранения доступа к системам после перезагрузок, смены учетных данных и других событий, способных прервать их доступ.
В этой статье обсуждается, как злоумышленники могут создавать сервисы и планировщики задач для закрепления и рассмотриваются следующие техники:
🚀Создание или модификация системного процесса: сервис Systemd
🚀Планировщик задач/джоб: таймеры Systemd
🚀Планировщик задач/джоб: Cron
Предыдущие две статьи цикла
3 статья цикла о методах, которые злоумышленники используют для сохранения доступа к системам после перезагрузок, смены учетных данных и других событий, способных прервать их доступ.
В этой статье обсуждается, как злоумышленники могут создавать сервисы и планировщики задач для закрепления и рассмотриваются следующие техники:
🚀Создание или модификация системного процесса: сервис Systemd
🚀Планировщик задач/джоб: таймеры Systemd
🚀Планировщик задач/джоб: Cron
Предыдущие две статьи цикла
👍5🔥1
Microsoft удивляет поклонников MS-DOS ремейком старого текстового редактора, который работает в Linux
Microsoft удивляет поклонников MS-DOS ремейком старого текстового редактора, который работает в Linux
В прошлом месяце Microsoft выпустила современную версию своего классического редактора MS-DOS Editor, вернув часть истории компьютерной индустрии, которая впервые появилась в MS-DOS 5.0 еще в 1991 году. Новый инструмент с открытым исходным кодом, созданный на Rust и просто названный «Edit», работает на Windows, macOS и — что казалось бы невозможным три десятилетия назад — Linux. Читать дальше.
Microsoft удивляет поклонников MS-DOS ремейком старого текстового редактора, который работает в Linux
В прошлом месяце Microsoft выпустила современную версию своего классического редактора MS-DOS Editor, вернув часть истории компьютерной индустрии, которая впервые появилась в MS-DOS 5.0 еще в 1991 году. Новый инструмент с открытым исходным кодом, созданный на Rust и просто названный «Edit», работает на Windows, macOS и — что казалось бы невозможным три десятилетия назад — Linux. Читать дальше.
🤡9👍3👏3❤2
Резервные копии PostgreSQL: сравнение скорости pg_dump в разных форматах и с разными уровнями сжатия
Автор этой статьи сделал резервную копию через pg_dump и восстановился из неё 21 раза. Резервные копии он делал в 4 разных форматах с использованием от 1 до 7 уровней сжатия под каждый формат. Записал результаты и сделал сравнение разных видов, чтобы понимать, какие способы более эффективны для его сценария использования. Детали и замеры — в статье.
Автор этой статьи сделал резервную копию через pg_dump и восстановился из неё 21 раза. Резервные копии он делал в 4 разных форматах с использованием от 1 до 7 уровней сжатия под каждый формат. Записал результаты и сделал сравнение разных видов, чтобы понимать, какие способы более эффективны для его сценария использования. Детали и замеры — в статье.
👍10🔥6❤1
Чеклист по приложениям реального времени в Linux
Может ли ядро Linux при всей своей гибкости обеспечивать гарантированное время отклика при работе с приложениями?
Ядро Linux является универсальным и приспособлено к работе как с крошечными встраиваемыми устройствами, так и с титаническими серверами… а также со всем спектром машин между этими крайностями! Но может ли такое поразительно адаптивное ядро обеспечить гарантированную скорость отклика для приложения, работающего на всех этих платформах? Если в вашем приложении допустимая задержка при отклике укладывается в 200 микросекунд — то уверенно отвечаем на этот вопрос «да»! (Кстати, для Linux такая планка совсем не высока, но, чтобы её держать, потребуется тщательно подбирать аппаратное обеспечение и, возможно, обратиться за консультацией к специалисту по системам Linux, работающим в режиме реального времени). Читать дальше на Хабре.
Может ли ядро Linux при всей своей гибкости обеспечивать гарантированное время отклика при работе с приложениями?
Ядро Linux является универсальным и приспособлено к работе как с крошечными встраиваемыми устройствами, так и с титаническими серверами… а также со всем спектром машин между этими крайностями! Но может ли такое поразительно адаптивное ядро обеспечить гарантированную скорость отклика для приложения, работающего на всех этих платформах? Если в вашем приложении допустимая задержка при отклике укладывается в 200 микросекунд — то уверенно отвечаем на этот вопрос «да»! (Кстати, для Linux такая планка совсем не высока, но, чтобы её держать, потребуется тщательно подбирать аппаратное обеспечение и, возможно, обратиться за консультацией к специалисту по системам Linux, работающим в режиме реального времени). Читать дальше на Хабре.
🔥2👍1