Задать вопрос
  • Python в запущенный в контейнере работает медленнее натива?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    Разница в бинарях - Python на хостовой машине собран без отладочной информации, а тот, который в образе python:3.10.4 собран с нею.

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

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

    PS
    Никогда не используй образы Alpine - там вместо glibc суррогат под названием musl. В прочем для статически слинкованных бинарей на Go использовать можно, но тогда уж выгоднее использовать scratch
    Ответ написан
    5 комментариев
  • Какой самый выгодный способ получения удаленного Kubernetes кластера?

    Griboks
    @Griboks
    Устроиться на работу программистом и как бы ненавязчиво продвигать CI/CD.
    Ответ написан
    7 комментариев
  • Что это такое и как защититься?

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

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

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

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

    Это взгляд дилетанта по безопасности, если чего пропустил -- поправьте. Если где не прав -- расскажите.
    Ответ написан
    3 комментария
  • Как проверить нагрузку индексов на сайт?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Первое что нужно сделать - смотреть слоулог, или хотя бы завести его, если еще нету. Можно поставить мониторинг и анализ запросов в какой-нибудь Percona или что-то типа, посмотреть что вообще происходит. Потом уже можно говорить что что-то лишнее или не хватает.
    Ответ написан
    2 комментария
  • Как намекнуть начальству, что agile не избавляет от тз?

    1. Agile - это про то что люди должны договариваться. По тому надо не намёки делать, а говорить прямо и предметно.

    2. Вот вы говорите, что вам нужно ТЗ. А зачем вам оно нужно?
    Вам не понятна та постановка, которая описывается в карточках?
    Есть неоднозначность?
    Уже есть примеры, когда от этой неоднозначности пострадал продукт (например из-за необходимости переделывать)?

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

    Возможно, произошла мискоммуникация между вами и заказчиком. Возможно, заказчик действительно ожидает от вас (команды) самостоятельности при составлении задач - по сути сочетание в себе и менеджера и аналитика.
    Это нормально, но нужно этот момент тоже прояснить.
    Ответ написан
    6 комментариев
  • Как залить на сервер сайт с бекендом, который написан на php?

    @AndryG
    Я за семь минут сформулировал три разных ответа. Это ж надо так умудриться задать вопрос, что хрен поможешь.

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

    когда подключается PHP код выходит ошибка (не находит страницу)

    Ошибки - это нормально! Нужно найти причину и устранить ее.

    Правильно заданый вопрос - 50% ответа. Тренируйтесь излагать мысли - полезно для кодинга
    Ответ написан
    Комментировать
  • Как правильно делать коммит в монорепе?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Можно указывать в названии PR:
    feature/front/books-added-author-field
    feature/back/books-added-author-field

    Нужно/не нужно - скорее организационный вопрос. Если проект большой и народу много, то тогда вообще репозиторий следует делить на более маленькие для разных команд разработчиков, а не держать все в одной куче. Если же один-два - то вообще не принципиально.
    Ответ написан
    Комментировать
  • Как автоматически задеплоить бота Telegram?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Для начала, следует научиться запускать бота где-то на сервере руками.
    Потом описать инструкцию что для этого делается (новая папка, редактирование конфига, запуск бота).
    Затем реализовать эти команды в скрипте, который вызывается нажатой в веб-интерфейсе кнопкой.

    Вообще вопрос немного неясен. Ответ как бы элементарный - установка и настройка бота.
    Детальный ответ тут больше будет как выполненная за вас работа, а в этом случае вам на фриланс
    Ответ написан
    3 комментария
  • Как найти и настроить права bash?

    paran0id
    @paran0id Куратор тега Linux
    Умный, но ленивый
    На исполняемый файл будет указывать симлинк /proc/<pid>/exe
    Все открытые процессом в данный момент файлы можно получить командой lsof -p <pid> /
    Еще можно посмотреть слинкованные библиотеки командой ldd /путь/к/исполняемому/файлу, но это далеко не всегда вам поможет.

    Но если вы скажете, что именно хотите сделать, можно будет ответить точнее.
    Ответ написан
    6 комментариев
  • Какие есть программы для ограничения рабочего стола?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    То, что вы описали, называется kiosk mode и в Windows 10+ он есть
    Ответ написан
    Комментировать
  • Как избавиться от ошибки сертификата?

    @d-stream
    Готовые решения - не подаю, но...
    В приведённом варианте openssl создаёт самоподписанный сертификат. На что и будут регулярные жалобы.
    Прямой вариант - выпустить нормальный сертификат например на letsencrypt с цепочкой удостоверяющих центров и т.п.
    Ну или как минимум имитировать подобное создав свой псевдоудостоверяющий центр:
    ca сертификат и им подписать серт для гитлаба, но тогда придётся ca прописывать всем клиентам как trusted ca
    Ответ написан
    2 комментария
  • Как настроить Nginx чтобы он DNS обращение перебрасывал на другой DNS?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    DNS тут ни при чём, nginx это веб-сервер.

    Если я правильно вас понял, вам нужно стандартное обратное проксирование сайта, описанное примерно в любой инструкции, например.
    Ответ написан
  • Почему 300 проксей проверяются так долго?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тебе нужно проанализировать статистику по негативным ответам проверки прокси.
    Если большая часть ответов - это socket timeout - то сделай таймаут не 5 секунд а 0.5 секунды.
    Ответ написан
    Комментировать
  • Как подключить автодополнение в командах в bash?

    @Komandir_Bublik
    Посмотри установлен ли bash completion?

    bashrc

    # enable programmable completion features (you don't need to enable
    # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
    # sources /etc/bash.bashrc).
    if ! shopt -oq posix; then
      if [ -f /usr/share/bash-completion/bash_completion ]; then
        . /usr/share/bash-completion/bash_completion
      elif [ -f /etc/bash_completion ]; then
        . /etc/bash_completion
      fi
    fi
    Ответ написан
    3 комментария
  • Почему браузеры и curl дают разные результаты?

    ValdikSS
    @ValdikSS
    На сайте используется TLS Fingerprint (вероятно, JA3) как один из индикаторов сессии в системе перед веб-сервером, вероятно, это анти-DDoS.
    Так как браузер и curl используют разные SSL-библиотеки и передают разные наборы шифров, сервер предлагает вам пройти challenge.
    Ответ написан
    5 комментариев
  • Как узнать, что веб-адрес официальный?

    Adamos
    @Adamos
    "Какой-то сертификат" и у фишингового сайта будет.
    Если начать копать, внезапно окажется, что сам термин "официальный сайт" довольно размыт. У крупных IT-корпораций, например, число совершенно официальных сайтов может исчисляться десятками. А локальная мелочь может иметь только страничку во ВКонтакте...

    Задачу проще решать от противного - выделять не официальные сайты, а фишинговые.
    Собственно, Гугль это давно делает и предлагает список таковых в своем API.
    Ответ написан
    Комментировать
  • Как сделать автоматическое создание пользователей с уникальными ключами на AWS S3?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Предполагаю что как-то так.
    1. Погуглить AWS S3 access to one folder
    2. Наткнуться на ответ в KB AWS https://repost.aws/knowledge-center/s3-folder-user...
    3. Реализовать изменение политик любым удобным иструментом - cli, powershell, terraform etc
    Ответ написан
    1 комментарий
  • Как оптимальнее всего организовать хранение тяжёлых данных и чтобы потом максимально быстро доставать оттуда данные для отчётов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я знаю два сильных пути оптимизации в БД.

    1) Минимизация IOps. Тоесть уменшить число дисковых чтений. Для таблиц это достигается через
    partitions by date. Вычисляешь экспериментально оптимальный размер partition (например 1 неделя).
    И твои запросы по диапазону должны попадать в 1-2 partitions. Это исключает full-table-scan.
    Ну и индекс попробуй построить по предикатам фильтров.

    2) Материализация ответов. Для данных которые уже не будут изменяться ты строишь где-то такую
    табличку (матрицу по сути) где хранишь уже заранее расчитанные данные. Эта технология по разному
    может называться. Materialized View. OLAP cubes. Витрины данных. Но суть одна.

    start_date    end_date     result 
    01-02-2023    03-02-2023   { "1":"65", "2":"45" }


    И индекс по двум датам.
    Ответ написан
    Комментировать
  • Как скопировать rsa ключ на другой линукс сервер?

    @SunTechnik
    Есть два направления решения:
    1. Перенести опции запуска в файл настроек ( ~/.ssh/config)
    https://www.digitalocean.com/community/tutorials/h...

    Тогда не потребуется вводить эти ключи и сработает ssh-copy-id

    2. Ssh-copy-id всего лишь скрипт, который добавляет ключ в файл ~/.ssh/authorized_keys
    Содержимое можно перенести или через scp или вообще через буфер обмена. Файл текстовый, ключ не особо длинный....
    То-есть руками выполнить необходимые действия.

    Критичны права на каталог ~/.ssh и сам файл. ~/.ssh/authorized_keys.
    Права записи должны быть только у владельца.
    Проще ставить 700 на каталог и 600 файл.
    Ответ написан
    Комментировать
  • Как сделать автоматический деплой веб-сервиса на поддомен?

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

    При том что задача в общем случае решается элементарно. Добавлением еще одной секции в плейбук того же Ansible. Что даст автору ту самую заветную "одну кнопку". А точнее две - развернуть новый инстанс и обновить все существующие.

    А если еще внимательнее посмотреть на проблему, то возникает закономерный вопрос - а зачем автору вообще миллион виртуальных хостов, если речь идет о банальных поддоменах? Которые прекрасно реализуются в рамках единственного виртуального хоста. То есть можно либо добавить поддержку субдомена в текущее приложение, либо, на худой конец, сделать multi-tenant приложение, где у каждого поддомена будет своя БД.
    При этом вся кнопка будет заключаться в добавлении имени субдомена в базу данных
    Ответ написан
    3 комментария