Библиотека девопса | 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
⚙️ Сравнение двух подходов тестирования контейнеров. Docker-in-Docker и Testcontainers Cloud

🐳 Docker-in-Docker (DinD): DinD позволяет запускать Docker внутри контейнера Docker. Это часто применяется для изоляции тестовых сред. Однако DinD имеет ряд недостатков:

Преимущества:
Полный доступ к Docker API внутри контейнера.
Можно создавать и управлять контейнерами без установки Docker на хосте.

Недостатки:

Возможны проблемы с производительностью, так как контейнеры запускаются внутри контейнера (nested containers).
Потенциальные риски безопасности из-за необходимости предоставления привилегированного доступа (--privileged).
Управление состоянием хранилища (volumes) становится сложным.

☁️ Testcontainers Cloud: Testcontainers Cloud — это облачное решение, интегрированное с фреймворком Testcontainers, предназначенное для упрощения и оптимизации процесса интеграционного тестирования. Основные преимущества:

Преимущества:
Не требуется локальная установка Docker или других инструментов.
Устраняет проблемы производительности, так как контейнеры запускаются в облаке.
Хорошо интегрируется с существующими CI/CD пайплайнами.
Предоставляет изоляцию окружений для команд, упрощая тестирование.

Недостатки:
Требуется интернет-соединение.
Зависимость от стороннего сервиса (Testcontainers Cloud).
Возможны дополнительные затраты на использование облачной инфраструктуры.

Когда какой подход использовать?
Docker-in-Docker: Если вам нужен полный контроль над окружением или вы работаете в изолированной сети, где облачные сервисы недоступны.
Testcontainers Cloud: Если вы хотите упростить тестирование и интеграцию, избегая сложной настройки локального окружения или проблем с производительностью.
👍31
💾🌐 6 главных технологий для хранения данных в браузере

Хранение данных в браузере — это не просто про кеширование страниц или сохранение паролей. Современные технологии позволяют делать больше: сохранять настройки, работать с большими объемами информации и даже обеспечивать офлайн-доступ к веб-приложениям. Но как выбрать подходящий инструмент, чтобы данные обрабатывались быстро, безопасно и с учетом специфики вашего проекта?

От привычных cookies до мощного IndexedDB, от простого LocalStorage до новаторского Origin Private File System — каждый метод хранения имеет свои особенности и сценарии использования. В этой статье вы найдете подробное сравнение шести ключевых технологий хранения данных: от их особенностей и сценариев использования до ограничений.

📎 Читать статью
👏3👍2
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
☁️☁️ Почему облако идеально для CI/CD?

Масштабируемость
Облачные платформы предоставляют ресурсы по запросу, позволяя обрабатывать высокие нагрузки в моменты пиковой активности (например, при запуске массового тестирования).
Услуги, такие как AWS Elastic Compute Cloud (EC2) или Google Cloud Run, автоматически подстраиваются под нужды вашего конвейера.

Готовая инфраструктура.
В облаке не нужно настраивать физические сервера или управлять сложной инфраструктурой. Это упрощает развёртывание CI/CD систем и снижает затраты на их обслуживание.
Используйте преднастроенные инструменты, например Azure Pipelines или AWS CodeBuild, которые уже интегрированы с популярными платформами разработки.

Гибкость развёртывания
Облако поддерживает множество моделей развёртывания:
⚙️ Public Cloud: Удобно для тестирования и небольших проектов.
⚙️ Private Cloud: Идеально для обеспечения безопасности корпоративных данных.
⚙️ Hybrid Cloud: Подходит для проектов с частично локальной инфраструктурой.

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

⚙️☁️ Советы для успешного CI/CD в облаке

Используйте облачные API:
Интеграция с API облачных провайдеров ускоряет автоматизацию задач.
Пример: Сборка Docker-образов и их публикация в облачном репозитории.

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

Автоматическое тестирование безопасности:
Интегрируйте сканеры безопасности в конвейер CI/CD (например, Snyk, Checkmarx).

Мониторинг и логирование:
Включите такие инструменты, как AWS CloudWatch, Azure Monitor, Google Operations Suite, для анализа производительности CI/CD конвейеров.
👍9
☁️☁️Инструменты CI/CD в облаке

