Библиотека девопса | DevOps, SRE, Sysadmin
10.3K subscribers
1.38K photos
71 videos
4 files
2.59K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
🤔 Как использовать OpenPubkey для SSH без SSH-ключей

Что, если бы вы могли подключаться по SSH, не беспокоясь об SSH-ключах? Без необходимости думать о том, что SSH-ключи могут быть потеряны, украдены, переданы другим пользователям, заменены или забыты? В этой статье повествуется, как подключиться по SSH к удаленному Docker-у, используя только почтовую учетку или единый вход (SSO).

Продолжение тут

#туториал
👍11🔥111
#вопросы_с_собеседования

Для решения каких задач применяется docker-compose?

Docker Compose — это инструментальное средство, входящее в состав Docker. Оно предназначено для решения задач, связанных с развёртыванием проектов. Вы передаёте файл с инструкциями для docker-compose, настроечными файлами, и докер на месте собирает из этого нужную вам комбинацию контейнеров, подтягивает образы нужных версий, пробрасывает в них волюмы с данными, поднимает между ними локальные сети и настраивает порты обмена.
👍91
GQL

GQL — это язык запросов с синтаксисом, очень похожим на SQL, с крошечным движком для выполнения запросов к файлам .git вместо файлов базы данных. Движок выполняет запрос «на лету» без необходимости создавать файлы базы данных или конвертировать файлы .git в любой другой формат.

Установка из менеджеров пакетов

Cargo.io
cargo install gitql

Widget в Windows
winget install gitql

Scoop в Windows
scoop install git ql

Полная документация здесь
❤‍🔥18👍31🥰1😁1
🤔 Очередной #дайджест для DevOps-ов

🔹 Автоматические бэкапы БД PostgreSQL по расписанию — скрипт для создания бэкапов БД PostgreSQL за определенный период, как запустить с помощью расписания crontab и настроить синхронизацию папки с бэкапами с облаком Yandex Disk

🔹 Трассировка OpenTelemetry с помощью tracepusher — гайд по открытому стандарту, который позволяет вести журналы, метрики и распределенные трассировки

🔹 Инструкция: как поднять GitLab CI/CD на GoLang-проекте — подробный и понятный туториал с использованием докера и кучи конфигов

🔹 Руководство по построению стандартного CI Pipeline с помощью Jenkins — использование HTTP-сервера на Python с удаленным репозиторием, конвейером Jenkins и тестированием на SonarQube

🔹 Пять инструментов для вашего кластера K8s — рассмотрение таких тулз, как Prometheus, Cyclops, Keda, Karpenter и Velero
👍5🎉54🥰4👏4
#memes

Главное работает 😁
😁26👍4🔥2
Вебинар по Tarantool «Строим кэши и витрины данных»

Когда: 8 февраля, 16:00 МСК онлайн

Узнаете, как быстро и удобно разрабатывать кэши и витрины данных на основе коробочной СУБД для ускорения ИТ-систем.

Рассматриваемые вопросы:

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

Также будет рассмотрен опыт крупных банков и телекома в создании хранилищ сессий, витрин для платежных данных, валютных операций и т. д.

Спикеры:

🔹 Руслан Галиев, менеджер продукта Tarantool DB
🔹 Артем Дубинин, старший программист Tarantool
🔹 Евгений Афанасьев, архитектор Tarantool

Вебинар будет полезен архитекторам, инженерам DevOps и разработчикам высоконагруженных систем.

Регистрация тут

#мероприятие
❤‍🔥152👏2
😈 Даркнет: как устроен теневой рынок труда

Рассказываем, как устроен теневой рынок даркнета, каких ИТ-специалистов там ищут и какую зарплату предлагают.

🔗 Читать статью
🔗 Зеркало
😁4👍21
Если сложить все эти числа, то получится обычное число 42. Число и число…

echo $((7 + 14 + 21))


