Очередной ноунейм


Гео и язык канала: Россия, Русский
Категория: Технологии


btw I use arch
Канал с мемами - https://t.me/noname_memes

Связанные каналы

Гео и язык канала
Россия, Русский
Категория
Технологии
Статистика
Фильтр публикаций


buildkit-story.pdf
9.8Мб
Слайды с прошедшего выступления


Кстати на БЕКОНе я только начал раскрывать тему сборки образов. 3-го сентября на DevOops от меня будет еще один доклад. Это будет открытая онлайн часть конференции, так что подключиться послушать сможет любой желающий

В этот раз больше внимания будет уделено именно скорости сборки и неочевидным моментам работы билдкита. Ну и времени будет больше, смогу подробнее раскрыть тему


https://devoops.ru/talks/90931081b5294a44ab9ca21d947544d9


А вот и запись доклада

https://vkvideo.ru/video-224467080_456239056


Вчера на БеКоне я рассказывал что не надо в 2025 году использовать kaniko для сборки образов. Через пару часов после моего доклада репозиторий отправили в архив.

Для тех кто будет пытаться найти ему замену, у гитлаба есть неплохой гайд по использованию buildah в их CI. Если нет спешки, то лучше сразу брать buildkit. Он быстрее собирает, его проще мониторить, да и в принципе дает больше возможностей.


P.S. Если хватит сил, то в этом году от меня будет еще пара материалов про сборку образов и прелести билдкита


Репост из: Конференция БеКон
Чем_собирать_контейнеры_если_вы_параноик_Михаил_Кожуховский_БеКон.pdf
3.3Мб
Михаил Кожуховский, Flowmaster. "Чем собирать контейнеры если вы параноик?".


Слайды со вчерашнего выступления


А я сегодня читаю доклад про сборку образов контейнеров на БеКон.
Если интересно пообщаться ловите меня на конфе.


P.S. Год назад я ходил по бекону и рассказывал что собираюсь затаскивать KubeVirt к себе в инфру. Получилось. Какая безумная идея у меня на этот раз?)


Репост из: Experimental chill
Fast Commits в fsync

Я с универских времен изучал fsync, но только на уровне, что этот вызов -- самая последняя инстанция перед тем, как сказать диску, что надо всё на него сбросить. К своему удивлению, спустя несколько лет, я наткнулся на работу коллеги про Fast Commits, которая пытается соптимизировать fsync в EXT4 в Linux уже несколько лет, и, кажется, у этого дела виднеется свет в конце тунеля. Также получили на USENIX ATC 2024 best paper award https://www.usenix.org/conference/atc24/presentation/shirwadkar

fsync в EXT4 работает через алгоритм JBD2 (Journaling Block Device v2), который хранит последние операции работы с диском и применяет их, гарантируя, что всё корректно применится даже в случае отказа машинки. Первый инсайт, который я узнал -- всё это дело происходит раз в 5 секунд и при каждом вызове fsync.

Второй инсайт, что JBD2 хранит минимум 3 блока по 4kb на каждую операцию: блок дескриптора (метаданные о других блоках в коммите), по крайней мере один измененный блок метаданных и блок маркера коммита, указывающий конец коммита. Метаданные о дополнительных блоках нужны в интересных случаях, когда, например, машинка умерла, при загрузке она начнёт восстаналивать данные и потом она во время этого умирает. Идемпотентность можно только гарантировать с помощью сравнения изменений, поэтому JBD2 имеет чуть бОльший оверхед, чем возможно представляют себе люди. Из-за маркера коммита получается, что JBD2 делает минимум 2 операции с диском, что тоже немного неожиданно.

Третий инсайт, что fsync будит свой поток и из-за этого происходит 2 переключения контекста, что тоже стало неожиданностью для меня.

Fast commits представляют возможность избежать минусов упомянутых выше. Например, для идемпотентных операций, которые легче проверяются, например, переименование файла или добавление блоков к файлу можно писать достаточно маленькие куски с метаданными в журнал. В итоге и поток переключать не надо, и одна операция с диском и идемпотентность сохраняется.