☁️ AWS (Amazon Web Services):
CodePipeline: Организует автоматизированные конвейеры.
CodeBuild: Выполняет сборку и тестирование кода.
CodeDeploy: Развёртывает приложения на Amazon EC2, Fargate или Lambda.
CloudFormation: Автоматизирует инфраструктуру как код (IaC).

☁️ Google Cloud Platform (GCP):
Cloud Build: Поддерживает сборку, тестирование и развертывание контейнеров.
Kubernetes Engine: Автоматизирует управление контейнерами.
Artifact Registry: Хранение артефактов (докер-образов, библиотек).

☁️ Microsoft Azure:
Azure Pipelines: Полнофункциональный CI/CD конвейер для облачных и локальных сред.
Azure DevTest Labs: Создание тестовых окружений за считанные минуты.

☁️ GitHub Actions:
Интеграция с облачными хранилищами и развертывание в AWS, Azure или GCP.
Легко масштабируется благодаря облачной инфраструктуре.
👍2
Слышали ли вы такое выражение — «Unix-подобные системы»? Это целое семейство операционных систем, которые имеют общие корни, но различаются философией, подходом к разработке и применением. Давайте разберёмся в их особенностях.
👍6🤔2
💾⚙️ CI/CD в базах данных: Как ускорить разработку и улучшить жизнь разработчиков

В статье «Improving the Developer Experience by Deploying CI/CD in Databases» обсуждается как внедрение практик CI/CD (непрерывной интеграции и доставки) в процессы работы с базами данных улучшает опыт разработчиков, ускоряет разработку и делает управление данными более эффективным.

Основные темы статьи:

Ускорение разработки: Автоматизация процессов интеграции и развёртывания позволяет быстрее вносить изменения в базы данных, избегая длительных простоев.

Снижение рисков ошибок: Использование CI/CD помогает уменьшить количество ошибок при изменении схемы баз данных и миграции данных благодаря тщательному тестированию.

Управление изменениями схемы: CI/CD упрощает внесение изменений в структуру баз данных, гарантируя их совместимость с кодом приложений.

Обеспечение стабильности: Автоматизация тестов и управление версиями предотвращают неожиданные сбои в работе приложения при обновлениях базы данных.

Лучшее взаимодействие между командами: CI/CD улучшает связь между разработчиками приложений и администраторами баз данных, устраняя узкие места в процессах.

Статья подчёркивает, что CI/CD в базах данных — это не просто техническое решение, а способ упростить работу разработчиков, повысить качество продукта и сократить время выхода обновлений на рынок.

📎 Читать статью
👍2
🔥⚙️ Что выбрать для мониторинга локальной инфраструктуры: Zabbix или Prometheus + Grafana + Alertmanager?
Пользователь Reddit стоит перед выбором между двумя популярными системами мониторинга для локальной инфраструктуры: Zabbix и связкой Prometheus + Grafana + Alertmanager.

В обсуждении каждый делится своим мнением, а мы бы хотели узнать сталкивались ли вы с этими инструментами или у вас свой набор для мониторинга? Пишите в комментарии! 👇👇

#интерактив
📜 ТОП-15 международных IT-сертификаций, которые увеличат твой доход в 2025 году

Хочешь знать, какие «корочки» реально поднимут твою зарплату? Исследование Skillsoft раскрыло ТОП-15 самых денежных IT-сертификаций. Спойлер: облака и безопасность рулят.

👉 Читать статью
🎯 Новая платформа для специалистов по платформенной инженерии

PlatformEngineering — это новый ресурс, созданный для платформенных инженеров, DevOps-специалистов, архитекторов облачных решений и технических лидеров, которые занимаются разработкой, внедрением и оптимизацией внутренних платформ.

📚 Вот подборка статей, которые стоит прочитать:

«Survey Surfaces Higher Platform Engineering Success Rates»
Исследование, показывающее, как внедрение платформенной инженерии повышает эффективность команд.

«Pulumi Extends Ability to Manage Kubernetes Infrastructure»
О новых возможностях Pulumi для управления Kubernetes.

«Metrics that Matter: Enhancing Efficiency of Platform Engineering»
Какие метрики важны для улучшения работы внутренней платформы?

