Как стать автором
Обновить
37
0.1

Пользователь

Отправить сообщение

Как настроить пайплайн с разделением на стадии в GitLab CI

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2K

В GitLab CI пайплайны выполняют основную роль в автоматизации процессов CI/CD. Они позволяют разбить весь процесс сборки, тестирования и деплоя на отдельные, логически связанные задачи — или "джобы". Эти джобы структурируются в стадии, каждая из которых представляет собой определенный этап работы — например, сборка, тестирование или развертывание. Такое разделение позволяет ускорить разработку и минимизировать ошибки при доставке кода на продакшн.

В этой статье рассмотрим, как настроить пайплайн с разделением на стадии в GitLab CI.

Читать далее
Всего голосов 16: ↑9 и ↓7+5
Комментарии2

Анатомия Интернета: что в имени тебе моём? (DNS)

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров23K

Всем нам нравится писать в строке бровсера https://habr.com/. Никому не
захотелось бы писать там https://178.248.237.68/. К тому же, IP-адрес может
измениться, если Хабр решит перейти на другой хостинг.

Служба Интернета, которая превращает удобные всем имена в IP-адреса,
называется DNS, Domain Name System, "система доменных имен".

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

Эта статья не является введением в DNS для начинающих. Скорее, моя
предполагаемая аудитория - это ИТ-профессионалы разной специализации,
которые хотят получше разобраться в анатомии сети Интернет.

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

Читать далее
Всего голосов 25: ↑24 и ↓1+30
Комментарии25

Какой роутер для OpenWrt купить в 2025 году?

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров120K

Я много пишу про OpenWrt и часто получаю вопросы о том, какой взять роутер под эту ОС. В прошлом году я уже делал обзор роутеров, лучше всего подходящих под OpenWrt. Тогда выбор был не очень большой, но сейчас всё изменилось в лучшую сторону. Поэтому я сделал новый актуальный разбор для тех, кто не знает, какой роутер выбрать.

Роутер, как и любой другой девайс, нужно покупать под запрос. Например, линуксоиды привыкли покупать ноутбуки именно под Linux, а не первый попавшийся. Также и тут: если нужен OpenWrt, то роутер тоже надо выбирать с умом, а не надеяться на то, что кастомная прошивка сделает конфетку из роутера за 700 р.

В 2023 и 2024 появились интересные роутеры, которые уже поддерживаются проектом OpenWrt. Эти роутеры сделаны на базе ARM-процессоров. Такие роутеры появились у нескольких компаний, и дальше их количество будет только увеличиваться.

Читать далее
Всего голосов 245: ↑245 и ↓0+271
Комментарии248

Микроволновка vs Wi-Fi

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров7.8K

Микроволновая печь греет еду волной 2,4 ГГц, на этой же частоте работает обычный Wi-fi роутер. Измеряем подручными средствами Wi-fi из микроволновки.

Читать далее
Всего голосов 14: ↑13 и ↓1+12
Комментарии54

REDIS: такой простой и такой сложный

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров23K

Меня зовут Андрей Комягин, я СТО компании STM Labs. Мы занимаемся разработкой очень больших распределённых высоконагруженных систем для различных отраслей и в своей работе широко используем open-source решения, в том числе СУБД Redis. Недавно я подробно рассказывал об этой системе на конференции Saint HighLoad++, а теперь с удовольствием поделюсь основной информацией с читателями Хабра. Итак, поехали.

Читать далее
Всего голосов 50: ↑49 и ↓1+60
Комментарии28

Подробно про JWT

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров16K

О чем эта статья: мы разберемся, что такое JSON Web Token, как он устроен и для чего используется, рассмотрим такие приемы, как «black-list токенов» и «контроль версий» токенов. Для наглядности, в конце будут блок-схемы клиент-серверных запросов с пояснениями.

Для кого эта статья: для тех, кто хочет детально понять что такое JWT, а так же для тех, кто просто ищет схему реализации.

Читать далее
Всего голосов 22: ↑20 и ↓2+20
Комментарии17

Как в разы увеличить дальность приема WiFi / BT при помощи паяльника

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров53K

Ну или точнее при помощи двух паяльников. Несколько простых и эффективных решений, подходящих для компактных модулей с чип антенной.

Читать далее
Всего голосов 108: ↑107 и ↓1+128
Комментарии135

Как Linux создаёт и подсчитывает сокеты

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров14K