Со времен появления проекта GNU (GNU's Not Unix) это число имело для них какой-то потаённый смысл.

К примеру, если в редакторе vi/vim ввести:

:help 42

Увидим нечто странное:

Вelection, the selection will be used unmodified. When there is a selection
but you click outside of it, the selection is removed.

There is a separate popup menu for each mode. Thus there are never grey
items like in the normal menus.

What is the meaning of life, the universe and everything? 42
Douglas Adams, the only person who knew what this question really was about is
now dead, unfortunately. So now you might wonder what the meaning of death
is...

Next chapter: usr_43.txt Using filetypes
Copyright: see manual-copyright vim:tw=78:ts=8:noet:ft=help:norl:


Но это всего лишь цитата из книги английского писателя Дугласа Адамса «Автостопом по галактике». Где супер компьютер Deep Thought дал ответ на главный вопрос жизни, вселенной и всего остального. И этот ответ был 42.


Все логично, число 42 стало символом для сообщества фанатов научной фантастики и часто упоминается в шутках и широко используется в поп-культуре.

Существует теория заговора, называемая «42-ой теорией заговора», которая исходит из идеи, что число 42 имеет глубокий смысл или тайное значение, скрытое правительствами или другими могущественными организациями.

Хотя такие теории заговора могут быть увлекательными, важно отметить, что число 42 не обладает никаким таинственным или сверхъестественным значением в реальном мире. Оно просто является элементом фольклора, шуток и культурных отсылок, и не имеет каких-либо серьезных конспирологических подоплек.

А вы читали/смотрели «Автостопом по галактике»?
👍238🤩4👏3😁3
📺 FOSDEM — бесплатное мероприятие для разработчиков ПО, где они могут встретиться, поделиться идеями и сотрудничать. Каждый год тысячи разработчиков свободного ПО со всего мира собираются на мероприятии в Брюсселе. Регистрация не нужна 👍

👉 Некоторые записи первого дня доступны по тут (выбираем трек, затем тему в нём)
👉 Трансляция доступна по ссылке

#видео
👍31🔥1
Jib

Jib создает оптимизированные образы Docker и OCI для ваших приложений Java без Docker и лишних хлопот. Он доступен в виде плагинов для Maven и Gradle, а также в виде библиотеки Java.

Цели

👉 Jib разделяет приложение на несколько слоев, отделяя зависимости от классов. Не нужно ждать, пока Docker перестроит все Java-приложение — просто разверните измененные слои.

👉 При перестройке образа контейнера с тем же содержимым всегда создается один и тот же образ.

👉 Создайте образ Docker из Maven или Gradle и переносите. Больше не нужно создавать Dockerfiles и вызывать docker build/push.
👏21🔥1
#дайджест репозиториев для DevOps-а

Dive — инструмент для изучения образов Docker, помогающий анализировать содержимое образов для их дальнейшей оптимизации

Kubernetes The Hard Way — пошаговое руководство по настройке кластеров Kubernetes с нуля, позволяющее получить глубокое представление о внутреннем устройстве Kubernetes

GoReleaser — проект позволяет легко и быстро создавать deb пакеты

awesome-prometheus — список ресурсов, инструментов и интеграций с Prometheus

Molecule — фреймворк для тестирования кода инфраструктуры с помощью Ansible, помогающий в разработке и проверке ролей и плейбуков
👍3🔥1
Приведите основные типы DNS записей и расскажите, для чего они используются.

A — запись соответствия с IPv4 адресом;
AAAA — запись соответствия с IPv6 адресом;
CNAME — запись соответствия другому доменному имени;
MX — адресная запись, указывающая на почтовый сервер домена;
NS — адресная запись указывающая на DNS-резолверы, отвечающие за данный домен;
TXT — произвольная текстовая запись в домене, часто используется для верификации принадлежности домена.
👍162🔥2
Ситуация: есть большой проект на php, в нем миллион файлов и папок. Есть некий файл с какой-то выгрузкой, который генерится по крону и куда-то складывается.

Знаем точно, что он складывается как раз в тот большой проект с миллионом файлов. Но не знаем как называется сам файл и где конкретно он сохраняется.

Задача: найти местоположение файла с выгрузкой, узнать как называется этот файл и убедиться что файл вообще пытается создаться после запуска крона. Нет документации, нет контактов с разработчиками, нет НИЧЕГО у кого можно что-то узнать.

Лазить по каждой папке — это долго, find — не продуктивно, в данном случае. Ставим пакет inotify-tools и создаем скрипт.

inotifywait -r -m -e create /var/www/project | while read line; do
echo "Created: $line"
done

inotify-tools - это набор утилит командной строки для мониторинга файловой системы в реальном времени на основе inotify, механизма ядра Linux, который позволяет приложениям реагировать на изменения файлов, каталогов или метаданных в файловой системе.


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

Запускаем скрипт. В соседней вкладке запускаем команду, которая генерит файл с выгрузкой и ждем. Получаем такую запись:

Created: /var/www/project/core/modx/var/tmp CREATE 1C_b2b_prices.csv

inotify-tools очень крутая штука и может мониторить не только создание файлов, но и кучу еще всего. При должном подходе, можно свой собственный мониторинг собрать, выгружать в prometheus и в grafana рисовать.

А еще есть клевая вещь — incrond, с помощью неё можно запустить какую-нибудь утилиту, если в каком-то каталоге появился новый файл или произойдет другое событие.

Например, можно дернуть обработчик этого файла, сделать резервную копию, или тегнуть в телеграм. Вариантов масса.

incrond (inotify cron daemon) — это демон для Linux, который обеспечивает возможность запуска задач (команд или скриптов) в ответ на события файловой системы, используя механизм inotify. Он подобен стандартному демону cron, но вместо использования времени он реагирует на изменения файлов и каталогов.
5👍3🤔1
🤔🤔 Квоты в Kubernetes: очевидные, менее очевидные и совсем не очевидные

Разберетесь, как работают квоты в Kubernetes. Там есть немало граблей. Чем квоты хороши, что у них под капотом, в каких задачах используются и почему нужны даже в среде single-tenant

Читаем тут

#почитать
👍4
💪💪 Bash Scripting on Linux

Крутой и обширный курс по Bash Scripting научит вас всему, что вам нужно знать для написания эффективных сценариев bash в Linux. Все начинается с некоторых вводных концепций, каждый видос основывается на предыдущем. К концу курса вы сможете писать свои собственные сценарии для bash. Подойдет для начинающих линуксоводов.

#видео
👍10
Напишите политику для AWS S3 бакета, которая разрешает доступ только с определенных IP адресов.

{
"Id": "AllowFromSourceIP",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SourceIP",
"Action": "s3:*",
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::demo-bucket",
"arn:aws:s3:::demo-bucket/*"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"11.11.11.11/32",
"22.22.22.22/32"
]
}
},
"Principal": "*"
}
]
}
👏41
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏔 Эпикфейл: карьера катится к чертям

🤦‍♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.

📝 Поделитесь своей историей карьерного провала в нашем новом опросе и расскажите, к чему он привел в итоге. Быть может, эта ошибка позволила вам пересмотреть свой путь и выбрать более подходящую профессию? А может, вы сделали правильные выводы и сейчас добились успеха?

👉 Поделиться историей
4
🧑‍🎓✍️ Открытый практикум DevOps by Rebrain: Ментальная модель Kafka

Время проведения:

15 Февраля (Четверг) в 19:00 по МСК

Программа:

🔹Теория поможет составить ментальную модель Kafka
🔹Практика — попробовать инструмент в действии и получить набор готовых конфигураций для применения их в своих лабораторных и тестовых средах на работе

Кто ведёт?

Глеб Гончаров — Юнит-лид в СберМаркете

Регистрация тут

#мероприятие
2🔥2👏2