«From Automation to Ecosystems: Five Key Steps on the Road to Platform Engineering»
Пять ключевых шагов для успешного перехода к платформенной инженерии.

#дайджест
🎯 PerfectScale: Оптимизация Kubernetes на новом уровне

Управление Kubernetes-кластерами может быть сложным, но PerfectScale предлагает инструменты, которые делают процесс проще и эффективнее.

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

⚙️ InfraFit — рекомендации по оптимальной конфигурации узлов и ресурсов. Это позволяет выявить «пустые» мощности и сэкономить на инфраструктуре.

📈 Интеграция с ClusterAutoscaler и Karpenter делает масштабирование более умным, а поддержка GPU помогает приложениям с интенсивными вычислениями работать быстрее.

В совокупности, PerfectScale становится незаменимым помощником для DevOps-команд, стремящихся сделать свои Kubernetes-кластеры более эффективными, стабильными и экономичными.

🌐 Подробнее в оригинале
👍3
🌐 Как спроектировать масштабируемую и безопасную облачную архитектуру?

Современные приложения требуют гибкости, надёжности и безопасности. Облачно-ориентированная архитектура решает эти задачи с помощью микросервисов, контейнеризации (например, Docker) и оркестрации (Kubernetes).

🔑 Основные принципы:
- Масштабируемость: Автоскейлинг, разделение нагрузки.
- Надёжность: Репликация данных, автоматическое восстановление.
- Безопасность: Zero Trust, шифрование данных.
- Производительность: Кэширование , оптимизация запросов, мониторинг.
- Используйте различные инструменты для CI/CD, автоматизации, мониторинга и управления.

Подробнее о подходах и инструментах: статья. 💡
👍1
🚫🤖 Защита сайта от индексации через HAProxy и Kubernetes

Если вы хотите защитить свой сайт от индексации поисковыми системами, HAProxy Ingress Controller в Kubernetes предоставляет простой и эффективный способ это сделать.

🔧 Как это работает?
С помощью аннотаций в Ingress-ресурсе Kubernetes можно настроить файл robots.txt, который блокирует доступ к вашему сайту для поисковых ботов.

📋 Ключевые шаги:
- Добавьте аннотации в ваш Ingress-ресурс для указания пути к файлу robots.txt.
- Настройте файл так, чтобы он включал директивы Disallow для всех поисковых ботов.
- Перезапустите Ingress Controller, чтобы изменения вступили в силу.

💡 Кому это полезно?
Этот подход идеально подходит для защиты тестовых или внутренних сред, предотвращая утечку данных и нежелательную индексацию.

🌐 Узнайте больше о настройке: читайте статью
👍5🤔1
Хочешь проверить себя и узнать, насколько ты прокачан в разработке? Тест для айтишников, чтобы проверить знания. Отличный способ отвлечься и сравнить результаты с друзьями!

👉 Пройти
🤖🤖 Как работает OOM Killer в Linux и как его настроить

OOM (Out-Of-Memory) в Linux возникает, когда система исчерпывает память (RAM и swap). Для предотвращения зависания ядро запускает OOM Killer, который завершает процессы, освобождая ресурсы.

Как выбирается жертва?
OOM Killer оценивает процессы по «весу» (OOM Score). Это значение зависит от:
🎯 Объема памяти: больше памяти — выше риск.
🎯 Приоритета (OOM Adjust Score): значение от -1000 (процесс защищен) до +1000 (максимальный риск).
🎯 Системной важности: критические процессы (например, демоны) убиваются реже

Настройка OOM Killer
Для настройки используйте /proc/[PID]/oom_score_adj. Например:
echo -1000 > /proc/1234/oom_score_adj


Как избежать OOM?
Мониторинг памяти: используйте htop, free.
Swap: проверьте, что он настроен (swapon -s).
🛠️ Настройка ядра: параметр vm.overcommit_memory:
- 0 (по умолчанию) — баланс между памятью и swap.
- 2 — запрещает выделение памяти без ресурсов.
echo 2 > /proc/sys/vm/overcommit_memory

🛠️ cgroups: ограничьте память для групп процессов:
echo 1G > /sys/fs/cgroup/memory/limit_in_bytes

🛠️ ulimit: задайте ограничения:
ulimit -m [лимит в KB]


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

#гайд
👍9