Подробно о том, что происходит под капотом в ядре Linux, когда вы выполняете очередной системный вызов при работе с сокетами.

Читать далее
Всего голосов 33: ↑32 и ↓1+44
Комментарии2

Код как данные: пишем Python на Python

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров17K
Идея о том, что язык программирования может реализовать сам себя, удивительна. Она вызывает сильное любопытство: «Как это вообще может выглядеть?» С момента своего появления в начале 60-х это мог делать Lisp.

В начале 60-х Джон Маккарти придумал серию примечательных идей, хорошо сочетающихся друг с другом и актуальных даже спустя десятки лет. Сначала он сформулировал их в статье о Lisp, а чуть позже — в руководстве по Lisp 1.5.


Джон Маккарти

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

Такая унификация кода и данных глубоко укоренилась в Lisp, она обеспечивает уровень выразительности, позволяющий языку естественным образом быть выраженным в самом себе.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+27
Комментарии10

Обходим блокировку VPN

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров69K

Мой провайдер помимо замедления (читай полная блокировка) YouTube так-же стали блокировать соединения с моими рабочими VPN. Работодатель не очень любит, когда на встречах на вопрос о прогрессе, я неделю отвечаю, что у меня не работает VPN! Своими действиями, мой провайдер сам меня подтолкнул к поиску обходных путей.

Сразу скажу, обходной путь придумал не сам, мне его подсказал автор проекта zapret, а точнее его комментарий, более того, я использую его проект, чтоб смотреть нормально YouTube. Спасибо огромное!

Добавлю, я использую nftables и nfqws, если этот вариант работает у меня — это не значит, что оно заработает и у вас! Возможно, вам придётся изменить некоторые параметры.

Читать далее
Всего голосов 36: ↑34 и ↓2+39
Комментарии81

Темные стороны контейнеров: риски и меры безопасности

Время на прочтение5 мин
Количество просмотров3.5K

Гайнуллина Екатерина, инженер по информационной безопасности отдела развития Security Vision

Контейнеры Docker давно стали неотъемлемой частью современных IT-инфраструктур благодаря своей легкости и гибкости. Однако, несмотря на все их преимущества, они обладают и серьезными недостатками в плане безопасности. Представьте себе контейнер с root-доступом. Это, как если бы у вас была дверь с замком, но ключ от неё подходил бы ко всем замкам в доме.

Читать далее
Всего голосов 15: ↑13 и ↓2+13
Комментарии3

Kafka для самых маленьких разработчиков, аналитиков и тестировщиков

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров26K

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

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

Читать далее
Всего голосов 34: ↑33 и ↓1+40
Комментарии15

Multicast DNS и DNS-SD

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров4.2K

Multicast DNS и DNS-SD являются ключевой составной частью стека Zero-configuration networking (zeroconf) и отвечают в нем за службу имен и автоматический поиск устройств в пределах локальной сети.

Технология zeroconf, позволяющая собрать работающую локальную сеть с нулевыми усилиями по администрированию и конфигурации, известна уже давно. Еще в 1980-х AppleTalk, локальная сеть для компьютеров и устройств Apple, позволяла просто соединить устройства проводами и сразу начать работать.

AppleTalk не выдержал конкуренцию с TCP/IP в эпоху Интернета, но идея сети, которая работает сама, не умерла. В мире TCP/IP Apple продвигает ее под именем Bonjour (ранее Rendezvous).

mDNS/DNS-SD являются одними из ключевых технологий в устройстве современного стека печати и сканирования. Кроме того, они могут использоваться в "облаке", позволяя отдельным компонентам облачного сервиса найти друг друга при условии, что они подключены к одной локальной сети, реальной или виртуальной.

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

Читать далее
Всего голосов 13: ↑13 и ↓0+19
Комментарии7

Невероятная история Эда Торпа: как один математик смог обыграть сначала казино, а потом и весь Уолл-стрит

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров68K

Если среди физиков настоящей легендой безумных жизненных историй был Ричард Фейнман, то среди математиков и инвесторов этот титул должен по праву принадлежать Эдварду Торпу. Чувак смог не только обуть казино сразу в двух считавшихся ранее «непобедимыми» играх, но и заработать $800 млн на фондовом рынке благодаря идее, достойной Нобелевки.

Читать далее
Всего голосов 215: ↑211 и ↓4+245
Комментарии77

CORS — это тупо

