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

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

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

Как собрать контейнер и не вооружить хакера

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

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

Привет, Хабр! Это Алексей Федулаев и Антон Жаболенко из Wildberries. Мы работаем в сфере информационной безопасности (ИБ) уже больше 10 лет.

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

Компиляция контейнеров — Dockerfiles, LLVM и BuildKit

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

Как получаются контейнеры? Обычно из серии операторов, таких как RUN, FROM и COPY, которые помещаются в Dockerfile и собираются. Но как эти команды превращаются в образ, а затем в работающий контейнер? Понять это можно если пройти этапы создания образа контейнера самостоятельно. Мы создадим образ программно, а затем разработаем обычный синтаксический интерфейс и будем использовать его для создания образа.

Погружаемся
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Об одном способе веб-скрапинга сайтов, защищенных Cloudflare

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

Сразу оговорюсь, что описанное ниже носит исключительно информационно-образовательный характер, и не имеет целью нанесение какого-либо ущерба компаниям, использующим защиту из заголовка статьи. По этим же причинам фокусировка статьи именно на том, как получить заветный html «как из браузера» в автоматизированном режиме, и здесь не будет идти речь о каких-то массовых распараллеливаниях через proxy и VPN, подкладываниях отпечатков (finger prints) браузеров и т. д.

Узнать о способе обхода защиты Cloudflare
Всего голосов 23: ↑22 и ↓1+26
Комментарии31

Аутентификация в Kubernetes через Gitlab'овские JWT токены

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

Представим ситуацию, что мы деплоим по push-модели. В качестве платформы для запуска деплоя у нас используется Gitlab: в нём настроен пайплайн и джобы, разворачивающие приложения в разные окружения в Kubernetes

Какой бы инструмент мы не использовали (kubectl, helm), для манипуляций с ресурсами API нам в любом случае будет необходимо аутентифицироваться при выполнении запросов к Kubernetes. Для этого в запросе надо передать данные для аутентификации, будь то токен или сертификат. И тут возникает несколько вопросов:

1. Где хранить эти креды?

Хранить креды от кластера можно, например, в Gitlab CI/CD Variables и подставлять в джобу деплоя, но тогда потенциально все пользователи будут деплоить с одними и теми же доступами

2. Как сделать так, чтобы у каждого пользователя были свои данные для доступа в кластер?

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

А что если сделать так, чтобы в качестве провайдера аутентификационных данных для Kubernetes выступал сам Gitlab? Тогда не надо было бы нигде хранить креды, и каждый пользователь мог бы аутентифицироваться в кубере под своей учёткой при запуске деплоя

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

GPT-4 добавляем новые знания: Git репозиторий

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

GPT-4 позволяет достаточно просто писать boilerplate код с использованием различных языков, технологий и библиотек. Но, есть небольшая проблема, данные GPT-4 не совсем актуальные и ограничены серединой 2021 года.

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

Поехали
Всего голосов 11: ↑10 и ↓1+13
Комментарии8

Выбор DNS-хостинга после 10 лет с Яндексом

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

Что не так с DNS от Яндекса?
Какой DNS-хостинг у самых посещаемых сайтов в зоне .ru?
Как выбрать провайдера? Сравнительная таблица.

Узнать
Всего голосов 52: ↑52 и ↓0+52
Комментарии49

Требования к разработке приложения в Kubernetes

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

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


Эта лекция в рамках «Вечерней школы Слёрма по Кубернетес». Вы можете просмотреть открытые теоретические лекции Вечерней Школы на Youtube, сгруппированные в плейлист. Для тех же, кому удобнее текст, а не видео, мы подготовили эту статью.


Зовут меня Павел Селиванов, на текущий момент я являюсь ведущим DevOps инженером компании Mail.ru Cloud Solutions, мы делаем «облака», мы делаем мэнедж-кубернетисы и так далее. В мои задачи сейчас как раз-таки входит помощь в разработке, раскатывание эти облаков, раскатывание приложения, которые мы пишем и непосредственно разработка инструментария, который мы предоставляем для наших пользователей.



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

