Библиотека девопса | 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
💥💫 Управление секретами в Kubernetes

Занимательный материал по использованию секретов в Kubernetes. Разбираются возможные варианты, достоинства и недостатки передачи информации приложению – через file или через env.

Автор рассматривает Secrets Source of Truth при миграции между кластерами с использованием Mozilla SOPS и Bitnami Sealed Secrets.

Есть такая штука, как Secret Management и для нее описываются способы «доставки» этих секретов приложению:

👉 API или SDK
👉 Secret Agent / Sidecar Injection
👉 Secrets Operator
👉 Secrets Store CSI

Для каждого приводятся сильные и слабые стороны, а также их особенности. Ну и как же без их автообновления.

Читать статью

#туториал
28🔥16🥰12👍8👏8
Набор видосов по базовым знаниям Linux админа.

Всего их 9, по таким темам:

1 часть: Установка Linux Ubuntu Server 20.04
2 часть: базовые навыки
3 часть: пользователи и права доступа
4 часть: bash скрипты, автоматизация задач
5 часть: регулярные выражения
6 часть: git
7 часть: nginx
8 часть: docker
9 часть: Основы понимания iptables

#обучение
❤‍🔥13👍32👏1
🔥🕑 10 признаков того, что пора увольняться

«Быть или не быть?», «Уйти или остаться?»: делаем вдох-выдох и принимаем важное решение.

Читать статью
9👍1👏1
Есть скрипт с бесконечным циклом, который выполняет какие-то действия.

Задача: нужно чтобы скрипт отработал 3 минуты и завершился (стопать руками не вариант).

Можно использовать утилиту timeout. Это утилита командной строки, которая запускает указанную команду и завершает ее, если она все еще выполняется через определенный промежуток времени. Команда является частью пакета основных утилит GNU.

timeout 3s ping proglib.io

Команда ping отработает 3 секунды и завершится.

Синтаксис:

timeout DURATION COMMAND

DURATION = Длительность. Это число с плавающей запятой и с необязательным суффиксом:

s = секунды
m = минуты
h = часы
d = дни

COMMAND = сама команда или скрипт, которому нужно ограничить работу по времени.

Следующий пример: нужно запустить какое-то приложение (например top) на удалённом сервере и через 3 минуты остановить.

timeout 3m ssh user@proglib.io -- /usr/bin/top

Прошло 3 минуты, приложение стопается, ssh сессия завершается.

Можно сделать на чистом bash:

ping proglib.io & read -t 3 || kill $!

Символ «$!». Эта конструкция содержит в себе идентификатор процесса (PID) последнего выполненного фонового конвейера. В примере выше последним выполненным заданием был ping. PID явно указывать не нужно, чтобы kill корректно отработал.
👍173👏2
Grafana Loki: оптимизация производительности с Recording Rules, кэширования и параллельных запросов

Loki работает на кластере сервисов AWS Elastic Kubernetes, установленном с помощью Loki Helm chart, AWS S3 используется в качестве долговременного хранилища, а BoltDB Shipper используется для работы с индексами Loki.

В Loki 2.8 для индексов появился механизм TSDB, который, вероятно, скоро заменит BoltDB Shipper.

И в целом все работает, и вроде бы все нормально, но при получении данных за неделю или месяц в Grafana, очень часто появляется ошибка 502/504 или «too many outstanding requests».

Хотите подробнее рассмотреть, как можно оптимизировать Loki для повышения производительности — вот, пожалуйста

#туториал
🔥62👍2
🏃🏃 Как ворваться в DevOps

Зачем нужен DevOps

🧑‍🎓 Всё, что ни делается, — делается либо ради бизнеса, либо ради людей, либо ради того и другого. При этом есть вещи, которые не приносят ценности никому:

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

Инструменты и реализация DevOps-практик

🧑‍🏫 Хороший инженер должен понимать, что бизнесу важен time-to-market, эксплуатации важно уметь поддерживать этот инструмент, а безопасникам — чтобы безопасность была безопасной. Для этого нужно ходить по конференциям, посматривать на такие отчеты, как State of DevOps, Technology Radar.

Как ворваться в DevOps

