Forwarded from commit -m "better"
https://www.phoronix.com/news/Rust-Debian-2025
"around 8% of the source packages in Debian Sid are building against at least one librust-* package. That 8% figure for Debian source packages building against at least one Rust library package is around double of what it is for Debian 12 "Bookworm". Quite a significant uptake over the past few years and it's only continuing to grow with more open-source projects introducing varying levels of Rust integration"
Понятное дело, что это librsvg, или какие-нить кодеки, которые не являются обязательными, но против них нужно собраться, чтобы получить "полный" пакет, но, тем не менее, цифра довольно внушительная.
У меня против Rust собирается ровно 0 от базовой системы, потому что librsvg для загрузки иконок в gtk я переписал на кастомный #svg loader over #lunasvg/#skia/#svgren (по выбору), и убрал все эти опциональные зависимости.
Ну просто потому, что Rust не является #bootstrap абельным (я не могу собрать его из исходников, не имея под рукой готовый компилятор Rust, подробности в моей эпопее с #mrustc), а это зашквар.
"around 8% of the source packages in Debian Sid are building against at least one librust-* package. That 8% figure for Debian source packages building against at least one Rust library package is around double of what it is for Debian 12 "Bookworm". Quite a significant uptake over the past few years and it's only continuing to grow with more open-source projects introducing varying levels of Rust integration"
Понятное дело, что это librsvg, или какие-нить кодеки, которые не являются обязательными, но против них нужно собраться, чтобы получить "полный" пакет, но, тем не менее, цифра довольно внушительная.
У меня против Rust собирается ровно 0 от базовой системы, потому что librsvg для загрузки иконок в gtk я переписал на кастомный #svg loader over #lunasvg/#skia/#svgren (по выбору), и убрал все эти опциональные зависимости.
Ну просто потому, что Rust не является #bootstrap абельным (я не могу собрать его из исходников, не имея под рукой готовый компилятор Rust, подробности в моей эпопее с #mrustc), а это зашквар.
Phoronix
Around 8% Of Debian Source Packages Are Building Against Rust Libraries
At last week's DebConf25 Debian developer conference in France, Rust packaging within Debian Linux was talked about by Fabian Grünbichler
😁6❤3👏2💊2🤡1😐1
Пока вы спите там Let's Encrypt поплохело
https://letsencrypt.status.io/
https://letsencrypt.status.io/
Incident Status
Service Disruption
Components
acme-v02.api.letsencrypt.org (Production), {e,r}[1-14].o.lencr.org, acme-staging-v02.api.letsencrypt.org (Staging), stg-{e,r}[1-14].o.lencr.org
🫡23😭9❤1
Принятие законопроекта, запрещающего, в частности, поиск экстремистских материалов в интернете, является альтернативой полной блокировке в России зарубежных платформ, объяснил в Госдуме глава Минцифры Максут Шадаев
Спасибо
😁48🤡26🫡25💊8🤬3👍1🔥1🌭1😐1
Forwarded from LD_ANARCHY
Пока делал один ресерч был прикольный случай -- меня SSTI в #laravel , но я в контейнере и файлы создавать не могу, суматохи гора и данные надо получить стопудово, а у таргета еще и WAF для бедных (сами, наверное на регулярках напилили).
И казалось -- что может пойти не так, если чуваки затащат в контейнер mysql?🤣
P.S. Кроме
И казалось -- что может пойти не так, если чуваки затащат в контейнер mysql?
{{pasSthru("mysql\x20-uprod\x20-pP4ss\x20-h127.0.0.1\x20-P3311\x20prod\x20-e\x20'select\x20*\x20from\x20logs'")}}
P.S. Кроме
/x20
для байпаса пробелов еще использовал $IFS
рядом 🙂Please open Telegram to view this post
VIEW IN TELEGRAM
🥱12👍3
Это отличная новость
Компания Google представила проект OSS Rebuild, предназначенный для выявления скрытых изменений в готовых пакетах, публикуемых в репозиториях. Работа OSS Rebuild основана на концепции воспроизводимых сборок и сводится к проверке соответствия размещённого в репозитории пакета с пакетом полученным на основе пересборки из эталонного исходного кода, соответствующего заявленной версии пакета.
В настоящее время в OSS Rebuild реализована поддержка верификации пакетов из репозиториев NPM (JavaScript/TypeScript), PyPI (Python) и Crates.io (Rust). В будущем число поддерживаемых репозиториев планируют расширить. На практике инструментарий позволяет выявлять варианты атаки класса "supply chain", в ходе которых после компрометации учётных записей сопровождающих или диверсии внутри проекта в репозитории публикуется вредоносное обновление. При этом код в исходном репозитории основного проекта остаётся корректным, а вредоносные изменения вносятся только в готовые пакеты.
Система по возможности автоматически формирует сценарий для воспроизводимой сборки выбранного пакета, используя эвристику и подбирая параметры, позволяющие добиться идентичности артефактов, поставляемых в пакете. Если автоматически не удаётся воспроизвести размещённый в репозитории пакет, возможно ручное добавление сборочной спецификации. После того как удалось воспроизвести пакет, инструментарий OSS Rebuild сохраняет описание процесса сборки для последующей проверки новых версий пакета. Дополнительно публикуется информация для верификации с использованием фреймворка SLSA.
После проведения проверки конкретной версии пакета формируются данные аттестации, которые могут использоваться другими для оценки уже верифицированных пакетов. Проверку можно осуществить через запуск утилиты командной строк или сверку хэша, сохранённого в отдельном облачном хранилище. Инфраструктуру для проверки пакетов можно развернуть на собственном сервере. Так же можно воспользоваться информацией о проверках, выполняемых в Google для нескольких тысяч пакетов.
Google представил проект OSS Rebuild для выявления скрытых изменений в пакетах
https://www.opennet.ru/opennews/art.shtml?num=63613
Репа
https://github.com/google/oss-rebuild
Оригинал
Introducing OSS Rebuild: Open Source, Rebuilt to Last
https://security.googleblog.com/2025/07/introducing-oss-rebuild-open-source.html
Компания Google представила проект OSS Rebuild, предназначенный для выявления скрытых изменений в готовых пакетах, публикуемых в репозиториях. Работа OSS Rebuild основана на концепции воспроизводимых сборок и сводится к проверке соответствия размещённого в репозитории пакета с пакетом полученным на основе пересборки из эталонного исходного кода, соответствующего заявленной версии пакета.
В настоящее время в OSS Rebuild реализована поддержка верификации пакетов из репозиториев NPM (JavaScript/TypeScript), PyPI (Python) и Crates.io (Rust). В будущем число поддерживаемых репозиториев планируют расширить. На практике инструментарий позволяет выявлять варианты атаки класса "supply chain", в ходе которых после компрометации учётных записей сопровождающих или диверсии внутри проекта в репозитории публикуется вредоносное обновление. При этом код в исходном репозитории основного проекта остаётся корректным, а вредоносные изменения вносятся только в готовые пакеты.
Система по возможности автоматически формирует сценарий для воспроизводимой сборки выбранного пакета, используя эвристику и подбирая параметры, позволяющие добиться идентичности артефактов, поставляемых в пакете. Если автоматически не удаётся воспроизвести размещённый в репозитории пакет, возможно ручное добавление сборочной спецификации. После того как удалось воспроизвести пакет, инструментарий OSS Rebuild сохраняет описание процесса сборки для последующей проверки новых версий пакета. Дополнительно публикуется информация для верификации с использованием фреймворка SLSA.
После проведения проверки конкретной версии пакета формируются данные аттестации, которые могут использоваться другими для оценки уже верифицированных пакетов. Проверку можно осуществить через запуск утилиты командной строк или сверку хэша, сохранённого в отдельном облачном хранилище. Инфраструктуру для проверки пакетов можно развернуть на собственном сервере. Так же можно воспользоваться информацией о проверках, выполняемых в Google для нескольких тысяч пакетов.
Google представил проект OSS Rebuild для выявления скрытых изменений в пакетах
https://www.opennet.ru/opennews/art.shtml?num=63613
Репа
https://github.com/google/oss-rebuild
Оригинал
Introducing OSS Rebuild: Open Source, Rebuilt to Last
https://security.googleblog.com/2025/07/introducing-oss-rebuild-open-source.html
🔥38❤6👍1
Forwarded from 𝚔𝚟𝚊𝚙𝚜
К слову о дичи, я тут давеча с ресурсами и реквестами разбирался в одном кластере. Написал целую тулзу
Возможно кому-то будет полезно
https://github.com/aenix-io/kubectl-ps
Синтаксис позабористее чем у
https://github.com/aenix-io/kubectl-ps
kubectl ps
, это эдакий kubectl top
но на стеройдах, умеет реквесты/лимиты показывать и по всякому их сравнивать с реальным потреблением. Возможно кому-то будет полезно
https://github.com/aenix-io/kubectl-ps
Синтаксис позабористее чем у
ps aux
получился, в общем любой фидбек приветствуетсяhttps://github.com/aenix-io/kubectl-ps
GitHub
GitHub - aenix-io/kubectl-ps: Command kubectl-ps is a kubectl plugin that prints ps-style resource tables for pods, nodes and namespaces.
Command kubectl-ps is a kubectl plugin that prints ps-style resource tables for pods, nodes and namespaces. - aenix-io/kubectl-ps
🔥30😁1
Под этот пост https://t.iss.one/mem_b0lt_Genona/290 пришёл подписчик со странным, но интересным
> Раз речь зашла, кто-нибудь поднимал selinux-sandbox на arch? Че за приколы там с политиками? Какого болта их нет?
> Ну я начал поднимать, вроде живое, но с рефполитиками из центоси рефполитики арчей не совместимы, думаю как бы подружить
> У меня арч на личном ноутбуке, решил что пора забуриться в MAC
Считай, из любопытства ноги себе отгрызаю
Ну и хотел песочницу для запуска LLM-генерированного кода, чтобы оно мне патч бармина не спрятало никуда, но это и без селинукса решаемо
Есть у кого опыт, может кто-то что-то подсказать? 🌝
> Раз речь зашла, кто-нибудь поднимал selinux-sandbox на arch? Че за приколы там с политиками? Какого болта их нет?
> Ну я начал поднимать, вроде живое, но с рефполитиками из центоси рефполитики арчей не совместимы, думаю как бы подружить
> У меня арч на личном ноутбуке, решил что пора забуриться в MAC
Считай, из любопытства ноги себе отгрызаю
Ну и хотел песочницу для запуска LLM-генерированного кода, чтобы оно мне патч бармина не спрятало никуда, но это и без селинукса решаемо
Есть у кого опыт, может кто-то что-то подсказать? 🌝
Telegram
Мемный Болт Генона
💊26
😁69🔥9👍6👏2🤔1
Картинки не открываем (вы уже открыли, вас похекали)
Linux-вредонос Koske прячется в картинках с милыми пандами
https://xakep.ru/2025/07/25/koske/
Аналитики из компании AquaSec обнаружили новое вредоносное ПО для Linux. Малварь получила название Koske и предполагается, что она была разработана с помощью ИИ. Для внедрения непосредственно в память вредонос использует JPEG-изображения с пандами.
Исследователи описывают Koske как «сложную Linux-угрозу», адаптивное поведение которой предполагает, что малварь разрабатывается с использованием больших языковых моделей (LLM) или фреймворков автоматизации.
Основной целью Koske является развертывание оптимизированных для CPU и GPU майнеров, которые используют вычислительные ресурсы хоста для добычи различных криптовалют.
Так как во время изучения малвари были обнаружены сербские IP-адреса и фразы в скриптах, а также словацкий язык в репозитории на GitHub, где размещались майнеры, экспертам не удалось установить точную атрибуцию.
Первоначальный доступ злоумышленники получают, эксплуатируя неправильные конфигурации JupyterLab, благодаря которым возможно выполнение команд. После этого атакующие загружают в систему жертвы два изображения с пандами в формате .JPEG, которые хранятся на таких легитимных сервисах, как OVH images, freeimage и postimage. В этих картинках и скрывается вредоносная полезная нагрузка.
Изображения панд содержат не только саму картинку, с корректными для формата JPEG заголовками, но также вредоносные шелл-скрипты и код, написанный на C, что позволяет интерпретировать оба формата отдельно. То есть, открыв такой файл, пользователь увидит лишь милую панду, а вот интерпретатор скриптов выполнит код, добавленный в конец файла.
Также скрипт обеспечивает устойчивость подключения и обходит сетевые ограничения: он перезаписывает /etc/resolv.conf, чтобы использовать DNS от Cloudflare и Google, защищает этот файл с помощью chattr +i. Также малварь сбрасывает правила iptables, очищает системные переменные, связанные с прокси, и запускает кастомный модуль для бутфорса рабочих прокси с использованием curl, wget и прямых TCP-запросов.
Именно из-за этой адаптивности и поведения исследователи предполагают, что малварь могла разрабатываться либо с помощью LLM, либо с применением платформ для автоматизации.
Перед развертыванием на машине жертвы малварь оценивает возможности хоста (CPU и GPU), чтобы выбрать наиболее подходящий майнер: Koske поддерживает добычу 18 разных криптовалют, включая Monero, Ravencoin, Zano, Nexa и Tari.
Оригинал
AI-Generated Malware in Panda Image Hides Persistent Linux Threat
https://www.aquasec.com/blog/ai-generated-malware-in-panda-image-hides-persistent-linux-threat/
Linux-вредонос Koske прячется в картинках с милыми пандами
https://xakep.ru/2025/07/25/koske/
Аналитики из компании AquaSec обнаружили новое вредоносное ПО для Linux. Малварь получила название Koske и предполагается, что она была разработана с помощью ИИ. Для внедрения непосредственно в память вредонос использует JPEG-изображения с пандами.
Исследователи описывают Koske как «сложную Linux-угрозу», адаптивное поведение которой предполагает, что малварь разрабатывается с использованием больших языковых моделей (LLM) или фреймворков автоматизации.
Основной целью Koske является развертывание оптимизированных для CPU и GPU майнеров, которые используют вычислительные ресурсы хоста для добычи различных криптовалют.
Так как во время изучения малвари были обнаружены сербские IP-адреса и фразы в скриптах, а также словацкий язык в репозитории на GitHub, где размещались майнеры, экспертам не удалось установить точную атрибуцию.
Первоначальный доступ злоумышленники получают, эксплуатируя неправильные конфигурации JupyterLab, благодаря которым возможно выполнение команд. После этого атакующие загружают в систему жертвы два изображения с пандами в формате .JPEG, которые хранятся на таких легитимных сервисах, как OVH images, freeimage и postimage. В этих картинках и скрывается вредоносная полезная нагрузка.
Изображения панд содержат не только саму картинку, с корректными для формата JPEG заголовками, но также вредоносные шелл-скрипты и код, написанный на C, что позволяет интерпретировать оба формата отдельно. То есть, открыв такой файл, пользователь увидит лишь милую панду, а вот интерпретатор скриптов выполнит код, добавленный в конец файла.
Также скрипт обеспечивает устойчивость подключения и обходит сетевые ограничения: он перезаписывает /etc/resolv.conf, чтобы использовать DNS от Cloudflare и Google, защищает этот файл с помощью chattr +i. Также малварь сбрасывает правила iptables, очищает системные переменные, связанные с прокси, и запускает кастомный модуль для бутфорса рабочих прокси с использованием curl, wget и прямых TCP-запросов.
Именно из-за этой адаптивности и поведения исследователи предполагают, что малварь могла разрабатываться либо с помощью LLM, либо с применением платформ для автоматизации.
Перед развертыванием на машине жертвы малварь оценивает возможности хоста (CPU и GPU), чтобы выбрать наиболее подходящий майнер: Koske поддерживает добычу 18 разных криптовалют, включая Monero, Ravencoin, Zano, Nexa и Tari.
Оригинал
AI-Generated Malware in Panda Image Hides Persistent Linux Threat
https://www.aquasec.com/blog/ai-generated-malware-in-panda-image-hides-persistent-linux-threat/
😁12😱7🔥6👍3🌭2❤1🖕1
Forwarded from ITTales :(){ :|:& };:
Вот вам небольшая пятничная история. Что делать когда Talos Linux сдох, и вот непонятно из-за чего.
Kubernetes API недоступен (не запускается CRI), у вас нет ничего, кроме доступа к Talos API.
Казалось бы всё. SSH нет, доступа на запись тоже нет. Только ребут или как предлагают сами разработчики Talos Linux:
<irony>нода сдохла, выкинь и заведи новую</irony>
Но не всё так просто, а как же отдебажить что там произошло. Собрать информацию, подготовить баг-репорт, отослать разработчикам containerd и Kubernetes.
Я не хочу чтобы такая ситуация повторялась в принципе когда-либо. Встаёт вопрос: как же нам войти в запущенную дефектную систему.
Здесь стоит немного уточнить что в логике Talos заложено запуск двух containerd.
Один - системный, он запускает контейнеры с талосовые демонами и экстеншенами, а так же etcd и kubelet.
Второй - прикладной, он запускает всё что в кубе, в том числе статик поды.
Сделано это намерено, чтобы кубовый ворклоад не мог заафектить систему. Т.к. чаще всего проблемы возникают именно со вторым ввиду активного пуллинга имаджей, а первый containerd остаётся живым. Но как же запустить контейнер для дебага без работающего Kubernetes API? Ответ - никак. Придётся хитрить.
Talos позволяет указать кастомные image для запуска kubelet и etcd. Этим мы и воспользуемся.
Для начала соберём кастомный образ kublet. Добаляем busybox в имадж и слегка модифицируем код:
https://github.com/kvaps/kubernetes/commit/3e45ecd4a2718bc50f2d951c344b4c439f79e3ae
Собираем Dockerfile, пушим его куда-то и заменяем путь до образа в конфиге Talos.
Вуаля, у нас появляется доступ к системе:
kubelet работает с полными административными правами, поэтому его привилегий должно быть достаточно для дебага всего что необходимо.
Kubernetes API недоступен (не запускается CRI), у вас нет ничего, кроме доступа к Talos API.
Казалось бы всё. SSH нет, доступа на запись тоже нет. Только ребут или как предлагают сами разработчики Talos Linux:
<irony>нода сдохла, выкинь и заведи новую</irony>
Но не всё так просто, а как же отдебажить что там произошло. Собрать информацию, подготовить баг-репорт, отослать разработчикам containerd и Kubernetes.
Я не хочу чтобы такая ситуация повторялась в принципе когда-либо. Встаёт вопрос: как же нам войти в запущенную дефектную систему.
Здесь стоит немного уточнить что в логике Talos заложено запуск двух containerd.
Один - системный, он запускает контейнеры с талосовые демонами и экстеншенами, а так же etcd и kubelet.
Второй - прикладной, он запускает всё что в кубе, в том числе статик поды.
Сделано это намерено, чтобы кубовый ворклоад не мог заафектить систему. Т.к. чаще всего проблемы возникают именно со вторым ввиду активного пуллинга имаджей, а первый containerd остаётся живым. Но как же запустить контейнер для дебага без работающего Kubernetes API? Ответ - никак. Придётся хитрить.
Talos позволяет указать кастомные image для запуска kubelet и etcd. Этим мы и воспользуемся.
Для начала соберём кастомный образ kublet. Добаляем busybox в имадж и слегка модифицируем код:
https://github.com/kvaps/kubernetes/commit/3e45ecd4a2718bc50f2d951c344b4c439f79e3ae
Собираем Dockerfile, пушим его куда-то и заменяем путь до образа в конфиге Talos.
Вуаля, у нас появляется доступ к системе:
echo 'uname -r' | nc 192.168.1.21 12345
6.12.18-talos
kubelet работает с полными административными правами, поэтому его привилегий должно быть достаточно для дебага всего что необходимо.
GitHub
Add busybox shell for Talos · kvaps/kubernetes@3e45ecd
Signed-off-by: Andrei Kvapil <[email protected]>
🔥19❤5😁4👍2🙉2🤔1😢1🤡1🌚1
Представлены правила для AI-ассистентов, применяемых при разработке ядра Linux
https://www.opennet.ru/opennews/art.shtml?num=63631
Определены следующие ключевые принципы для AI:
- Перед созданием изменений необходимо прочитать документацию и следовать изложенным в ней требованиям.
- Следует выполнять требования по стилю и оформлению кода для ядра.
- Перед отправкой изменения его нужно тщательно протестировать.
- К коду нужно приложить понятное и исчерпывающее сообщение с описанием изменения.
- Изменения не должны нарушать работу компонентов в пространстве пользователя.
- В качестве соавтора изменения должен быть отмечен AI, не ограничиваясь только упоминанием разработчика, использовавшего AI-ассистент.
Документация, которую должен учитывать AI-ассистент:
- Руководство, как стать разработчиком ядра.
- Информация о процессе разработки ядра.
- Руководство по передаче своего кода в ядро.
- Чек-лист проверок перед отправкой кода в ядро.
- Требования к стилю и оформлению кода (использование табуляции для выравнивания, не больше 80 символов в строке, отдельные правила форматирования функций и условных выражений).
- Требования к языкам программирования и стандартам.
- Запрет использования устаревших программных интерфейсов и возможностей.
- Правила отправки патчей для включения в ядро.
- Настройки почтового клиента для отправки патчей.
- Правила приёма патчей.
- Правила лицензирования кода для ядра (лицензия GPL-2.0 c исключениями для системных вызовов, наличие SPDX-идентификаторов лицензии в каждом файле).
- Инструкция по добавлению нового системного вызова.
- Правила для отправки патчей к стабильным веткам ядра.
- Обработка проблем с безопасностью.
- Действия при выявлении регрессий.
- Руководство по взаимодействию с сопровождающими.
- Руководства, специфичные для подсистем.
Для выделения изменений, подготовленных с использованием AI, к коммиту предписывается прикреплять тег "Co-developed-by: $AI_NAME $AI_MODEL $AI_VERSION". Например: "Co-developed-by: Claude claude-3-opus-20240229", "Co-developed-by: GitHub-Copilot GPT-4 v1.0.0" и "Co-developed-by: Cursor gpt-4-turbo-2024-04-09". При этом AI-ассистент не должен добавлять себя в тег "Signed-off-by".
Вообще, судя по списку, проще отказаться от использования AI-ассистентов, чем контролировать соблюдение ими всех требований 🌝
Оригиналы сообщений
https://lore.kernel.org/lkml/[email protected]/
https://lore.kernel.org/lkml/[email protected]/
https://lore.kernel.org/lkml/[email protected]/
https://www.opennet.ru/opennews/art.shtml?num=63631
Определены следующие ключевые принципы для AI:
- Перед созданием изменений необходимо прочитать документацию и следовать изложенным в ней требованиям.
- Следует выполнять требования по стилю и оформлению кода для ядра.
- Перед отправкой изменения его нужно тщательно протестировать.
- К коду нужно приложить понятное и исчерпывающее сообщение с описанием изменения.
- Изменения не должны нарушать работу компонентов в пространстве пользователя.
- В качестве соавтора изменения должен быть отмечен AI, не ограничиваясь только упоминанием разработчика, использовавшего AI-ассистент.
Документация, которую должен учитывать AI-ассистент:
- Руководство, как стать разработчиком ядра.
- Информация о процессе разработки ядра.
- Руководство по передаче своего кода в ядро.
- Чек-лист проверок перед отправкой кода в ядро.
- Требования к стилю и оформлению кода (использование табуляции для выравнивания, не больше 80 символов в строке, отдельные правила форматирования функций и условных выражений).
- Требования к языкам программирования и стандартам.
- Запрет использования устаревших программных интерфейсов и возможностей.
- Правила отправки патчей для включения в ядро.
- Настройки почтового клиента для отправки патчей.
- Правила приёма патчей.
- Правила лицензирования кода для ядра (лицензия GPL-2.0 c исключениями для системных вызовов, наличие SPDX-идентификаторов лицензии в каждом файле).
- Инструкция по добавлению нового системного вызова.
- Правила для отправки патчей к стабильным веткам ядра.
- Обработка проблем с безопасностью.
- Действия при выявлении регрессий.
- Руководство по взаимодействию с сопровождающими.
- Руководства, специфичные для подсистем.
Для выделения изменений, подготовленных с использованием AI, к коммиту предписывается прикреплять тег "Co-developed-by: $AI_NAME $AI_MODEL $AI_VERSION". Например: "Co-developed-by: Claude claude-3-opus-20240229", "Co-developed-by: GitHub-Copilot GPT-4 v1.0.0" и "Co-developed-by: Cursor gpt-4-turbo-2024-04-09". При этом AI-ассистент не должен добавлять себя в тег "Signed-off-by".
Вообще, судя по списку, проще отказаться от использования AI-ассистентов, чем контролировать соблюдение ими всех требований 🌝
Оригиналы сообщений
https://lore.kernel.org/lkml/[email protected]/
https://lore.kernel.org/lkml/[email protected]/
https://lore.kernel.org/lkml/[email protected]/
😁24👍14🤣2💊2👏1🤡1
Я это мнение слышал и читал много раз: быть таким же успешным как Red Hat с open source может только Red Hat.
Текста в посте изначальном сильно больше, я постарался оставить у себя основные выдержки.
Giant value creation, very little value capture. That is the Red Hat model. The first company to successfully commercialize open source software at scale, Red Hat managed to make a billion-dollar business out of selling vetted open source updates and providing multi-product support, services, and training. At first, the model seemed like it could be the blueprint for commercial open source software. The only problem is no other company has been able to replicate this model successfully.
Low rake
he company generates way more value than it captures and has a low rake out of necessity—none of the software it creates is proprietary. If Red Hat tried to force people to pay too much, everyone would switch to the freely distributed versions (AlmaLinux, Rocky Linux, etc.).
A complicated model under constant threat
Red Hat’s 30+ products span a huge range of categories, from platforms to application services to cloud computing, data services, and automation. According to Gartner, the company competes with nearly every major technology company. It’s under constant threat of being disrupted or undermined by other open source providers.
The open core model
Most open-source-based startups today are focused on a single product. These companies generate higher rake by adopting an open core model: making some of the codebase proprietary but source-available. Many companies have started with a similar updates and services model, but the open source companies that have shown exponential growth ultimately went public with an open core model.
The Red Hat model won’t be repeated. In reality, open core is the most economically viable model for commercializing open source software. It’s poised to replace proprietary software as the default and is the path for open source projects to develop into sustainable businesses.
Support and services models don’t achieve hypergrowth
Developing features under a support model gives you no entitlement to the technology. And, if you’re good at what you do, you’ll eventually put yourself out of a job since customers can use it without help.
The Red Hat model only worked for Red Hat
https://www.opencoreventures.com/blog/the-red-hat-model-only-worked-for-red-hat
Текста в посте изначальном сильно больше, я постарался оставить у себя основные выдержки.
Giant value creation, very little value capture. That is the Red Hat model. The first company to successfully commercialize open source software at scale, Red Hat managed to make a billion-dollar business out of selling vetted open source updates and providing multi-product support, services, and training. At first, the model seemed like it could be the blueprint for commercial open source software. The only problem is no other company has been able to replicate this model successfully.
Low rake
he company generates way more value than it captures and has a low rake out of necessity—none of the software it creates is proprietary. If Red Hat tried to force people to pay too much, everyone would switch to the freely distributed versions (AlmaLinux, Rocky Linux, etc.).
A complicated model under constant threat
Red Hat’s 30+ products span a huge range of categories, from platforms to application services to cloud computing, data services, and automation. According to Gartner, the company competes with nearly every major technology company. It’s under constant threat of being disrupted or undermined by other open source providers.
The open core model
Most open-source-based startups today are focused on a single product. These companies generate higher rake by adopting an open core model: making some of the codebase proprietary but source-available. Many companies have started with a similar updates and services model, but the open source companies that have shown exponential growth ultimately went public with an open core model.
The Red Hat model won’t be repeated. In reality, open core is the most economically viable model for commercializing open source software. It’s poised to replace proprietary software as the default and is the path for open source projects to develop into sustainable businesses.
Support and services models don’t achieve hypergrowth
Developing features under a support model gives you no entitlement to the technology. And, if you’re good at what you do, you’ll eventually put yourself out of a job since customers can use it without help.
The Red Hat model only worked for Red Hat
https://www.opencoreventures.com/blog/the-red-hat-model-only-worked-for-red-hat
👍9🔥1
Большой пост от Slack про то, как они Stateful-приложения катят в продовый Kubernetes
Advanced Rollout Techniques: Custom Strategies for Stateful Apps in Kubernetes
https://slack.engineering/kube-stateful-rollouts/
Инфраструктура
At Slack, engineers deploy their applications to Kubernetes by using our internal Bedrock tooling. As of this writing, Slack has over 200 Kubernetes clusters, over 50 stateless services (Deployments) and nearly 100 stateful services (StatefulSets). The operator is deployed to each cluster, which lets us control who can deploy where.
Из интересного ещё отмечу, как в Slack осознанно понимают проблему с их подходом, но получается, что в их случае проблемы как таковой нет
Version leak
Some of you might have picked up on a not-so-subtle detail related to the (ab-)use of the OnDelete strategy for StatefulSets: what we internally call the version leak issue. When a user decides to do a percent-based rollout, or pause an existing rollout, the StatefulSet is left with some Pods running the new version and some Pods running the previous version. But if a Pod running the previous version gets terminated for any other reason than being rolled out by the operator, it’ll get replaced by a Pod running the new version. Since we routinely terminate nodes for a number of reasons such as scaling clusters, rotating nodes for compliance as well as chaos engineering, a stopped rollout will, over time, tend to converge towards being fully rolled out. Fortunately, this is a well-understood limitation and Slack engineering teams deploy their services out to 100% in a timely manner before the version leak problem would arise.
Advanced Rollout Techniques: Custom Strategies for Stateful Apps in Kubernetes
https://slack.engineering/kube-stateful-rollouts/
Инфраструктура
At Slack, engineers deploy their applications to Kubernetes by using our internal Bedrock tooling. As of this writing, Slack has over 200 Kubernetes clusters, over 50 stateless services (Deployments) and nearly 100 stateful services (StatefulSets). The operator is deployed to each cluster, which lets us control who can deploy where.
Из интересного ещё отмечу, как в Slack осознанно понимают проблему с их подходом, но получается, что в их случае проблемы как таковой нет
Version leak
Some of you might have picked up on a not-so-subtle detail related to the (ab-)use of the OnDelete strategy for StatefulSets: what we internally call the version leak issue. When a user decides to do a percent-based rollout, or pause an existing rollout, the StatefulSet is left with some Pods running the new version and some Pods running the previous version. But if a Pod running the previous version gets terminated for any other reason than being rolled out by the operator, it’ll get replaced by a Pod running the new version. Since we routinely terminate nodes for a number of reasons such as scaling clusters, rotating nodes for compliance as well as chaos engineering, a stopped rollout will, over time, tend to converge towards being fully rolled out. Fortunately, this is a well-understood limitation and Slack engineering teams deploy their services out to 100% in a timely manner before the version leak problem would arise.
👍10