PostgreSQL: настройка и оптимизация производительности. Часть 1

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

Данная статья посвящена способам повышения производительности PostgreSQL и EDB Postgres Advanced Server (EPAS) с 10 по 13 версии. Мы начнём с аппаратного обеспечения и будем двигаться вверх по стеку, оставив напоследок SQL-запросы. 

Читать далее
Всего голосов 19: ↑18 и ↓1+19
Комментарии5

4k @ 144Hz: DP, HDMI, USB-C Alt-Mode & cables…

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

Я недавно сделал себе небольшой апгрейд и у меня появился монитор 4k@144Hz. Разумеется, на 144Hz он не заработал. Потому что нюансы. Мне пришлось в это нырнуть глубже, чем хотелось бы...

Спойлеры: DP, USB-C Alt-mode, Thunderbolt, USB4 3x2, 40Gbps, HDMI.
Оглавление: кабели, протоколы, режимы.

Лыдыбр: Моя старая видеокарта на компьютере сумела завести его на 4k @ 60Hz с помощью Display Port. (Либо 2k @ 144Hz). Это её техническое ограничение, больше она не может. Дальше я попытался воткнуть в монитор ноутбук (все 5 шт, какие нашлись у меня и знакомых) и обнаружил, что всё настолько сложно, что мне потребовалось несколько заходов чтения спецификации, пока я "это завёл". Выписываю свои наблюдения и эксперименты. Актуальность - первая половина 2022 года. Монитор under study - Gigabyte M32U, хотя, в принципе, это не существенно для обсуждаемого вопроса. У монитора разъёмы HDMI, DP, USB-C.

Разбирать проблему я буду слоями. Начём с физики.

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

Настройка сетевого стека Linux для высоконагруженных систем

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

Сетевой стек — одна из самых запутанных вещей в Linux. И не только из-за сложности некоторых концепций и терминов, но и из-за изменения смысла некоторых параметров в разных версиях ядра. В этой статье приведена информация для ядра 2.2 и выше, а также, там где это возможно, указано различие между версиями вплоть до 5.5.

О том как изменять параметры ядра, описываемые здесь, можно прочитать в статье Linux Kernel Tuning for High Performance Networking: Configuring Kernel Settings.

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

История одного обновления. Миграция на Zabbix 5.0 LTS с минимальными потерями

Время на прочтение6 мин
Количество просмотров5.8K
Привет!

Я Олег, системный администратор в команде Timeweb, и в этой статье я расскажу, как мы перешли на актуальную версию Zabbix с минимальным простоем без потери функциональности. Здесь будет описан наш опыт — опыт избавления инфраструктуры от неактуального ПО и последствий хардкода.


Обновить Zabbix или сохранить наработки? Вот в чем вопрос


Так уж сложилось, что сотрудники, ответственные за оперативное реагирование на проблемы, для наблюдения использовали один экран Zabbix с дополнительными самописными виджетами, захардкоженными в Zabbix GUI на PHP. Как, когда и почему это началось, история умалчивает… Часть данных запрашивалась из API Zabbix, часть — из сторонних систем. Всё это отображалось в виде таблицы. Кроме этого, существовала и вручную созданная таблица в базе Zabbix для хранения данных одного из виджетов.

Основной недостаток такого наслоения виджетов — невозможность обновить Zabbix на актуальные версии с сохранением наработок. Поэтому наше первое правило клуба при миграции в новый мониторинг и воспроизведении функционала, — отказ от модификации кода GUI Zabbix.

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

Сеть контейнеров — это не сложно

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

Работа с контейнерами многим кажется волшебством, пришло время разобраться как работает сеть Docker. Мы покажем на примерах, что это совсем не сложно. Нам потребуется немного сетевой магии и никакого кода...

В этой статье мы ответим на следующие вопросы:

Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у каждого из них есть выделенный сетевой стек?

Как превратить контейнеры в дружелюбных соседей, не дать им мешать друг другу и научить хорошо общаться?

Как настроить сетевой доступ из контейнера во внешний мир (например, в Интернет)?

