🎉🎉 DevOps meetup
Событие состоится 25 октября в 19:00 в формате онлайн.
Программа
Переходим с Ingress на Gateway API
Доклад представляет собой обзор и анализ различных преимуществ и возможностей, которые предоставляет Gateway API. На этом митапе будут рассмотрены основные причины, по которым стоит рассмотреть переход с Ingress на Gateway API, а также конкретные примеры и сценарии, в которых Gateway API может быть особенно полезным и эффективным, а в каких случаях стоит остаться на старом и стабильном Ingress.
"Serverless" как инструмент для разработчиков без опыта в DevOps
Опытный разработчик поделится своим опытом работы на старте и внедрения DevOps. Его доклад призван помочь разработчикам без опыта в DevOps разобраться в технологиях, выборе путей разворачивания в облаке и поддержке без опыта. Получите ценные советы и инсайты о различиях между Azure и Google.
Переезд в облако из корпоративной инфраструктуры
Спикер поделится опытом переезда в облако, раскроет основные вызовы, с которыми сталкивается команда при таком переходе и расскажет о различиях между корпоративной инфраструктурой и облачными решениями. Узнайте, как изменится жизнь вашей команды и компании после переезда.
#мероприятие
Событие состоится 25 октября в 19:00 в формате онлайн.
Программа
Переходим с Ingress на Gateway API
Доклад представляет собой обзор и анализ различных преимуществ и возможностей, которые предоставляет Gateway API. На этом митапе будут рассмотрены основные причины, по которым стоит рассмотреть переход с Ingress на Gateway API, а также конкретные примеры и сценарии, в которых Gateway API может быть особенно полезным и эффективным, а в каких случаях стоит остаться на старом и стабильном Ingress.
"Serverless" как инструмент для разработчиков без опыта в DevOps
Опытный разработчик поделится своим опытом работы на старте и внедрения DevOps. Его доклад призван помочь разработчикам без опыта в DevOps разобраться в технологиях, выборе путей разворачивания в облаке и поддержке без опыта. Получите ценные советы и инсайты о различиях между Azure и Google.
Переезд в облако из корпоративной инфраструктуры
Спикер поделится опытом переезда в облако, раскроет основные вызовы, с которыми сталкивается команда при таком переходе и расскажет о различиях между корпоративной инфраструктурой и облачными решениями. Узнайте, как изменится жизнь вашей команды и компании после переезда.
#мероприятие
👍5❤2
#вопросы_с_собеседований
Как работает OOM Killer и для чего нужен?
Когда в Linux-е заканчивается память, ядро вызывает OOM для ее освобождения. Это часто встречается на серверах, на которых запущен ряд процессов с интенсивным использованием памяти.
ООМ освобождает память для спасения системы, но чтобы процессы освобождаемые были наименее важны для системы.
У нас не только физическая и виртуальная память может закончиться. А если процесс потребляет страницу определенного размера, то могут быть не очень хорошие вещи.
Ядро Linux дает оценку каждому запущенному процессу, называемому oom_score, которая показывает, насколько вероятно, что он будет остановлен в случае нехватки доступной памяти.
Оценка пропорциональна количеству памяти, используемой процессом. Оценка - 10% процентов памяти, используемой процессом. Таким образом, максимальная оценка составляет 100% x 10 = 1000.
Подробнее об убийце здесь
Как работает OOM Killer и для чего нужен?
👍20🔥12❤4
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🛡️ 8 способов защиты от манипуляций на работе
Столкнулись с эмоциональным давлением на работе? Рассказываем, как действуют манипуляторы, и как обезопасить себя.
🔗 Читать статью
🔗 Зеркало
Столкнулись с эмоциональным давлением на работе? Рассказываем, как действуют манипуляторы, и как обезопасить себя.
🔗 Читать статью
🔗 Зеркало
❤7
🤔 Подготовили #дайджест бесплатных курсов по основам разных технологий
⭕ Основы Linux. Курс основан на книге "Фундаментальные основы Linux". Оригинал: Linux Fundamentals.
⭕ GIT Training. Изучите основы GIT: системе контроля версий, настройка GIT, создание веток и репозиториев, отслеживание файлов, GitHub и многое другое.
⭕ Базовый DevOps. Первый шаг к серьезному обучению и сможете чётко определиться с направлением ваших интересов.
⭕ Основы Docker. Научитесь использовать контейнеры, создадите свой первый контейнер Docker. Узнаете, как запускать контейнеры в рабочей среде и решать проблемы оркестрации, такие как high availability, service discovery и reconciliation.
⭕ Введение в Kubernetes. Разберетесь в управлении жизненным циклом приложений, установке, конфигурации и валидации, сетевом взаимодействии, планировании, безопасности, создании и обслуживании кластеров.
⭕ Основы Linux. Курс основан на книге "Фундаментальные основы Linux". Оригинал: Linux Fundamentals.
⭕ GIT Training. Изучите основы GIT: системе контроля версий, настройка GIT, создание веток и репозиториев, отслеживание файлов, GitHub и многое другое.
⭕ Базовый DevOps. Первый шаг к серьезному обучению и сможете чётко определиться с направлением ваших интересов.
⭕ Основы Docker. Научитесь использовать контейнеры, создадите свой первый контейнер Docker. Узнаете, как запускать контейнеры в рабочей среде и решать проблемы оркестрации, такие как high availability, service discovery и reconciliation.
⭕ Введение в Kubernetes. Разберетесь в управлении жизненным циклом приложений, установке, конфигурации и валидации, сетевом взаимодействии, планировании, безопасности, создании и обслуживании кластеров.
👍9👏6❤4🤩4🔥2
💪🔥 Экспорт GCP ресурсов в формат Terraform
У инструмента gcloud есть фича, которая может экспортировать все, что есть в GCP прямо в HCL. К тому же, генерирует terraform import команды, что тоже очень удобно:
gcloud beta resource-config bulk-export --project=PROJECT_ID --resource-format=terraform
Эта штука в beta, не поддерживает 100% ресурсов, например, не может пока экспортировать Cloud Functions, но полностью может потягаться с terraformer.
Читать
#туториал
У инструмента gcloud есть фича, которая может экспортировать все, что есть в GCP прямо в HCL. К тому же, генерирует terraform import команды, что тоже очень удобно:
gcloud beta resource-config bulk-export --project=PROJECT_ID --resource-format=terraform
Эта штука в beta, не поддерживает 100% ресурсов, например, не может пока экспортировать Cloud Functions, но полностью может потягаться с terraformer.
Читать
#туториал
👍7❤4
🔪🔪 sos report — швейцарский нож для диагностических инструментов
Команда sosreport написана на Python и предназначена для сбора всесторонних диагностических данных из системы Linux.
Установка
OL6 и OL7
sudo yum install sos
OL8 и OL9
sudo dnf install sos
Выполнение
Ниже приведены команды, которые гарантируют, что мы получим все файлы журнала из /var/log, а также все данные sar. Несмотря на то, что команды различаются в некоторых версиях OL, собранные данные одинаковы.
OL6 и OL7
sudo sosreport --batch --all-logs -k sar.all_sar=on
OL8
sudo sos report --batch --all-logs -k sar.all_sar=on
Параметр --batch позволяет запускать sosreport без дополнительного ввода с клавиатуры.
--all-logs гарантирует, что мы получим все файлы из /var/log.
-ksar.all_sat=on указывает sosreport собирать все файлы sar в /var/log/sa, а не только за последние 14 дней.
OL9
sudo sos report --batch --all-logs -e sar -k sar.all_sar=on
Опция -e sar снова включает плагин sar. По умолчанию в OL9 он отключен.
Подробнее
#гайд
Команда sosreport написана на Python и предназначена для сбора всесторонних диагностических данных из системы Linux.
Установка
OL6 и OL7
sudo yum install sos
OL8 и OL9
sudo dnf install sos
Выполнение
Ниже приведены команды, которые гарантируют, что мы получим все файлы журнала из /var/log, а также все данные sar. Несмотря на то, что команды различаются в некоторых версиях OL, собранные данные одинаковы.
OL6 и OL7
sudo sosreport --batch --all-logs -k sar.all_sar=on
OL8
sudo sos report --batch --all-logs -k sar.all_sar=on
Параметр --batch позволяет запускать sosreport без дополнительного ввода с клавиатуры.
--all-logs гарантирует, что мы получим все файлы из /var/log.
-ksar.all_sat=on указывает sosreport собирать все файлы sar в /var/log/sa, а не только за последние 14 дней.
OL9
sudo sos report --batch --all-logs -e sar -k sar.all_sar=on
Опция -e sar снова включает плагин sar. По умолчанию в OL9 он отключен.
Подробнее
#гайд
❤5🔥1
🐧🐧 Создание micro-дистрибутива Linux
В статье пойдет разговор о создании крошечного дистрибутива Linux с нуля.
Вы самостоятельно соберете ядро и напишите ПО для упаковки дистрибутива.
Все будет происходить на архитектуре RISC-V, в частности на виртуальной машине QEMU riscv64. В этой статье мало того, что относится конкретно к этой архитектуре, так что вы можете выполнить почти идентичное упражнение для других архитектур, таких как x86.
Полезный опыт для понимания, как работает Linux, его архитектура и все «подкапотное пространство».
Читать статью
#туториал
В статье пойдет разговор о создании крошечного дистрибутива Linux с нуля.
Вы самостоятельно соберете ядро и напишите ПО для упаковки дистрибутива.
Все будет происходить на архитектуре RISC-V, в частности на виртуальной машине QEMU riscv64. В этой статье мало того, что относится конкретно к этой архитектуре, так что вы можете выполнить почти идентичное упражнение для других архитектур, таких как x86.
Полезный опыт для понимания, как работает Linux, его архитектура и все «подкапотное пространство».
Читать статью
#туториал
👍11❤2
😱😱 Более 10 тыс. сетевых устройств Cisco взломаны из-за уязвимости нулевого дня
Более десятка тысяч сетевых устройств Cisco оказались взломанными из-за ошибки нулевого дня в операционной системе Cisco IOS XE. Хакеры подселили в эти устройства различных вредоносов.
В число пострадавших устройств вошли корпоративные и промышленные роутеры, точки доступа, беспроводные контроллеры и многое другое.
Злоумышленники воспользовались критической уязвимостью (CVE-2023-20198), которая затрагивает все устройства под управлением Cisco IOS XE при условии, что включён Web UI и режим HTTP/HTTPS-сервера.
Уязвимость позволяет удаленному злоумышленнику, не прошедшему авторизацию, создать учетную запись в уязвимой системе с уровнем привилегий 15. Затем злоумышленник может использовать эту учетную запись для получения контроля над уязвимой системой. Иными словами, любой желающий может воспользоваться этой уязвимостью для получения административных привилегий в системе.
В Cisco рекомендуют администраторам временно - до выпуска патча - деактивировать функцию HTTP/HTTPS-сервера и внимательно отслеживать любые подозрительные события и свежесозданные аккаунты. Они вполне могут быть признаками текущей атаки.
#новость
Более десятка тысяч сетевых устройств Cisco оказались взломанными из-за ошибки нулевого дня в операционной системе Cisco IOS XE. Хакеры подселили в эти устройства различных вредоносов.
В число пострадавших устройств вошли корпоративные и промышленные роутеры, точки доступа, беспроводные контроллеры и многое другое.
Злоумышленники воспользовались критической уязвимостью (CVE-2023-20198), которая затрагивает все устройства под управлением Cisco IOS XE при условии, что включён Web UI и режим HTTP/HTTPS-сервера.
Уязвимость позволяет удаленному злоумышленнику, не прошедшему авторизацию, создать учетную запись в уязвимой системе с уровнем привилегий 15. Затем злоумышленник может использовать эту учетную запись для получения контроля над уязвимой системой. Иными словами, любой желающий может воспользоваться этой уязвимостью для получения административных привилегий в системе.
В Cisco рекомендуют администраторам временно - до выпуска патча - деактивировать функцию HTTP/HTTPS-сервера и внимательно отслеживать любые подозрительные события и свежесозданные аккаунты. Они вполне могут быть признаками текущей атаки.
#новость
❤7💯2👍1👾1
🤔 Держите #дайджест утилит сканирования Linux на уязвимости и вредоносы
♻️ chkrootkit — это инструмент для локальной проверки на наличие признаков руткита
♻️ ClamAV — опенсорсный инструмент для обнаружения троянов, вирусов, вредоносных программ и других вредоносных угроз
♻️ REMnux — это инструментарий Linux для реверс-инжиниринга и анализа вредоносного ПО
♻️ YARA — призван помочь исследователям вредоносных программ идентифицировать и классифицировать образцы вредоносных программ
♻️ Rkhunter (Rootkit Hunter) — это инструмент на базе Unix, который сканирует на наличие руткитов, бэкдоров и возможных локальных эксплойтов
♻️ chkrootkit — это инструмент для локальной проверки на наличие признаков руткита
♻️ ClamAV — опенсорсный инструмент для обнаружения троянов, вирусов, вредоносных программ и других вредоносных угроз
♻️ REMnux — это инструментарий Linux для реверс-инжиниринга и анализа вредоносного ПО
♻️ YARA — призван помочь исследователям вредоносных программ идентифицировать и классифицировать образцы вредоносных программ
♻️ Rkhunter (Rootkit Hunter) — это инструмент на базе Unix, который сканирует на наличие руткитов, бэкдоров и возможных локальных эксплойтов
👍8❤1🥰1
#вопросы_с_собеседований
a=5; true | { true && a=10; } чему будет равно a?
Ответ будет 5. Потому что каждая команда конвейера исполняется в отдельной подоболочке
kannabis@fuse:~$ a=5; true | { true && a=10; echo $a; }
10
kannabis@fuse:~$ echo $a
5
a=5; true | { true && a=10; } чему будет равно a?
❤8🥰1
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤9
🔳🔥👆 Kube-Prometheus-Top
Инструмент на Python, который мониторит ноды, поды, контейнеры Kubernetes и ресурсы PVC на терминале с помощью Prometheus metircs.
Показатели ресурсов, предоставляемые API-интерфейсами K8s, очень ограничены по сравнению с тем, что использует Prometheus.
Этот инструмент использует Prometheus в качестве источника данных для метрик, чтобы отображать всю необходимую информацию прямо на терминале.
Установка
Совместимо с Python 3.6+
в PyPi
pip3 install kptop --upgrade
Как использовать, какие переменные и ключи для консоли можно узнать тут
#гайд
Инструмент на Python, который мониторит ноды, поды, контейнеры Kubernetes и ресурсы PVC на терминале с помощью Prometheus metircs.
Показатели ресурсов, предоставляемые API-интерфейсами K8s, очень ограничены по сравнению с тем, что использует Prometheus.
Этот инструмент использует Prometheus в качестве источника данных для метрик, чтобы отображать всю необходимую информацию прямо на терминале.
Установка
Совместимо с Python 3.6+
в PyPi
pip3 install kptop --upgrade
Как использовать, какие переменные и ключи для консоли можно узнать тут
#гайд
❤5👍3🥰1
❓🤷♀️ Чем отличается команда rm от unlink?
Обе эти команды умеют удалять, но в 99% используется именно rm, потому что про unlink вы либо не слышали, либо rm с головой хватает.
Есть ошибочное мнение, что unlink предназначен для удаления лишь ссылок — команда вполне может удалять обычные файлы. А если углубиться, то весь процесс удаления в Linux, это удаление ссылок.
У unlink есть всего лишь два ключа запуска help и version. Очень ограниченный инструмент, но чем инструмент проще, тем проще его синтаксис.
# unlink /tmp/hardlink
# unlink /tmp/file
Софт очень молчаливый — после удаления, он промолчит и ничего не выведет на экран.
Команда unlink использует системную команду unlink, в то время как команда rm использует системный вызов unlinkat. Оба системных вызова практически одинаковы.
Unlink не умеет работать с wildcard и globbing шаблонами. Так же вы не сможете с помощью нее удалить каталог.
Запустим команду и пытаемся насильно удалить файл которого нет в каталоге:
rm -f test.txt
И получаем - НИЧЕГО. То есть rm -f не вернул ошибку, что файл отсутствует. А если сделать так:
unlink test.txt
получим ошибку:
unlink: cannot unlink 'test.txt': No such file or directory
То есть если нужно будет обработать результат выполнения команды rm -f, то будет непонятно, существовал ли вообще файл.
С unlink можно гибче обрабатывать эксепшены в скриптах. А еще при использовании команды unlink отсутствует проверка безопасности. Она удалит файл, защищенный от записи. Хотя современная версия rm теперь тоже так умеет.
Небольшой секрет: если нужно, чтобы файл никто не смог удалить, включая root:
chattr +i test.txt
chattr позволяет устанавливать и отключать атрибуты файлов, на уровне файловой системы не зависимо от стандартных (чтение, запись, выполнение).
Ключ i - сделает файл неизменяемым. Чтобы снять с файла этот аттрибут, в команде которая выше, замените знак «+» на «-».
Подытожим. Для большинства повседневных задач конечно rm мастхев, но если ты пишете софт для каких-то критичных систем, стоит не упускать из виду unlink.
#гайд
Обе эти команды умеют удалять, но в 99% используется именно rm, потому что про unlink вы либо не слышали, либо rm с головой хватает.
Есть ошибочное мнение, что unlink предназначен для удаления лишь ссылок — команда вполне может удалять обычные файлы. А если углубиться, то весь процесс удаления в Linux, это удаление ссылок.
У unlink есть всего лишь два ключа запуска help и version. Очень ограниченный инструмент, но чем инструмент проще, тем проще его синтаксис.
# unlink /tmp/hardlink
# unlink /tmp/file
Софт очень молчаливый — после удаления, он промолчит и ничего не выведет на экран.
Команда unlink использует системную команду unlink, в то время как команда rm использует системный вызов unlinkat. Оба системных вызова практически одинаковы.
Unlink не умеет работать с wildcard и globbing шаблонами. Так же вы не сможете с помощью нее удалить каталог.
Запустим команду и пытаемся насильно удалить файл которого нет в каталоге:
rm -f test.txt
И получаем - НИЧЕГО. То есть rm -f не вернул ошибку, что файл отсутствует. А если сделать так:
unlink test.txt
получим ошибку:
unlink: cannot unlink 'test.txt': No such file or directory
То есть если нужно будет обработать результат выполнения команды rm -f, то будет непонятно, существовал ли вообще файл.
С unlink можно гибче обрабатывать эксепшены в скриптах. А еще при использовании команды unlink отсутствует проверка безопасности. Она удалит файл, защищенный от записи. Хотя современная версия rm теперь тоже так умеет.
Небольшой секрет: если нужно, чтобы файл никто не смог удалить, включая root:
chattr +i test.txt
chattr позволяет устанавливать и отключать атрибуты файлов, на уровне файловой системы не зависимо от стандартных (чтение, запись, выполнение).
Ключ i - сделает файл неизменяемым. Чтобы снять с файла этот аттрибут, в команде которая выше, замените знак «+» на «-».
Подытожим. Для большинства повседневных задач конечно rm мастхев, но если ты пишете софт для каких-то критичных систем, стоит не упускать из виду unlink.
#гайд
👍24❤4👏2
🪛🔧 Отладка сбоя ядра
Отладка ошибки в ядре может оказаться сложной задачей.
Допустим, ошибка кроется в подсистеме управления памятью, в slub allocator-е или page allocator-е.
В зависимости от инструментов отладки эти инструменты могут обращаться к подсистеме, поскольку им самим необходимо выделить память, чтобы показать вам интересующую трассировку и, следовательно, они могут столкнуться с той же самой ошибкой и не создавать никакого вывода вообще.
Приводится пример файла сбоя. В нем не ошибка ядра, а ошибка стороннего модуля ядра, находящегося out-of-tree:
kannabis@fuse:~$ file 202310190528/dump.202310190528
202310190528/dump.202310190528: Flattened kdump compressed dump v6, system Linux, node debian11, release 5.10.0-26-amd64, version #1 SMP Debian 5.10.197-1 (2023-09-29), machine x86_64, domain (none)
Подробный разбор и отладка ждет вас тут
#туториал
Отладка ошибки в ядре может оказаться сложной задачей.
Допустим, ошибка кроется в подсистеме управления памятью, в slub allocator-е или page allocator-е.
В зависимости от инструментов отладки эти инструменты могут обращаться к подсистеме, поскольку им самим необходимо выделить память, чтобы показать вам интересующую трассировку и, следовательно, они могут столкнуться с той же самой ошибкой и не создавать никакого вывода вообще.
Приводится пример файла сбоя. В нем не ошибка ядра, а ошибка стороннего модуля ядра, находящегося out-of-tree:
kannabis@fuse:~$ file 202310190528/dump.202310190528
202310190528/dump.202310190528: Flattened kdump compressed dump v6, system Linux, node debian11, release 5.10.0-26-amd64, version #1 SMP Debian 5.10.197-1 (2023-09-29), machine x86_64, domain (none)
Подробный разбор и отладка ждет вас тут
#туториал
👍3❤1🔥1
#вопросы_с_собеса
Что такое iowait и почему он может появляться?
iowait это показатель, демонстрирующий процентное соотношение времени процессора, которое он потратил на ожидание ввода-вывода.
Высокий показатель может сказать о том, что система ограничена возможностями дисковой памяти. Выполняется много операций ввода-вывода. Это замедляет систему. Конкретно это обычно означает что блочные устройства работают медленно или они переполнены.
Замеряется в количестве потоков, которые ждут работы.
Что такое iowait и почему он может появляться?
🔥13👍2🥰1
🧑🎓😎 Еще одна серия с мероприятия OFFZONE 2023
Здесь собираются безопасники, разработчики, инженеры, исследователи, преподаватели и студенты из десятков стран мира. В центре внимания — только хардкорный технический контент по кибербезопасности.
Современная автоматизация обратной разработки в декомпиляторе HexRays
В своем докладе спикер кратко расскажет про существующие инструменты автоматизации обратной разработки, а также представит новые
Смотреть
#видео
Здесь собираются безопасники, разработчики, инженеры, исследователи, преподаватели и студенты из десятков стран мира. В центре внимания — только хардкорный технический контент по кибербезопасности.
Современная автоматизация обратной разработки в декомпиляторе HexRays
В своем докладе спикер кратко расскажет про существующие инструменты автоматизации обратной разработки, а также представит новые
Смотреть
#видео
👍6❤1