Как можно догадаться, даже такая простая идея заняла около 6 лет, чтобы протащить в ядро. Очень много уделялось времени обратной совместимости, а также что делать со сложными операциями, например, filesystem resize, которые обязаны уйти в старый JBD2 и как теперь работать с обоими журналами.

В целом на бенчмарках экономия в 100-200 микросекунд, что для частых fsync собирается в неплохую историю. Для HDD это не такие большие цифры, а вот с развитием SSD это уже значительно. Включить на linux это дело можно через tune2fs -O fast_commit.


А вчера коллекция пополнилась представителями линейки рутокен MFA второй ревизии. Отдельное спасибо компании Актив за выданные для экспериментов девайсы.

Кстати сегодня и завтра меня можно найти на конференции offzone


Одно из довольно полезных применений fido токенов со сканером отпечатка — это классные внешние сканеры с match on chip и протоколом который можно не бояться гнать по usb шине которая легко сниффится. В ноутбуках это не особо применимо, ведь нормальные лэптопы уже давно идут со встроенными сканерами отпечатка, другое дело ПК. Особенно ПК в опенспейсе где ощутимы шансы, что пароль от компа кто-то подсмотрит, а то и подменит usb кабель или сам сканер на свой с доп. нагрузкой.

Пара важных моментов при использовании FIDO2 токенов для аутентификации в линуксе:
1. Добавлять новый токен надо с ключем --resident, иначе будет использоваться старый u2f, надо еще копнуть чем это черевато, но по умолчанию везде где можно я стараюсь использовать как раз resident ключи. pamu2fcfg -o pam:// -i pam:// --resident > ~/.config/Yubico/u2f_keys
2. При добавлении конфигруации pam надо обязательно добавлять параметр userverification=1 в случае с bio ключами. Иначе токен будет работать только на подтверждение присутсвия и будет пускать любого кто решил залогиниться в вашу систему с вашим токеном. Как вариант использовать схему с фоллбеком на пин от токена если палец не отсканился — https://github.com/Yubico/pam-u2f?tab=readme-ov-file#passwordless-authentication-using-biometrics

Не считая нюансов выше, на archwiki вполне сносный гайд. https://wiki.archlinux.org/title/Universal_2nd_Factor#Authentication_for_user_sessions

P.S. Не стоит забывать что токен может сломаться, а палец может не считаться, так что не стоит делать это единственным способом аутентификации.


В Chromium based браузерах оказывается есть менеджер fido2 ключей, что приятно. Базовые задачи вполне закрывает: посмотреть для каких сайтов использвуется ключ, сбросить токен, создать pin и добавить отпечаток. В brave открывается так: Settings -> Privacy and security -> Security -> Manage security keys

В случае с YubiKey это не особо полезная штука, т.к. их официальное приложение(Yubico Authenticator) на мой взгляд лучше, а вот с токеном от Feitian очень выручило - их прога не горит желанием работать на линуксе. Я конечно попробовал потрейсить, но там черт ногу сломит, оказалось проще через браузер.


Скоро что-то будет 🌚


Нужно больше ноутбуков

Недавно по очень вкусной цене отхватил практически новый Thinkpad X12 Detachable. Машину эту заприметил еще когда она только выходила, но побоялся брать из-за опасений что линух на планшете будет мало пригоден к использованию. Тогда я взял йогу как некоторое переходное состояние между традиционным лэптопом и планшетом чтобы на практике разведать обстановку и подготовится к переезду на радикально планшетную жизнь. Обстановку разведал, конфиги не написал. Ну вернее что-то я подготовил, но возможность работы как на привычном ноутбуке слишком сильно расслабляла. На планшете не остается другого варианта кроме как спешно дописывать конфиги и прорабатывать все сценарии которые старательно игнорировались на йоге.