Как получить доступ к контейнерам, работающим на сервере, из внешнего мира (публикация портов)?

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

Что будет, если изменить количество виртуальных нод в Apache Cassandra

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


В Apache Cassandra 4.0 будет новое значение по умолчанию для num_tokens! Звучит как незначительное изменение в CHANGES.txt, но по факту это серьезно повлияет на работу кластера. Как новое значение num_tokens скажется на кластере и его поведении?


От редакции: 27 марта приглашаем на открытую онлайн-конференцию Cassandra Day Russia 2021. В программе доклады и воркшопы. Материалы конференции подойдут как начинающим, так и опытным специалистам.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Проверка б/у макбука перед покупкой — чек-лист

Время на прочтение6 мин
Количество просмотров226K
Статья доработана с учетом ценных комментариев, дополнен список источников.
Данный чек-лист — компиляция нескольких источников, я его делал для себя, когда в конце 2019 года покупал 13" б/у макбук 2015 года, последний из имевших нормальную клавиатуру и набор портов, перед тем как Apple перешла на клавиатуру-бабочку и usb-с порты.

Какую модель б/у макбука стоит брать? Вместо введения


На этот вопрос нет однозначного ответа, поскольку все зависит от ваших задач. Для начала 2020 года и задач «офисной» работы и серфинга я бы сформулировал ответ так — можно брать любой мак от 2014 и более позднего года выпуска, на полноценном процессоре (m5 и m7 брать скорее нежелательно). Macbook pro таким образом предпочтительнее macbook air, поскольку у последних процессор и система охлаждения обычно проигрывает в сравнении.

Оптимальный выбор, который проработает еще несколько лет без проблем — это модели с четырехядерным процессором (не путать с четырехпоточным!), такие ставили обычно в 15" модели. Оперативки не менее 8 Гб, SSD лучше 256 Гб и больше, хотя на 128 с определенными неудобствами жить тоже можно. Батарея оптимально с менее чем 500 циклами перезарядки.

Стоимость 13" макбуков 2014-2016 годов колеблется от 40 до 55 тыс. рублей, причем варианты в хорошем состоянии около 40-45 тыс. мне кажутся наиболее выгодными с точки зрения дилеммы «взять б/у или доложить и взять новый».

Надо иметь ввиду, что все модели 2013-2015 года включительно очень ограничены с точки зрения апгрейда, а апгрейд моделей с 2016 и более поздних вовсе невозможен, поэтому берите сразу конфигурацию, которой вам хватит на ближайшие 2-3 года.

Моделей с клавиатурой-бабочкой (2016-2019 гг) не то что бы надо избегать, но надо отдавать себе отчет, что они требуют радикально более бережного к себе отношения, чтобы клавиатура проработала дольше. Сейчас полно предложений продажи mac mini — это тоже хороший вариант, особенно если он базируется на нормальном четырехядерном процессоре.
Читать дальше →
Всего голосов 57: ↑51 и ↓6+64
Комментарии67

Лучшие практики при написании безопасного Dockerfile

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

В данной статье мы рассмотрим небезопасные варианты написания собственного Dockerfile, а также лучшие практики, включая работу с секретами и встраивание инструментов статического анализа. Тем не менее для написания безопасного Dockerfile наличия документа с лучшими практиками мало. В первую очередь требуется организовать культуру написания кода. К ней, например, относятся формализация и контроль процесса использования сторонних компонентов, организация собственных Software Bill-of-Materials (SBOM), выстраивание принципов при написании собственных базовых образов, согласованное использование безопасных функций, и так далее. В данном случае отправной точкой для организации процессов может служить модель оценки зрелости BSIMM. Однако в этой статьей пойдет речь именно о технических аспектах.

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

Что в стоматологии поменялось за 30 лет, и почему заниматься наукой в России так больно

Время на прочтение13 мин
Количество просмотров52K
image
Кариес средней стадии, зубы, на которых будет сниматься ткань, изолированы коффердамом. Это настолько очевидно, просто и так улучшает результат даже простых вмешательств, что в регионах вас сожгут на костре за одну только мысль делать так постоянно.

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

