Pull to refresh
3
0.7
Send message

Красивый GitLab CI: extends, якоря, include, trigger

Level of difficultyMedium
Reading time9 min
Views2.2K
image

В последнее время мне довелось столкнуться с огромным количеством CI в GitLab. Я каждый день писал свои и читал чужие конфиги. Мой день буквально выглядел как:
Читать дальше →

Защита Debian путём внедрения обязательного контроля доступа через SELinux для максимальной безопасности системы

Reading time5 min
Views3.4K

В эпоху, когда киберугрозы быстро эволюционируют, обеспечение безопасности систем Linux выходит далеко за рамки базовых разрешений пользователей. Традиционные механизмы безопасности вроде дискреционного управления доступом (DAC) обеспечивают ограниченную защиту от эскалации привилегий, скомпрометированных приложений и внутренних угроз.

Для устранения этих ограничений Security‑Enhanced Linux (SELinux) предлагает мощную и детализированную систему мандатного управления доступом (MAC) — и теперь не только для дистрибутивов на базе Red Hat.

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

Читать далее

Гайд на виртуальный частный сервер (VPS) с нуля

Level of difficultyEasy
Reading time14 min
Views3.6K

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

Коротко, о чём гайд:

- Сервер Linux Debian 11
- Виртуальная частная сеть Wireguard
- Мониторинг Grafana
- Спасательный круг: backups & snapshots
- Базовая защита от взлома перебором fali2ban
- Фильтр нежелательного контента, приоритезация трафика QoS

Читать далее

Что же такое TPU

Level of difficultyEasy
Reading time14 min
Views12K

В последнее время я много работал с TPU и мне было интересно наблюдать такие сильные различия в их философии дизайна по сравнению с GPU.

Главная сильная сторона TPU — это их масштабируемость. Она достигается благодаря и аппаратной (энергоэффективности и модульности), и программной стороне (компилятору XLA).

Общая информация

Если вкратце, то TPU — это ASIC компании Google, делающий упор на два фактора: огромную производительность перемножения матриц + энергоэффективность.

Их история началась в Google в 2006 году, когда компания впервые начала размышлять о том, что же ей стоит реализовывать: GPU, FPGA или специализированные ASIC. В те времена было лишь несколько областей применения, в которых требовалось специализированное оборудование, поэтому было решено, что потребности компании можно удовлетворить при помощи незадействованных вычислительных ресурсов (compute) CPU её крупных датацентров. Но в 2013 году ситуация изменилась: функция голосового поиска Google начала использовать нейросети, и по расчётам для её реализации потребовалось бы гораздо больше compute.

Перенесёмся в настоящее: сегодня TPU лежат в основе большинства ИИ-сервисов Google. Разумеется, сюда включены обучение и инференс Gemini и Veo, а также развёртывание моделей рекомендаций (DLRM).

Давайте начнём разбирать внутренности TPU с самого нижнего уровня.

Читать далее

Как работает DNS в Linux. Часть 1: от getaddrinfo до resolv.conf

Level of difficultyMedium
Reading time9 min
Views19K

Привет, Хабр! Меня зовут Анатолий Кохан, я — DevOps-инженер в К2Тех.

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

Данная статья — начало серии, посвященной низкоуровневой архитектуре разрешения имен. Поговорим о том, как устроен этот процесс в Linux на уровне ядра, различных библиотек C и системных вызовов.

Читать далее

Debian 12, QEMU, и сетевые мосты (bridge) в 2025

Level of difficultyMedium
Reading time7 min
Views4.7K

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

Стоит знать перед началом
- Чем коммутатор отличается от маршрутизатора
- Первые 3 уровня модели OSI
- Хотя бы примерно понимать как работает коммутатор
Без этих знаний возможно у Вас не получится понять и правильно использовать информацию из этой статьи.
Сетевые мосты нужны чтобы виртуальная машина могла взаимодействовать с локальными сетями а не просто иметь доступ в Интернет. Если на Вашей виртуальной машине нужен только Интернет, используйте в QEMU режим сети "user".

Читать далее

Новый лучший способ форматирования строк в Python

Level of difficultyMedium
Reading time10 min
Views38K

Привет, Хабр! Приближается релиз Python 3.14, который несет нам множество нововведений. Среди них — новый способ форматирования строк. Давайте посмотрим, что из себя представляют t-строки, на что они годятся и как устроены внутри. Фича действительно мощная, будет интересно.

