DevOps
22.8K subscribers
891 photos
93 videos
15 files
823 links
По всем вопросам- @workakkk

@itchannels_telegram - 🔥полезные ит-каналы

https://t.me/Golang_google - Golang программирование

@golangl - golang chat

@GolangJobsit - golang channel jobs

@golang_jobsgo - go chat jobs

РКН: clck.ru/3FmvZA
Download Telegram
Forwarded from Linux Academy
🔥 Лучшие бесплатные ресурсы для изучения этичного хакинга и кибербезопасности

🔗 Смотреть

Linux Academy
👍81🔥1
💻 Wasm vs Docker containers vs Kubernetes vs serverless: битва за первенство

Держите годную статью
О чём она:
WebAssembly (Wasm) — новая технология, которая может заменить контейнеры в некоторых сценариях использования.

Wasm имеет преимущества в размере, скорости, безопасности и переносимости.

Контейнеры имеют экосистему, такую как Kubernetes, которая предоставляет множество инструментов и сервисов.

• Wasm может стать жизнеспособной альтернативой контейнерам, если создаст свою экосистему или станет частью экосистемы Docker и Kubernetes.

Wasm может быть использован в serverless-сервисах и на edge-устройствах, где существуют проблемы с размером, скоростью, безопасностью и экосистемой.

Выбор использования Wasm зависит от конкретных потребностей и сценариев использования.

📎 А вот сама статья

@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🌚2🔥1
📌CI/CD pipeline с помощью Jenkins

Отличное видео, в нём говорится про:

Создание образа Docker и отправка его в Docker Hub

Развертывание образа Docker в кластере Kubernetes

Создание проекта и настройка Jenkins

Сборка и развертывание в Kubernetes

Тестирование приложения

📎 Кликабельный план ролика
📎 Видео

@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2🤔1
🖥 Как устроены конвейеры CI/CD 💻

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

1️⃣Утилита podman с помощью Libpod API обращается к библиотеке libpod, которая вызывает низкоуровневый container runtime (по умолчанию утилиту runc)
containers/podman
Podman Commands

2️⃣Утилита docker с помощью Docker API вызывает сервис dockerd
docker/cli
Docker CLI reference
Docker architecture
Docker API

3️⃣Сервис dockerd вызывает сервис containerd
Dockerd reference

4️⃣Сервис containerd вызывает низкоуровневый container runtime (по умолчанию утилиту runc)
containerd/containerd
Containerd Scope and principles

5️⃣Сервис kubelet с помощью протокола CRI вызывает сервис container runtime (например, containerd или crio)
Container Runtime Interface
Container Runtimes
CRI: the Container Runtime Interface

6️⃣Сервис containerd вызывает низкоуровневый container runtime (по умолчанию runc)
Containerd CRI

7️⃣Сервис cri-o вызывает низкоуровневый container runtime (по умолчанию runc)
cri-o/cri-o

8️⃣Утилита OCI container runtime (по умолчанию runc):

🔘runc с помощью библиотеки libcontainer создает контейнер по runtime-spec, взаимодействуя с подсистемами ядра Linux – пространствами имен (namespaces) и контрольными группами (cgroups)
opencontainers/runc
runc man
opencontainers/runc/libcontainer

🔘crun создает контейнер по runtime-spec, взаимодействуя с подсистемами ядра Linux – пространствами имен (namespaces) и контрольными группами (cgroups)
containers/crun

@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥2
🖥 Уязвимость в runc, позволяющая выбраться из контейнеров Docker и Kubernetes

В инструментарии для запуска изолированных контейнеров runc, применяемом в Docker и Kubernetes, найдена уязвимость CVE-2024-21626, позволяющая получить доступ к файловой системе хост-окружения из изолированного контейнера. В ходе атаки злоумышленник может перезаписать некоторые исполняемые файлы в хост-окружения и таким образом добиться выполнения своего кода вне контейнера.

Уязвимость устранена в выпуске runc 1.1.12. В runtime LXC, crun и youki, альтернативных runc, проблема не проявляется.

В случае использования инструментариев Docker или Kubernetes атака может быть совершена через подготовку специально оформленного образа контейнера, после установки и запуска которого из контейнера можно обратиться к внешней ФС. При использовании Docker имеется возможность эксплуатации через специально оформленный Dockerfile. Уязвимость также может быть эксплуатирована в случае запуска в контейнере процессов командой runc exec через привязку рабочего каталога к пространству имён хостового окружения

Уязвимость вызвана утечкой внутренних файловых дескрипторов. Перед запуском кода внутри контейнера в runc выполняется закрытие файловых дескрипторов при помощи флага O_CLOEXEC. Однако, после последующего выполнения функции setcwd() остаётся открытым файловый дескриптор, указывающий на рабочий каталог и продолжающий оставаться доступным после запуска контейнера. Предложено несколько базовых сценария атаки на хост-окружение, используя оставшийся файловый дескриптор

Например, атакующий может указать в образе контейнера параметр process.cwd, указывающий на "/proc/self/fd/7/", что приведёт к привязке к процессу pid1 в контейнере рабочего каталога, находящегося в пространстве монтирования хост-окружения. Таким образом, в образе контейнера можно настроить запуск "/proc/self/fd/7/../../../bin/bash" и через выполнение shell-скрипта перезаписать содержимое "/proc/self/exe", которое ссылается на хостовую копию /bin/bash.