Время на прочтение7 мин
Количество просмотров24K

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

Замечание: я собираюсь рассказать о CORS и правиле ограничения домена как о единой сущности, поэтому далее часто буду употреблять эти термины как синонимы. Дело в том, что они, по сути – части одной системы, работают в сочетании друг с другом и помогают вам решать, что можно сделать с какими ресурсами смешанного происхождения. В принципе, если ваши запросы поступают из разных источников, то вам придётся иметь дело с правилами, политиками и механизмами CORS.

Прежде всего, отмечу, что CORS — это огромный костыль, помогающий снизить влияние ошибок, передающихся с унаследованным кодом. В этой системе защита предоставляется как по принципу отказа от участия (opt-out) в попытке частично купировать XSRF-атаки против незащищённых или немодифицированных сайтов, так и по принципу активного участия (opt-in), чтобы на сайте включалась активная самозащита. Но ни одной из этих мер не достаточно, чтобы решить целенаправленно созданную проблему. Если на вашем сайте используются куки, то вы обязаны деятельно позаботиться о его безопасности. (Ладно, это касается не любого сайта, но лучше перестрахуйтесь. Выделите время на тщательный аудит вашего сайта или выполните описанные ниже простые шаги. Даже придерживаясь самых разумных паттернов, вы всё равно можете подставиться под XSRF-уязвимости).

Читать далее
Всего голосов 17: ↑11 и ↓6+10
Комментарии19

Explor-им GitLab

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров2K

Меня зовут Дмитрий Прохоров, я пентестер из команды CyberOK. Часто на проектах по пентесту, а также в программах Bug Bounty встречаются Gitlab-ы. И встречаются они не только специалистам по ИБ, но и злобным хакерам, которые не прочь завладеть секретами репозиториев и даже исполнить код на сервере!

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

Читать далее
Всего голосов 6: ↑6 и ↓0+10
Комментарии0

Kata Containers для Docker в 2024

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.9K

Kata Containers по факту сейчас основной способ запустить контейнеры в изолированной виртуальной машине для большей безопасности. Рассказываю, как установить их для использования с Containerd и Docker, сохраняя возможность переключаться между версиями релизов.

Читать далее
Всего голосов 4: ↑4 и ↓0+8
Комментарии0

aldaas — БД с заготовлеными данными для разработки, CI/CD и всех-всех-всех

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.1K

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

Читать далее
Всего голосов 11: ↑11 и ↓0+13
Комментарии2

Как я пришёл к пониманию основ создания Live-дистрибутивов Linux, решив починить свой старый SSD

Уровень сложностиСредний
Время на прочтение28 мин
Количество просмотров22K


Был у меня старенький SSD объёмом 240 Гбайт от Kingston, который внезапно перестал работать, вообще перестал распознаваться в системе. Попробовал я подключить SSD к другому компьютеру, попробовал использовать как внешний диск, ничего не дало результата. Поэтому я купил новый, а этот разобрал.


Внешних признаков, указывающих на то, что SSD сгорел, я не заметил, а интуиция говорила: «Проблема программная». Выбрасывать диск не хотелось, поэтому он остался пылиться до «лучших» времён. И вот недавно захотелось попробовать его починить. К своему удивлению, я достаточно быстро нашёл необходимую статью на Хабре, где рассказывалось, как можно оживить SSD на том же контроллере, что и мой, отдельную тему на форуме Ru-Board, а также статью с подробной инструкцией, по ней я и восстановил свой SSD. Но кроме восстановленного SSD я еще приобрёл и закрепил знания по Linux, которые изложил в этой статье. Всем, кому интересно, добро пожаловать под кат.

Читать дальше →
Всего голосов 46: ↑46 и ↓0+63
Комментарии10

Запускаем HAProxy Kubernetes Ingress Controller вне Kubernetes-кластера

Время на прочтение11 мин
Количество просмотров13K

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

В статье мы установим Calico в качестве сетевого плагина в Kubernetes и настроим маршрутизацию с помощью протокола BGP. В продакшне BGP будет работать на третьем уровне сети, но для демонстрации этого мы используем в качестве роутера демона BIRD, установленного на той же VM, что Ingress Controller.

Мы пошагово разберем, как запустить внешний HAProxy Kubernetes Ingress Controller и как установить Kubernetes-кластер с Calico.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии10

Информация

В рейтинге
3 150-й
Зарегистрирован
Активность