Все еще не рекомендую планшеты на линуксе простому обывателю который не готов погружаться в отладку и написание конфигов всей графической оболочки. Однако все оказалось не так плохо как могло бы быть: с автоповоротом проблем нет, hypland сносно переваривает тач жесты, а этот текст я набираю на довольно неплохой экранной клавиатуре. Единственное что пока вызывает серьезные вопросы это PAM: на заблокированном экране экранную клаву не показать(ну или я пока не раскурил как это сделать), да и неудобно это. Хочется какой-то аналог windows hello или графический ключ как на андроиде. Распознавалку лица я нашел, но пока не очень ей доверяю, с граф ключом поиски еще впереди.

Кстати тема линукса на планшетах вызвала немалый интерес среди знакомых, так что подумываю оформить свои наработки в виде небольшого дистрибутива. Скорее всего это будет yet another arch flavor использующий ванильные репы, но со своим установщиком и простой процедурой обновления конфигов. В принципе к этому давно все шло, но как-то руки не доходили.




Immutable Arch Linux

Я давно присматриваюсь к теме иммутабельных дистрибутивов. В серверном сегменте потихоньку закрепляются flatcar и talos linux. На декстопах становится модным nixos, но его на я дух не переношу. Интересное творит Fedora со своими atomic desktops — под капотом они используют проект ostree который позиционирует себя как некоторое подобие гита для операционных систем. Суть в том что практически весь rootfs у вас контролируется этим самым ostree. Изменяемыми остаются /var и /home(само собой /proc и /dev он тоже не трогает). Атомарные обновления, откаты на предыдущую версию и все прочее тут в наличии. Чем-то концептуально напоминает nixos, но без ее отвратительного пакетного менеджера и крайне специфичного способа конфигурировать систему. Вот бы прикрутить ostree к своей системе?

Оказывается почти все уже сделали до меня. Есть проектик ostree-utility. Он собирает подманом систему, экспортит собранный контейнер и коммитит его состояние в ostree. Получается что для сборки системы используется уже привычный Dockerfile, за это однозначно лайк. Проект просто ставится и работает, накатил его уже на пару тестовых ноутов. Без нюансов не обходится, скрипт придется значительно дорабатывать и огребать особенности работы ostree. Например сейчас у меня отказывается работать rootless режим подмана, несмотря на все необходимые ему танцы с бубном.

Тема интересная, хочется развивать её дальше, так что видимо продолжение следует.


Goodbye docker

Я уже давно пытаюсь работать с контейнерами не используя докер. В кубе containerd, на локалке podman, а в CI работает buildkit с buildctl. Единственное что не давало покоя: в подмане нет альтернативы docker buildx который дает неплохую интеграцию с билдкитом. Я не готов менять buildkit на что-то другое, кастомные фронтенды и скорость сборки образов подкупают.

Оказывается, buildx сделан плагином для докера, т.е. по сути это одтельный бинарь, который отлично работает сам по себе. В арчрепе у плагина в зависимостях только git и go, так что наконец-то я могу удалить докер и полностью переехать на подман. Без костыля не обошлось, но это меньшее из зол.


А так можно было?

Обнаружил неожиданный фукнционал в гитлабе. Оказывается можно выписывать PAT прямо через ssh. Например:
ssh git@git.example.com personal_access_token test read_repository,read_api 1
Выпишет токен с названием test с правами на чтение на 1 день.

Из этого следует 2 вещи:
— В скриптах которые стучат в апи гитлаба и запускаются на личной машине а не в CI, можно не морочиться с выписыванием себе токена. Это ощутимо сокращает кол-во действий
— Утечка приватного ключа пользователя легко приводит к угону аккаунта от которого был ключ.

Что еще может гитлаб через ssh можно посмотреть тут


Гуглу явно мало того что они переизобрели L4-L7 со своим QUIC. Он теперь сунулись на уровень ниже и создали hardware-assisted transport layer. Насколько я понял в итоге получается "L4 на стероидах" с аппаратным ускорением. Прикольное направление, интересно как будет развиваться


GitHub наконец-то выкатил поддержку passkeys как stable фичу. По сути это 2FA без первого фактора(пароля). Удобно и секурно.

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


Репост из: Хакер Володя
@n0nvme (@typical_n0nvme) в комьюнити зоне объясняет почему вам нужен синкпад

Показано 20 последних публикаций.

130

подписчиков
Статистика канала