Поехали!

Как работает безопасность, когда никто никому не доверяет — Zero Trust на пальцах

Reading time10 min
Views15K

Вы потратили кучу времени на защиту снаружи: двухфакторка, фаерволы, бюрократическая заморочка для каждого. Это всё правильно, но один фишинговый email, одна слабая учётка — и левый юзер уже внутри вашей сети. А дальше: данные HR-отдела, финансовая информация, API — доступ ко всему, потому что система считает его «своим».

Часто слышали от коллег про Zero Trust, но руки так и не доходили вникнуть? Zero Trust — это схема «меньше доверяй, больше проверяй», прямо как в отношениях. Сеть разбита как номера в отеле, и в каждый можно попасть только со своим пропуском. Система запоминает ваши привычки и, если вы вдруг решили «прогуляться» не в свой номер, то вас поймают.

Через 10 минут будете знать, как внедрить Zero Trust в продакшене: от базовых принципов до практических приёмов — Canary-токенов, UEBA-анализа и автоматизации реакции на инциденты. Детали под катом.
Читать дальше →

Строим VXLAN/EVPN на несколько ЦОД

Level of difficultyMedium
Reading time26 min
Views3.9K

Что делать и куда бежать, если тебе нужно построить сеть на несколько ЦОД, с L2 связностью между площадками, отказоустойчивостью и масштабированием. В этой статье предлагаю рассмотреть некоторые из возможных подходов к организации больших сетей с использованием VXLAN/EVPN.

Читать далее

Системные вызовы Linux, которые должен знать каждый разработчик

Level of difficultyMedium
Reading time7 min
Views17K

Многие разработчики работают в Linux-среде, но не всегда глубоко понимают, как взаимодействие с ОС происходит на низком уровне. На собеседованиях всё чаще спрашивают про системные вызовы Linux. В этой статье мы рассмотрим, какие вызовы встречаются чаще всего и как они работают.

Читать далее

Разбираемся как работать с wine на Unix-based системах

Level of difficultyMedium
Reading time40 min
Views19K

Давно хотели научиться работать с Wine в Linux или Mac Для запуска Windows приложений? Мой обзор-гайд для вас. Я в подробностях расскажу о том как запускать прилоежния, дебажить их, решать проблемы и покажу различные wine-loaders для работы.

Читать далее

Шардированный кластер ClickHouse

Level of difficultyEasy
Reading time21 min
Views6.1K

Хочу рассказать, как спроектированы распределённые вычисления в ClickHouse. Вы узнаете, на что влияет схема кластера (и на что не влияет). Расскажу, как можно на ровном месте создать себе проблему при помощи всего одной таблицы Kafka и нескольких матвьюх. Поделюсь опытом про дебаг и оптимизацию SELECT-запросов к Distributed таблицам: поизучаем планы выполнения и поэксперементируем с настройками в блоке SETTINGS.

Читать далее

Пишем стек TCP/IP с нуля: поток данных TCP, Socket API, повторная передача

Level of difficultyMedium
Reading time15 min
Views9.8K

Первая часть: Ethernet, ARP, IPv4 и ICMPv4

Вторая часть: основы TCP и Handshake

В прошлом посте мы узнали о заголовках TCP и о том, как устанавливается соединение между двумя сторонами.

В этом посте мы изучим передачу данных по TCP и способ управления ею.

Также мы создадим интерфейс сетевого стека, который приложения смогут использовать для передачи данных по сети. Потом этот Socket API мы применим, чтобы наш пример приложения смог отправить простой HTTP-запрос веб-сайту.

Читать далее

TOP'ай сюда

Reading time5 min
Views184K
Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).

top

Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.

atop


Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.

В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
Читать дальше →

Индексы в PostgreSQL — 4

Reading time26 min
Views121K

Мы уже рассмотрели механизм индексирования PostgreSQL и интерфейс методов доступа, а также один из методов доступа — хеш-индекс. Сейчас поговорим о самом традиционном и используемом индексе — B-дереве. Глава получилась большой, запасайтесь терпением.

Btree


Устройство


Индекс btree, он же B-дерево, пригоден для данных, которые можно отсортировать. Иными словами, для типа данных должны быть определены операторы «больше», «больше или равно», «меньше», «меньше или равно» и «равно». Заметьте, что одни и те же данные иногда можно сортировать разными способами, что возвращает нас к концепции семейства операторов.
Читать дальше →