Или вот приборы для флоуметрии и просвечивания тканей ультрафиолетом. Зачем, когда есть рентген или КТ? А затем, что бывают беременные женщины, которым лечат кариес, когда проблема в пульпите. То есть им просто не могут правильно диагностировать проблему без снимка, а мы можем.

У нас стоят 3D-принтеры. Мы печатаем на них навигационные шаблоны с дырками, чтобы вставить вам в рот форму, полученную фотограмметрией (панорамной съёмкой камерой внутри рта). Они встают чуть ли не со щелчком ровно по зубам и дают точность до сотых долей миллиметра по позиционированию имплантов. У нас есть ещё много игрушек, но главное изменение в медицине и в стоматологии не в них.

Главное — то, что примерно с появлением Интернета поменялся научный подход. А мы в России отстали в своём консерватизме лет на 30. Но я пришёл сюда не ныть, поэтому расскажу и покажу на конкретных примерах проблемы карательной стоматологии и возможные решения. Если вы готовы вкладывать в прикладную науку, конечно.
Всего голосов 152: ↑146 и ↓6+191
Комментарии239

RED-метод для анализа производительности MySQL

Время на прочтение3 мин
Количество просмотров5.1K
Перевод статьи подготовлен в преддверии старта курса «DevOps практики и инструменты».





Метод RED (Rate, Errors, Duration) является одним из популярных подходов к мониторингу производительности. Он часто применяется для мониторинга микросервисов, хотя ничего не мешает использовать его для баз данных, таких как MySQL.

В Percona Monitoring and Management (PMM) v2 вся необходимая информация собирается в базу данных ClickHouse, и дальше уже дело техники с помощью встроенного источника данных ClickHouse создать дашборд для визуализации метрик.

При создании дашборда помимо панелей для RED были добавлены несколько дополнительных панелей, чтобы показать некоторые интересные вещи, которые можно сделать с Grafana + ClickHouse в качестве источника данных и информацией, которую мы храним о производительности запросов MySQL.

Давайте посмотрим на дашборд внимательнее.
Читать дальше →
Всего голосов 7: ↑4 и ↓3+1
Комментарии0

Готовим PostgreSQL в эпоху DevOps. Опыт 2ГИС. Павел Молявин

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

PGConfRu2019 Павел Молявин — «Готовим PostgreSQL в эпоху DevOps. Опыт 2ГИС»**



Всем привет! Меня зовут Павел! Я работаю в компании 2ГИС. Наша компания – это городской информационный справочник, навигационный сервис. Это очень хорошая штука, которая помогает жить в городе.

Всего голосов 11: ↑10 и ↓1+9
Комментарии2

Alpine собирает Docker билды под Python в 50 раз медленней, а образы в 2 раза тяжелей

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


Alpine Linux — часто рекомендованный как базовый образ для Docker`а. Вам говорят, что использование Alpine сделает ваши билды меньше, а процесс сборки быстрей.

Но если вы используете Alpine Linux для Python приложений, то он:

  • Делает ваши билды намного медленней
  • Делает ваши образы больше
  • Тратит ваше время
  • И в итоге может стать причиной ошибок в рантайме
Читать дальше →
Всего голосов 48: ↑36 и ↓12+37
Комментарии30

Несколько советов о том, как ускорить сборку Docker-образов. Например, до 30 секунд

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

Прежде чем фича попадет на прод, в наше время сложных оркестраторов и CI/CD предстоит пройти долгий путь от коммита до тестов и доставки. Раньше можно было кинуть новые файлы по FTP (так больше никто не делает, верно?), и процесс «деплоя» занимал секунды. Теперь же надо создать merge request и ждать немалое время, пока фича доберётся до пользователей.


Часть этого пути — сборка Docker-образа. Иногда сборка длится минуты, иногда — десятки минут, что сложно назвать нормальным. В данной статье возьмём простое приложение, которое упакуем в образ, применим несколько методов для ускорения сборки и рассмотрим нюансы работы этих методов.


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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность