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

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

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
👮‍♂️👮‍♂️ 3 октября пройдет вебинар DevSecOps: организация безопасной разработки на уровне процессов. Начало в 11:00.

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

Темы дискуссии:

👉 Что сегодня вкладывается в понятие DevSecOps
👉 Автоматизация тестирования безопасности на каждом этапе процесса разработки
👉 Автоматизация реакции на инциденты, стабилизация процесса функционирования приложения
👉 Governance и Compliance: как построить безопасный процесс разработки и соответствовать требованиям
👉 Облачные инструменты организации безопасной разработки на уровне процессов

Мероприятие будет полезно разработчикам и тимлидам команд разработки, DevOps и DevSecOps, руководителям и специалистам по информационной безопасности, техническим и ИТ-директорам.

Регистрация тут
5👍3
GoReplay — это опенсорсный инструмент мониторинга сети, который может записывать ваш трафик в реальном времени и использовать его для отслеживания, нагрузочного тестирования, мониторинга и детального анализа.

Установка

Загрузите последнюю версию бинарника и соберите

Как оно работает

Самый простейший вариант: sudo ./gor --input-raw :8000 --output-stdout который действует как tcpdump. Если у вас уже есть тестовая среда, вы можете сделать так: sudo ./gor --input-raw :8000 --output-http http://staging.env

Дополнительная информация: FAQ, Troubleshooting, Issues

#гайд
👍63
#вопросыссобеседования

Чему будет равно a?
a=5; true | { true && a=10; }

Ответ: а = 5. Потому что каждая команда конвейера исполняется в отдельном SubShell

efusion@cannabis:~$ a=5; true | { true && a=10; echo $a; }
10
efusion@cannabis:~$ echo $a
5
10🌚7
This media is not supported in your browser
VIEW IN TELEGRAM
Когда вас ДДОСят — вот самый правильный вариант решения проблемы 💪💪
👍123😁3
#дайджест бесплатных сертификационных курсов

🔵 Основы программирования для Linux. Курс нацелен на изучение основ программирования в операционной сиcтеме Linux. Он затрагивает базовый инструментарий и все основные компоненты: управление процессами, межпроцессные взаимодействия, сетевые возможности.

🔵 GIT. Программа поможет разобраться в трехэтапном рабочем процессе в GIT (системе контроля версий, или VCS) и настроить GIT в своей системе. Также научитесь создавать ветки и отслеживать файлы, а также создавать репозиторий в GIT, GitHub.

🔵 Основы Docker. В этом курсе вы начнете с основ: создания и запуска ваших первых контейнеров Docker. К концу курса получите краткое представление о запуске контейнеров в рабочей среде и о том, как решать проблемы расширенной оркестровки, такие как высокая доступность, обнаружение служб и согласование.

🔵 Microsoft Azure Essentials. Этот онлайн-курс расскажет о различных моделях доставки и ролях Azure. Вы узнаете о различных доступных службах Azure и тщательно изучите компоненты Azure. Кроме того, вы также получите информацию о службах Azure в различных регионах и получите подробную информацию о регионах Azure и менеджере ресурсов.

🔵 Специализация Python Scripting for DevOps. Научитесь разрабатывать и развертывать программное обеспечение с использованием Python. Эта специализация даст вам основы программирования, включая знания и навыки, необходимые для карьеры в области разработки программного обеспечения, информационных технологий и науки о данных.

🔵 Introduction to Cloud. Вы также узнаете о различных моделях облачных сервисов (IaaS, PaaS, SaaS) и моделях развертывания (публичное облако, частное облако, гибридное облако), ключевых компонентах облачной архитектуры (виртуализация, виртуальные машины, хранилища, сети, контейнеры) и новых облачных тенденциях (гибридное мультиоблачное, бессерверное, микросервисы, Cloud Native, модернизация приложений).
🥰47👍36🔥24👏23🤩22
🔥😎🤯 Развертывание non-deployable сервисов на ArgoCD и Kustomize, управляя пограничными состояниями

Условие примера, приведенного автором, требовало, чтобы была сохранена структура каталогов для сотен репозиториев при переходе от kubectl к подходу ArgoCD.

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

Ничего нового — в Spring Boot есть встроенный механизм, который склеивает все конфигурационные файлы вместе, но в Python, Javascript и других ЯП все не так просто. Такая функция поддерживается в Helm — можно объединить несколько файлов, которые объединятся и будут переданы вместе в шаблоны.

Проблема

ArgoCD не позволяет синхронизировать ресурсы с одинаковым именем — нет способа выбрать, какой ресурс имеет более высокий приоритет.

Что же делать?

Kustomize можно настроить с помощью плагинов-генераторов — это скрипты или бинарники, запускаемые в контексте каталога, и в результате возвращают ресурсы Kubernetes в формате YAML.

Далее автор объединит пользовательскую логику в приложение Go, импортирует необходимые библиотеки, скомпилирует ее и выпустит в artifactory, например Nexus или JFrog.

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

