Очередной #дайджест инструментов и материалов по DevOps
🔹 Terraform-docs — полное руководство по документации Terraform с помощью terraform-docs
🔹 Б значит не Безумие, а Безопасность — автор делится реальным опытом и рассказывает про работу над проектом с кибербезопасностью, безопасностью инфраструктуры и DevSecOps
🔹 Kubernetes Global Balancer — решение для балансировки нагрузки на сервисы, ориентированное на использование облачных технологий и работу с Kubernetes
🔹 Как использовать Serverless для решения ваших задач — как развернуть бота в Telegram для отправки сообщений? Как записать данные в YDB или автоматизировать работу с Object Storage — обо всем в видосах
🔹 New Azure DevOps scopes — новиночка для приложений Microsoft Identity OAuth с делегированным потоком
🔹 Terraform-docs — полное руководство по документации Terraform с помощью terraform-docs
🔹 Б значит не Безумие, а Безопасность — автор делится реальным опытом и рассказывает про работу над проектом с кибербезопасностью, безопасностью инфраструктуры и DevSecOps
🔹 Kubernetes Global Balancer — решение для балансировки нагрузки на сервисы, ориентированное на использование облачных технологий и работу с Kubernetes
🔹 Как использовать Serverless для решения ваших задач — как развернуть бота в Telegram для отправки сообщений? Как записать данные в YDB или автоматизировать работу с Object Storage — обо всем в видосах
🔹 New Azure DevOps scopes — новиночка для приложений Microsoft Identity OAuth с делегированным потоком
👍8👏5🥰3🎉3🤩3
#вопросы_с_собеседования
df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная ситуация?
Когда файл удален т. к. файловый дескриптор «держит» его.
Ищем файл через:
lsof -a +L1 | grep var | grep httpd
При удалении файла, который в этот момент был «занят» процессом — его имя удаляется, но inode — остаётся в файловой системе до тех пор, пока не завершится процесс, который «держит» этот файл.
Соответственно, что бы «освободить» уже удалённые файлы — необходимо перезапустить процесс, который этот файл держит.
df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная ситуация?
❤22👍8🥰1
🧠Чему вы бы хотели научиться?
Расскажите нам о ваших пожеланиях: какие навыки вы хотели бы прокачать в ближайшее время или какую профессию хотели бы приобрести?
За прохождение опроса вы получите промокод на скидку 15% на все наши курсы до конца 2024 года.
👉Опрос по ссылке👈
Расскажите нам о ваших пожеланиях: какие навыки вы хотели бы прокачать в ближайшее время или какую профессию хотели бы приобрести?
За прохождение опроса вы получите промокод на скидку 15% на все наши курсы до конца 2024 года.
👉Опрос по ссылке👈
❤6
Чем отличаются файлы .bashrc .bash_profile .profile и т.п.
Основное различие этих конфигурационных файлов заключается в том, что некоторые из них читаются только оболочками входа (login). Например, при входе в систему с другого хоста или при входе в текстовую консоль локальной unix-машины. Используются файлы .login .profile .zlogin. Зависит от того какая у вас оболочка.
Далее идут конфигурационные файлы, которые читаются «интерактивными» оболочками. То есть подключенными к терминалу или псевдотерминалу. Это файлы с именами .bashrc, .tcshrc, .zshrc и т.д.
Файл .bashrc читается только интерактивной и non-login оболочкой, поэтому большинство людей в конечном итоге инклудят в файле .bash_profile чтение файла .bashrc, например:
А файл .profile, это просто сценарий входа в систему. И изначально использовался в /bin/sh. Оболочка Bash, будучи обратно совместимым с sh, будет читать .profile, если он конечно же существует.
Пример файла .profile
В дистрибутивах семейства Debian сначала выполняется .profile, а потом уже .bash_profile. А вот в дистрибах производных от RHEL, сначала выполняется .bash_profile, а уже потом .profile. Ну вот прям каша!
В документации bash хорошо объясняется, при каких обстоятельствах читается каждый файл. И поведение на разных машинах в целом одинаково.
Выжимка из man bash:
Основное различие этих конфигурационных файлов заключается в том, что некоторые из них читаются только оболочками входа (login). Например, при входе в систему с другого хоста или при входе в текстовую консоль локальной unix-машины. Используются файлы .login .profile .zlogin. Зависит от того какая у вас оболочка.
Далее идут конфигурационные файлы, которые читаются «интерактивными» оболочками. То есть подключенными к терминалу или псевдотерминалу. Это файлы с именами .bashrc, .tcshrc, .zshrc и т.д.
Файл .bashrc читается только интерактивной и non-login оболочкой, поэтому большинство людей в конечном итоге инклудят в файле .bash_profile чтение файла .bashrc, например:
[[ -r ~/.bashrc ]] && . ~/.bashrcДругие оболочки ведут себя по-другому. Например, в zsh, файл .zshrc всегда читается для интерактивной оболочки, независимо от того, является ли она login или нет.
А файл .profile, это просто сценарий входа в систему. И изначально использовался в /bin/sh. Оболочка Bash, будучи обратно совместимым с sh, будет читать .profile, если он конечно же существует.
Пример файла .profile
if [ "$BASH" ]; thenКак видим, при login’е заинклудится файл .bashrc.
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
В дистрибутивах семейства Debian сначала выполняется .profile, а потом уже .bash_profile. А вот в дистрибах производных от RHEL, сначала выполняется .bash_profile, а уже потом .profile. Ну вот прям каша!
В документации bash хорошо объясняется, при каких обстоятельствах читается каждый файл. И поведение на разных машинах в целом одинаково.
Выжимка из man bash:
/bin/bash - The bash executable
/etc/profile - The systemwide initialization file, executed for login shells
/etc/bash.bashrc - The systemwide per-interactive-shell startup file
/etc/bash.bash.logout - The systemwide login shell cleanup file, executed when a login shell exits
~/.bash_profile - The personal initialization file, executed for login shells
~/.bashrc - The individual per-interactive-shell startup file
~/.bash_logout - The individual login shell cleanup file, executed when a login shell exits
~/.inputrc - Individual readline initialization file
👍14🔥7❤5🥰5👏5
Подборка лучших статей «Библиотеки программиста» за ноябрь: сохраняй в заметки, чтобы прочесть позже #самыйсок
∞ Дорожная карта DevOps-инженера в 2023 году
⚖️ 25 курсов, книг и подкастов для развития критического мышления
👀 6 способов привлечь внимание работодателя
🤖📜 Искусственный интеллект: краткая история
📰❌ 10 признаков фейковой вакансии
🔤 Азбука SQL в примерах. Часть 1. Создаем базу данных и первую таблицу
🔤 Азбука SQL в примерах. Часть 2. Ограничения, которые упрощают жизнь
∞ Дорожная карта DevOps-инженера в 2023 году
⚖️ 25 курсов, книг и подкастов для развития критического мышления
👀 6 способов привлечь внимание работодателя
🤖📜 Искусственный интеллект: краткая история
📰❌ 10 признаков фейковой вакансии
🔤 Азбука SQL в примерах. Часть 1. Создаем базу данных и первую таблицу
🔤 Азбука SQL в примерах. Часть 2. Ограничения, которые упрощают жизнь
❤3👍1🥰1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in the widget
VIEW IN TELEGRAM
😍4
#вопрос_с_собеседования
Программа сообщает о том, что не может найти свой конфиг. Каким образом можно узнать, где она пытается его найти?
line-buffered опция которая выведет результат как только найдет
strace -f — отслеживание дочерних процессов
strace -f l ftp sitename | & grep --line-buffered open | grep /home/user
Либо в самой программе, если удастся найти параметры
/usr/sbin/mysqld --verbose --help | grep -A 1 «Default options»
Программа сообщает о том, что не может найти свой конфиг. Каким образом можно узнать, где она пытается его найти?
❤36👍5🔥1
📈 Обзор рынка труда в ИТ: III квартал 2023 года
В этой статье обсудим зарплату программистов в III квартале 2023 года, динамику вакансий, тенденции рынка труда в ИТ и многое другое. Присоединяйтесь!
Читать статью
В этой статье обсудим зарплату программистов в III квартале 2023 года, динамику вакансий, тенденции рынка труда в ИТ и многое другое. Присоединяйтесь!
Читать статью
❤5🔥2🥰1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in the widget
VIEW IN TELEGRAM
👍3
Очередной #дайджест инструментов и материалов по DevOps
🔅 Менеджер логических томов (LVM) в CentOS Stream 9 — конфигурирование томов на боевой виртуалке с подробными объяснениями
🔅 Kubernetes и Kernel Panics — как Netflix’s Container Platform соединяет Linux Kernel Panics с модулями Kubernetes
🔅 Port Knocking в Mikrotik Firewall Filter — что это и как настроить на tcp портах, какие нюансы есть при использовании icmp протокола и чем может помочь данная настройка в работе сетевого инженера
🔅 Простой и удобный шаблон для bash-скриптов выполняемых по расписанию — шаблон скрипта-обёртки на bash для запуска заданий по cron и systemd timers
🔅 Резервное копирование данных — использование cp и rsync в Linux для задач резервного сохранения и восстановления данных
🔅 Менеджер логических томов (LVM) в CentOS Stream 9 — конфигурирование томов на боевой виртуалке с подробными объяснениями
🔅 Kubernetes и Kernel Panics — как Netflix’s Container Platform соединяет Linux Kernel Panics с модулями Kubernetes
🔅 Port Knocking в Mikrotik Firewall Filter — что это и как настроить на tcp портах, какие нюансы есть при использовании icmp протокола и чем может помочь данная настройка в работе сетевого инженера
🔅 Простой и удобный шаблон для bash-скриптов выполняемых по расписанию — шаблон скрипта-обёртки на bash для запуска заданий по cron и systemd timers
🔅 Резервное копирование данных — использование cp и rsync в Linux для задач резервного сохранения и восстановления данных
👍10🥰6🎉6😁4🔥3
🌎 ТОП-10: рейтинг лучших зарубежных работодателей в IT
При составлении рейтинга учитывали различные факторы из открытых данных портала Glassdoor, включая отзывы сотрудников, уровень лояльности действующих и бывших сотрудников, зарплата, льготы, бонусы и прочие бенефиты.
1️⃣ Red Hat
2️⃣ Gainsight
3️⃣ Box
4️⃣ MathWorks
5️⃣ ServiceNow
6️⃣ Marvell Technology
7️⃣ CrowdStrike
8️⃣ Fortinet
9️⃣ NetApp
🔟 Genentech
👉 Читать статью
При составлении рейтинга учитывали различные факторы из открытых данных портала Glassdoor, включая отзывы сотрудников, уровень лояльности действующих и бывших сотрудников, зарплата, льготы, бонусы и прочие бенефиты.
1️⃣ Red Hat
2️⃣ Gainsight
3️⃣ Box
4️⃣ MathWorks
5️⃣ ServiceNow
6️⃣ Marvell Technology
7️⃣ CrowdStrike
8️⃣ Fortinet
9️⃣ NetApp
🔟 Genentech
👉 Читать статью
🔥4👍3🤩1
🏘️ 🌰 Это база: нюансы работы с Redis
Redis — это база данных, которая размещается в памяти и хорошо подходит для следующих целей:
♦️ Кэширование данных: этот сценарий подходит когда есть ключ, по которому вы можете прочитать или записать кэш. Частый случай: использование Redis как кэша перед другой базой-крепышом, вроде MySQL.
♦️ Хранение сессий: этот сценарий подходит при росте проекта, когда мы получаем несколько инстансов приложения на разных машинах за балансировщиком и возникает потребность в хранении пользовательских сессий в хранилище, которое доступно для каждого сервера приложения.
♦️ Pub/Sub: помимо хранилища данных Redis можно использовать как брокер сообщений. В этом случае издатель может опубликовать сообщения в именованном канале для любого числа подписчиков. Когда клиент публикует сообщение в канале, Redis доставляет это сообщение всем клиентам, подписанным на этот канал, что обеспечивает обмен информацией между отдельными компонентами приложения в реальном времени.
Остальная занимательная часть вот тут
#туториал
Redis — это база данных, которая размещается в памяти и хорошо подходит для следующих целей:
♦️ Кэширование данных: этот сценарий подходит когда есть ключ, по которому вы можете прочитать или записать кэш. Частый случай: использование Redis как кэша перед другой базой-крепышом, вроде MySQL.
♦️ Хранение сессий: этот сценарий подходит при росте проекта, когда мы получаем несколько инстансов приложения на разных машинах за балансировщиком и возникает потребность в хранении пользовательских сессий в хранилище, которое доступно для каждого сервера приложения.
♦️ Pub/Sub: помимо хранилища данных Redis можно использовать как брокер сообщений. В этом случае издатель может опубликовать сообщения в именованном канале для любого числа подписчиков. Когда клиент публикует сообщение в канале, Redis доставляет это сообщение всем клиентам, подписанным на этот канал, что обеспечивает обмен информацией между отдельными компонентами приложения в реальном времени.
Остальная занимательная часть вот тут
#туториал
👍26🔥3
🐶🐕 KubePug
👉 Загружает сгенерированный файл data.json, содержащий информацию об устаревании API Kubernetes
👉 Проверяет текущий кластер Kubernetes или входные файлы, проверяя, существуют ли объекты в этих устаревших версиях API, позволяя пользователю проверить перед переносом
Особенности
🔹 Может запускаться в кластере Kubernetes, используя kubeconfig или текущий кластер
🔹 Может выполняться с другим набором манифестов/файлов
🔹 Позволяет указать целевую версию Kubernetes, подлежащую проверке
🔹 Предоставляет заменяющий API, который следует использовать
🔹 Сообщает версии, что API устарел или удален, в зависимости от версии целевого кластера
Как использовать
Запустите
Как использовать с Helm
Если хотите проверить сгенерированные манифесты с помощью Helm, можно запустить так:
Измените аргументы в kubepug (и шаблоне Helm) по своему желанию
👉 Загружает сгенерированный файл data.json, содержащий информацию об устаревании API Kubernetes
👉 Проверяет текущий кластер Kubernetes или входные файлы, проверяя, существуют ли объекты в этих устаревших версиях API, позволяя пользователю проверить перед переносом
Особенности
🔹 Может запускаться в кластере Kubernetes, используя kubeconfig или текущий кластер
🔹 Может выполняться с другим набором манифестов/файлов
🔹 Позволяет указать целевую версию Kubernetes, подлежащую проверке
🔹 Предоставляет заменяющий API, который следует использовать
🔹 Сообщает версии, что API устарел или удален, в зависимости от версии целевого кластера
Как использовать
Запустите
kubectl krew install deprecations
Как использовать с Helm
Если хотите проверить сгенерированные манифесты с помощью Helm, можно запустить так:
helm template -f values.yaml .0 | kubepug --k8s-version v1.22.0 --input-file=-
Измените аргументы в kubepug (и шаблоне Helm) по своему желанию
❤30👍5🔥1👏1
🔥🔥 Фаервол веб-приложений для Nginx
Брандмауэр веб-приложений (WAF) — это приложение, которое отслеживает сетевой трафик на прикладном уровне.
OSI (Open Systems Interconnection) — одна из наиболее часто упоминаемых структур сетевого трафика. Когда пакет пересекает уровень 6 (представление) и перемещается на уровень 7 (прикладной), он подвергается операциям расшифровки/декодирования декодирования.
Каждая из этих операций может быть подвержена ошибочному декодированию и интерпретации, которые могут быть использованы для выхода из стандартного контекста приложения. Инъекции — это всего лишь один тип таких уязвимостей, и долгое время они были причиной беспокойства номер один, особенно потому, что традиционные устройства IDS/IPS не могут справиться с этими угрозами.
Продолжение здесь
Брандмауэр веб-приложений (WAF) — это приложение, которое отслеживает сетевой трафик на прикладном уровне.
OSI (Open Systems Interconnection) — одна из наиболее часто упоминаемых структур сетевого трафика. Когда пакет пересекает уровень 6 (представление) и перемещается на уровень 7 (прикладной), он подвергается операциям расшифровки/декодирования декодирования.
Каждая из этих операций может быть подвержена ошибочному декодированию и интерпретации, которые могут быть использованы для выхода из стандартного контекста приложения. Инъекции — это всего лишь один тип таких уязвимостей, и долгое время они были причиной беспокойства номер один, особенно потому, что традиционные устройства IDS/IPS не могут справиться с этими угрозами.
Продолжение здесь
❤2👍2
Очередной #дайджест инструментов для проверки безопасности образов Docker
🔰 Clair — предназначен для интеграции с системами оркестровки контейнеров, такими как Kubernetes.
🔰 Trivy — поддерживает сканирование изображений на наличие уязвимостей в пакетах ОС и зависимостях приложений.
🔰 Anchore — может быть интегрирован в конвейеры CI/CD для обеспечения соблюдения политик безопасности на ранних этапах процесса разработки.
🔰 Dagda — предоставляет как интерфейс командной строки, так и REST API для интеграции в конвейеры CI/CD.
🔰 Snyk — его можно использовать для поиска уязвимостей в образах Docker и отслеживания их на предмет новых проблем.
🔰 Docker Bench Security — сам по себе это не сканер уязвимостей, но он помогает обеспечить безопасную настройку сред Docker.
🔰 Clair — предназначен для интеграции с системами оркестровки контейнеров, такими как Kubernetes.
🔰 Trivy — поддерживает сканирование изображений на наличие уязвимостей в пакетах ОС и зависимостях приложений.
🔰 Anchore — может быть интегрирован в конвейеры CI/CD для обеспечения соблюдения политик безопасности на ранних этапах процесса разработки.
🔰 Dagda — предоставляет как интерфейс командной строки, так и REST API для интеграции в конвейеры CI/CD.
🔰 Snyk — его можно использовать для поиска уязвимостей в образах Docker и отслеживания их на предмет новых проблем.
🔰 Docker Bench Security — сам по себе это не сканер уязвимостей, но он помогает обеспечить безопасную настройку сред Docker.
❤4🔥1🥰1👏1