B-Tree — сбалансированный куст поиска

Level of difficultyHard
Reading time22 min
Views3.3K

В реляционных СУБД есть дефолтный тип индекса — B‑Tree: Tree в названии однозначно указывает на дерево, ну а В это, наверно, Binary? Или Balanced? Или Balanced Binary? Почему‑то долгое время я полагал, что это Balanced Binary, и эта версия даже «работала». На деле всё куда интереснее, предлагаю проследовать под кат, чтобы посмотреть на этот на самом деле скорее низкорослый куст и сравнить его с Red‑Black Tree на Java.

Точно куст?

Всё, что необходимо (и достаточно) знать о создании пользовательских интерфейсов в расширениях VS Code

Level of difficultyMedium
Reading time14 min
Views4.4K

VS Code сам по себе не нуждается в представлении, однако многие программисты, привыкшие в нём разрабатывать, упускают одну очень полезную вещь. Благодаря встроенным возможностям по разработке расширений можно легко автоматизировать многие рутинные задачи — например, те, что выполняются в командной строке.

В этой статье, второй в серии материалов о нестандартных возможностях VS Code, разберём инструменты для создания интерактивных расширений, которые я применяю в работе над решениями productivity suite платформы МойОфис. Под катом мы рассмотрим веб-панели и их разновидность – веб-представления, а также другие стандартные средства VS Code API, такие, например, как элементы строки состояния (кнопки и сообщения).

Читать далее

Отладка приложения, которое не хочет, чтобы его отлаживали

Level of difficultyMedium
Reading time17 min
Views7.8K
Недавно я столкнулся с приложением, которое:

  1. Блокирует прикрепление к нему отладчиков.
  2. Выполняет преждевременный выход при попытках инъецирования кода.
  3. Приводит к вылету телефона целиком, если запустить её со включённым джейлбрейком (!).

По последнему пункту: кто вообще так делает???

Всё, что мы делаем (например, выполняем моддинг TikTok, чтобы он показывал только видео с котиками, или устраняем торможения в чужих приложениях), требует возможности исследования работы приложения.

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

Похоже, это приложение стало на удивление интересной комбинацией всего перечисленного.

Намного более сложной, чем можно было бы ожидать от обычного старого виджет-приложения.
Читать дальше →

Трансформация платформы данных: от пары кубов до хранилища > 30 Тб и 1000 ETL-процессов

Level of difficultyMedium
Reading time9 min
Views5.6K

Привет, Хабр! Меня зовут Наталья Горлова, я архитектор данных. Несколько лет назад мы в CDEK поняли, что продукты, на которых работало хранилище, перестали нас устраивать: не устраивала гибкость разработки и скорость поставки данных. C тех пор произошло множество изменений, которыми хочется поделиться с сообществом.

Расскажу, как платформа данных развивалась, и к чему мы пришли на конец 2024 года. Эта статья — ретроспектива моей почти шестилетней работы и текущих реалий нашей платформы данных.

Читать далее

Что делать, если ты первый AppSec-инженер в компании? План работ на стартовые полгода

Level of difficultyMedium
Reading time9 min
Views2.7K

Сейчас направление Application Security (AppSec) переживает бурный рост. Всё больше компаний выделяют AppSec в отдельное подразделение или начинают строить его с нуля. В крупных корпорациях появляются AppSec бизнес-партнеры, в стартапах лиды разработки всё чаще берут на себя задачи по обеспечению безопасности продуктов. Но с чего начать, если вы — первый AppSec-инженер или руководитель такого направления? Какие задачи поставить в первые полгода, чтобы заложить прочный фундамент?

Меня зовут Алексей Волков, я эксперт в области продуктовой безопасности. Здесь я поделюсь опытом построения AppSec-процессов с нуля в первые полгода: как разобраться в ИТ-ландшафте, настроить процессы и расставить приоритеты, чтобы сразу дать бизнесу ощутимую пользу. Чеклист и советы основаны на моём опыте — без абстракций и нереалистичных ожиданий. При этом важно оговориться, что ваша работа может затянуться — в каждой компании свой ландшафт и у всех проблем бывают разные сроки решения.

Читать далее
1
23 ...

Information

Rating
2,790-th
Registered
Activity