#туториал
4🔥4
✍️ Библиотека программиста» находится в поиске переводчика и автора оригинальных статей

Тематика
● DevOps

Объем
● от 7 до 15 тыс. знаков без учета кода.
● 3-4 статьи в месяц.

Оплата
● 4к руб. за статью.
● перевод — 250 руб. за 1000 символов без учета кода.
● работаем с самозанятыми, ИП.

Статья публикуется на сайте proglib.io, в группе ВК (425к подписчиков), на канале «Библиотека программиста» (77к подписчиков) и в «Библиотеке devops’а» (6к подписчиков).

➡️ Заполнить анкету ⬅️
5👍3
🧑‍🏫🧑‍🏫🧑‍🏫 Что такое NOC-команда, и какие 5 KPI на нее вешать для улучшения аптайма вашей платформы

Network Operations Center — это команда, которая занимается 24/7 мониторингом системы и алертинга, и их первой линией поддержки. Команда понимает как делать базовый дебаг алертов и варнингов. Команда отвечает за полный цикл инцидент-менеджмента: то есть оркестрацию процесса фикса этого инцидента, и артефактами после того как все случилось.

Как обычно с любым процессом, всплывают роли, артефакты и события.

Роли:

🔹 NOC-команда, которая мониторит;
🔹 Incident Commander — это Engineering Manager, который ответственен за валидацию дебага и исправлением инцидента;
🔹 Incident Team — дежурящие инженеры.

Артефакты:

🔹 Root Cause Analysis (RCA) — пост-мортем (ниже будет);
🔹 Runbook — источник знаний по каждой метрике и алерту, как они могут влиять на пользователей и систему, а также как их дебажить и эскалировать.

События:

🔹 Post-Mortem — в котором вы анализируете и пишете Root Cause Analysis документ;
🔹 Incident — когда все горит и очень опасно.

К примеру, у вас есть у вас дашборд с критическими системными метриками SaaS-платформы в Grafana и команда мониторит этот дашборд. На каждый чарт в этом дашборде есть некие показатели и паттерны поведения, которые команда отслеживает. Все эти правила лежат в Runbook (справочнике). Если что-то упало — нужно смотреть что это значит, и определять можно ли это NOC-команде подебажить (вдруг ночью упала пиковая нагрузка), пофиксить (рестарт сервера), или эскалировать саппорту или инженерам.

Подробнее здесь

#обучалка
9👍4
Находитесь в поиске нормальной вакансии?
Вы уже подумали за вас и у нас есть канал вам в помощь.
Сохраняйте, чтобы не потерять
4🔥2
#туториал

Нужно найти какой-то файл?
Нет, не find!

🔎 Утилита locate используется для поиска файлов, расположенных на машине пользователя или на сервере, опираясь на собственную БД.

Обновление БД происходит автоматически, +- раз в сутки или командой updatedb.

locate txt

Ищем все файлы, имена которых содержат «txt». Опа, меньше чем за секунду команда нашла все подходящие файлы, а find потратил бы гораздо больше времени.

locate '*txt' Ищем файлы, которые оканчиваются на «txt»

Посчитаем общее количество файлов, которые нашлись: locate -ic '*txt'

(-i — не смотрим на регистр, -с — вывести общее количество найденных файлов)

Углубимся немного и заюзаем strace.

В папке tmp создадим пустой файл: > hello.txt

locate *txt

Ничего не вывел 🤔

Мы вызываем внешнюю команду locate, которую вызывает интерпретатор. И тут всплывает подстановка имен файлов, то есть Globbing.

🧑‍🎓 После того, как интерпретатор обнаружил символ «*», интерпретатор попытался сделать подстановку Globbing. При вызове команды locate она получила в качестве аргументов, результат этих подстановок. Запускаем:

strace -e execve locate *txt

Получаем:

execve("/usr/bin/locate", ["locate", "hello.txt"], 0x7ffe242252d8 /* 27 vars */) = 0

Опция e и аргумент execve сообщают strace, что отслеживаются только системные вызовы execve.

execve() выполняет программу, заданную параметром filename

Возвращаемся к выводу от strace и видим, что locate получила в качестве аргумента hello.txt

И теперь locate будет искать файлы именно по этому шаблону, а не по тому, что мы ожидали, когда писали *txt. Поэтому ничего не вывелось, когда запустили locate *txt

Чтобы этого не происходило ⚠️ всегда используйте кавычки для ожидаемого результата.

locate '*txt'
👍114
🧑‍🎓😎 Еще одна серия с мероприятия OFFZONE 2023.
Здесь собираются безопасники, разработчики, инженеры, исследователи, преподаватели и студенты из десятков стран мира. В центре внимания — только хардкорный технический контент по кибербезопасности.

Деобфускация и анализ клиентского JavaScript‑кода для обнаружения DOM‑based XSS

Основная цель доклада — описание нового, разработанного докладчиком, автоматизированного метода анализа JavaScript‑кода, использующего статический и динамический анализ, а также сравнение результатов его работы с существующими автоматизированными сканерами веб‑уязвимостей