Как правило, в DevOps приходят либо с разработки, либо с эксплуатации, хотя бывает и с инфобеза — в DevOps идут с какими-то базовыми знаниями.
Если вам нравится докапываться до сути вещей, нравятся инженерные задачи, а в детстве вы разбирали куклу барби, то вы на верном пути😂 Истинный инженер всегда пытается разобраться во всём и всё улучшить. Разумеется, всё знать нельзя, и какое-то знание может быть основным, а какие-то — смежными (T-shape-инженер — как раз про это).

Подробнее

#гайд
👍162👏1
😎 Очередной #дайджест полезных статей по DevOps:

🔹 История создания и обзор программы для простого построения DevOps отчётов — построение таблицы отчётов в едином HTML‑файле для удобства пересылки по почте

🔹 Kubernetes gateway API v0.8.0: поддержка Service Mesh — выпуск посвящен подготовке Gateway API к предстоящему выпуску версии 1.0, в котором HttpRoute, Gateway и GatewayClass будут переведены в GA

🔹 Автоматизация инфраструктуры Azure для High Availability Web Hosting на Ansible — преимущества автоматизации и настройки инфраструктуры на примере создания платформы, которую можно настроить в соответствии со своими потребностями

🔹 Keycloak. Админский фактор и запрет аутентификации — два кейса по работе с правами доступа на веб-ресурс с дополнительным фактором аутентификации и аутентификации определенной группы пользователей

🔹 Сервис Amazon для Apache Flink, переименованный из Amazon Kinesis Data Analytics — про улучшения в настройке и интеграции data sources или destinations с минимум кода
🔥42👍2
Частенько приходится помогать кому-то или самому что-то в табличке накидать, и в упор не помнишь какой-то ерунды. Пожалуйте, шпаргалку подвезли😂😉

В ролике автор разберет 10 самых частых проблем, о которых стоит знать, как начинающему, так и продвинутому пользователю Excel.

Содержание:

00:41 Как посчитать в Excel
02:54 Операции с датами и числами
04:38 Объединенные ячейки
05:59 Удаление структуры
09:33 Анализ больших таблиц
12:05 Смешанные данные
13:17 Удаление дубликатов
15:11 Ограничение по вводу
17:53 Защита данных
20:16 Работа с цветом

#гайд
🥰2419👏13👍8🔥8
🤔🤔 Что за двойное тире?

ssh root@proglib.io --

Двойное тире означает «флаги командной строки». Оно указывает ssh или другой команде не пытаться анализировать то, что следует после параметров. Двойное тире обрабатывается не оболочками bash/zsh/csh/sh/fish и т.п., а средствами самих программ, но НЕ всех.

Есть такая команда:

ssh
root@proglib.io -- command1 --arg1 --arg2

Приведенный выше синтаксис указывает ssh не пытаться анализировать параметры arg1 и arg2 после символа «--». Это гарантирует, что команда command1 примет arg1 и arg2 в качестве аргументов командной строки и выполнится на удаленном сервере.

Рассмотрим другие примеры. Например, не получится просмотреть файл с именем --file или -f используя команду cat:

cat --file
cat -f

Ошибка! cat: unrecognized option --file/f.
Передадим двойное тире:

cat -- --file
cat -- -f

А так все хорошо.

Повторим:

rm --file
— получим ошибку
rm -- '--file' — а вот это сработает

Ну а чтобы передать параметры в rm, делаем так:

rm -v -i -- '--file'
rm -f -v -i -- '-f'

Но, не все команды умеют работать с двойным тире. Например, команда echo, на все попытки подружить её с двойным тире, просто-напросто провалятся:

/usr/bin/echo -- -n
echo -- --test

выведется это:

-- -n
-- --test

#туториал
👍15🔥31
🐳🐳🚟 Улучшаем модульность Docker Compose с помощью include

Предлагаем рассмотреть функцию, доступную в Compose версии 2.20.0 и в версии Docker Desktop 4.22, а именно атрибут include, который делает файлы Compose модульными и пригодными для повторного использования.

Расширение файла Compose

Docker Compose позволяет повторно использовать существующий файл Compose, используя механизм extends. Этот атрибут позволяет обратиться к другому файлу Compose и выбрать службу, которую необходимо использовать в приложении, с возможностью переопределения атрибутов.