📎 Читать подробнее

@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥32
💻Мультирегиональная репликация Apache Kafka: кластерные топологии

Неплохая статья о том, какую топологию может иметь кластер Apache Kafka при межрегиональной репликации по нескольким ЦОД и как это реализовать.
Плюс описывается, чем брокеры-наблюдатели отличаются от подписчиков в Confluent Server и при чем здесь конфигурация подтверждений acks в приложении-продюсере.

Для репликации в нескольких регионах кластер Kafka может иметь следующую топологию:

растянутые кластеры (stretched clusters), когда один кластер Kafka устанавливается в нескольких ЦОД. При этом используется протокол синхронной репликации Kafka.

связанные кластеры (connected clusters) с асинхронной репликацией в нескольких регионах. В этом случае может использоваться внешняя система для копирования данных из одного или нескольких кластеров в другой.

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

📎 Статья

@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥2
🖥 Как работает сеть в контейнерах: Docker Bridge с нуля

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

Также неплохо бы разобраться с работой сети в контейнерах. Для этого в статье освещаются такие вопросы:

Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?

Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?

Как выйти во внешний мир (например, в Интернет) изнутри контейнера?

Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?

Как реализовать публикацию портов, подобную Docker?

Параллельно в статье строится контейнерная сеть с одним хостом с нуля при помощи стандартных инструментов Linux.
В общем, отличная статья, рекомендую)

📎 Статья

@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥2🥰1
⚡️ ИИ-самоучитель Learn Anything - новый идеальный инструмент для освоения любых навыков.

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

Github

@DevOPSitsec
👍92🔥1😁1
🖥 5 советов, как ускорить сборку образа Docker

Совет 1. Можно ли избежать создания образов?

Использование Docker не обязательно должно быть принципом «все или ничего». Вы можете использовать Docker для развертывания и создания образов для продакшн, но вам не обязательно использовать его в разработке.


Совет 2. Структурируйте инструкции Dockerfile как перевернутую пирамиду.

Каждая инструкция в вашем Dockerfile приводит к созданию слоя изображения. Docker использует слои для повторного использования работы. Слои кэшируются и их не нужно пересобирать, если:
— Все предыдущие слои не изменяются.
— В случае инструкции COPY: файлы/папки не изменяются.
— В случае всех остальных инструкций: текст команды не изменяется.


Совет 3. Копируйте только те файлы, которые необходимы для следующего шага.

Представьте, что у нас есть следующий фрагмент Dockerfile:
RUN mkdir /code
COPY code code/
RUN pip install code/requirements.txt

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

Вот как мы могли бы избежать повторного запуска этапа установки при каждом изменении кода:
RUN mkdir /code
COPY code/requirements.txt code/
RUN pip install code/requirements.txt
COPY code /code



Совет 4. Скачивайте меньше файлов.

Во-первых, проверьте, не загружаете ли вы зависимости разработки, которые вообще не нужны вашему образу.

Ещё нужно помнить про поведение менеджера пакетов на уровне ОС. Например, `apt`который используется в Ubuntu и Debian, по умолчанию устанавливает «рекомендуемые» пакеты.
Вы можете избежать этого, добавив к apt-get install флаг --no-install-recommends


Совет 5. Используйте BuildKit с новой функцией монтирования кэша.

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

📎 Читать подробнее

@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143
📌Лучшие практики по безопасности при использовании Docker

Держите рекомендации по безопасной работе с образами и контейнерами
PDF

@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112🔥1
🖥 Как использовать Node.js с Docker

Как мы знаем Node.js позволяет создавать быстрые и масштабируемые веб-приложения, используя JavaScript и на сервере, и на клиенте.
Ну и для того, что приложение предсказуемо работало и там, и там, мы используем Docker, конечно же.

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

📎 Статья

@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥93👎1
💻 Запуск проекта в Kubernetes за 60 минут: инструменты, GitLab, Terraform

В этой статье детально рассматривается пример CI/CD-пайплайна, который собирает разбитое на 2 микросервиса CRUD-приложение, пушится в платформенный реджистри и деплоится в Kubernetes.

Подробно рассматриваются все шаги поднятия: создание кластера и базы данных, настройка абстракций Kubernetes вроде Service, Ingress, Deployment и т. д. и установка платформенных аддонов в кластер. А также поднятие инфраструктуры стенда при помощи подхода Infrastructure-as-a-code.

🖥 Все файлы Terraform и Kubernetes, код приложения и сокращённая пошаговая инструкция доступны в репозитории

Полезная статья, рекомендую)
📎 Статья

@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥41👀1
Мы запустили профессиональную сертификацию по облачным технологиям!

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

Экзамен на сертификат Yandex Cloud Certified Engineer Associate проверяет знания и навыки в шести областях:

• Базовые облачные технологии
• Хранение и обработка данных
• DevOps и автоматизация
• Бессерверные вычисления
• Информационная безопасность
• Биллинг

🔍 О том, как устроена сертификация, что нужно сделать для подготовки и участия в первом экзамене, читайте по ссылке.
👍4