Смотреть
👍54
HyperDX — помогает инженерам быстрее понять, почему прерывается продакшн, с помощью централизованных журналов, метрик, трассировок и исключений в одном месте. Крутая опенсорсная альтернатива Datadog и New Relic, удобная для разработчиков.

Что включено

🕵️ End to end корреляция от сеанса браузера к журналам и трассировкам всего за несколько кликов
🔥 Высокая производительность благодаря Clickhouse
🔍 Интуитивно понятный полнотекстовый поиск и синтаксис поиска свойств
🤖 Автоматическая кластеризация шаблонов событий
📈 Панель мониторинга событий без сложного языка запросов
🔔 Настройка оповещений
🔭 Нативная Open Telemetry

Вы можете начать с развертывания полного стека с помощью Docker Compose:

docker compose up -d

После этого можно перейти на http://localhost:8080 чтобы получить доступ к UI HyperDX.
10
🤔 Очередной #дайджест по DevOps

➡️ Kube FM — подкаст про Kubernetes, новейшие инструменты и тенденции

➡️ Вы платите слишком много — сокращение затрат на ведение журнала Cloudwatch на 80% благодаря Firehose, S3 и Athena

➡️ Как быстрее выполнять запросы Loki metric с более точными результатами — делаем пользователей Grafana счастливее с помощью повышения производительности

➡️ Мониторинг AWS Lambda — полное руководство по Serverless подходу

➡️ Terraform Evolution — как мы безопасно отделили дюжину сервисов от монолита
23🔥18🥰13👏11👍8
Вопрос по Linux
#вопросы_с_собеседований

Что такое системные вызовы? Зачем они нужны и как они работают? Какие системные вызовы знаешь?
...............................................................................................................
Системный вызов — это то, посредством чего код приложения, выполняющегося в пользовательском режиме, запрашивает службу, предоставляемую кодом, который выполняется в режиме ядра.

read - чтение из файлового дескриптора.
open - открывающий и по возможности создающий файл или устройство
close - закрыть файловый дескриптор
access - проверка пользовательских привилегий для этого файла
mmap - служит для отображения предварительно открытого файла (например, с помощью системного вызова open()) в адресное пространство вычислительной системы
👍13🔥4
25 сентября прошла масштабная конференция Yandex Scale. В программе предполагалось 30+ докладов на 6 тем/направлений:

Infra + K8s
Serverless
Digital Workplace
ML
Data Platform
Security

Здесь мы рассмотрим полное выступление из ветки Infra + K8s (остальные не забудем, ожидайте😊😇)

#мероприятие
5🔥3
😎🥷 Разбираемся с Microcks Docker Extension

Microcks — это облачный опенсорсный Kubernetes-инструмент для макетирования и тестирования API.

🔹 Симуляция API или микросервиса на основе набора описательных ресурсов (спецификаций или контрактов)
🔹 Валидация соответствия приложения и API путем проведения контрактного тестирования

Уникальность Microcks — он предлагает единый и согласованный подход для всех видов запросов/ответов к API (REST, GraphQL, gRPC, SOAP) и API и event-driven API.

Зачем запускать Microcks в качестве Desktop-расширения для Docker?

Благодаря бесшовной интеграции возможностей контейнеризации Docker разработчикам больше не нужно ориентироваться в сложных настройках или бороться с проблемами совместимости. Разработчики могут без особых усилий настраивать и развертывать Microcks в существующей среде Docker, без необходимости править большие конфиги.

Подробнее читаем тут

#обучалка
🔥223
👷‍♂️🏗️ Контейнеризованная платформа автоматизации Ansible

Эта штука может устанавливать и запускать контейнеризованные авто-контроллеры, Ansible automation hub и Event-Driven службы Ansible на одном или нескольких базовых узлах RHEL с архитектурой x86_64 и ARM64. Для этого не требуется Kubernetes, поскольку она использует собственный RHEL podman поверх RHEL-хоста.

Преимущества

🔹 упрощенный процесс установки
🔹 многоуровневый подход к установке
🔹 контейнеризированный подход к сервисам
🔹 защита «из коробки» с использованием rootless Podman контейнеров
🔹 стартовая площадка для улучшенных функций в будущем
🔹 согласование подхода к поддерживаемым платформам развертывания и опциям

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

#гайд
🤩27🔥61👍1
🧑‍🎓😎 Еще одна серия с мероприятия OFFZONE 2023

Здесь собираются безопасники, разработчики, инженеры, исследователи, преподаватели и студенты из десятков стран мира. В центре внимания — только хардкорный технический контент по кибербезопасности.

Эксплуатация уязвимостей HTTP Request Splitting

В своем докладе Сергей расскажет об уязвимостях HTTP Request Splitting / CRLF Injection в проксировании HTTP‑запросов пользователя между веб‑серверами. Будут освещены методы обнаружения подобных уязвимостей при автоматическом сканировании и варианты их эксплуатации на примере популярных багбаунти-программ

Смотреть

#видео
3👍3🔥2