services:
database:
extends:
file: ../commons/compose.yaml
service: db

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

Проблема merge Compose файлов

Еще одна опция — смержить набор Compose-файлов . Docker Compose принимает набор файлов, мержит и перезаписывает определение службы, чтобы создать модель приложения.
Для примера, от лица одной команды, определим файл Compose для сервиса. Создадим образ из Dockerfile и установим среду в env-файл:

services:
database:
builld: .
env-file:
- ./db.env

Теперь от лица другой команды создадим веб-приложение, для которого требуется доступ к базе данных:

services:
webapp:
depends_on:
- database

Все хорошо, пока не попытаться смержить:
docker compose -f compose.yaml -f ../database/compose.yaml.

Относительные пути, заданные вторым файлом Compose, будут разрешены не так, как было задумано, а из локального рабочего каталога, и приложение не будет работать должным образом.

Повторное использование

Флаг include был введен именно для этой цели. Он позволит включить весь файл Compose в модель приложения, точно так же, как вы бы выполнили copy/paste. Единственное отличие — он будет управлять ссылками на относительные пути, и файл Compose будет проанализирован так, как ожидается, запускаясь из исходного местоположения. Эта возможность значительно упрощает повторное использование кода другой команды без необходимости знать точные детали.

include:
../database/compose.yaml

services:
webapp:
depends_on:
- database

Здесь команда разработчиков инфраструктуры подготовила файл Compose для управления БД, возможно, включающий некоторые реплики, веб UI для проверки данных, тома для сохранения данных и прочее.

#гайд
👍26👏32
На просторах наткнулись, на что-то, типа дорожной карты дебаггинга в Kubernetes. Она подходит не для любой задачи, которая может возникнуть, и не получится ее применять во всех кейсах, но почерпнуть полезности из разных веток можно 100%.

Вот версия карты в хорошем качестве.

#туториал
🔥6👍31
🔥А потом у них сетевой кабель не подключен и петель полный офис... 😂😂😂
👍19😁3🔥2👏1
😎 Очередной #дайджест полезных статей по DevOps:

🔹 Manjaro GNOME — история о переход с Windows на Linux

🔹 Как стать DevOps-ом в 2023 — дорожная карта от опытного админа

🔹 Автоматическое масштабирование Kubernetes: Как использовать автомасштабировщик Kubernetes — рассматриваются такие методы: горизонтальный модуль автоматического масштабирования, вертикальный модуль автоматического масштабирования и кластерный автоскалер

🔹 Cloud-hypervisor — это опенсорсный Virtual Machine Monitor (VMM), работающий поверх KVM и Microsoft MSHV.

🔹 Пирамида отказоустойчивости системы — принципы устойчивого проектирования для создания систем, которые могут лучше противостоять нагрузкам и сбоям
🔥3323👍10🤩10👏9
Запуск и настройка своего собственного Linux сервера

Если вы занимаетесь тестированием, программированием или администрированием, у вас точно возникнет ситуация, когда вы сможете ограничиться запуском кода только у себя на ПК. А еще, существуют всякие инструменты, с которыми хочется поиграться, которые невозможно установить на локальном компе или нужен именно сервер.

Для облегчения вашей участи, мы нашли вам видос, который поможет понять, как это делается и повторить в любой вариации; что нужно учитывать и прочее.

Содержание:

05:34 Выбираем облачную платформу
08:36 Создание сервера
30:52 Настройка SSH
35:45 Подключение к серверу
43:41 Две базовые Linux команды

#туториал
👍7🥰21
LINUX_Полное_руководство_по_работе_и_администрированию_compresse.pdf
22.4 MB
📖 Linux. Полное руководство по работе и администрированию.

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

В первой части книги разговор будет об установке системы, рассмотрите вход и завершение работы, произведете настройку системы и изучите командную строку.

Во второй части будет происходить настройка интернета, установка ПО и обзор популярных программ для Linux и их установку. Третья часть будет посвящена локальному администрированию, а четвертая — Linux серверу, его установке и настройке.
Книга полезна будет для специалиста любого уровня.

#книги
🔥10👍51🥰1🥱1