DevOps
22.5K subscribers
830 photos
90 videos
15 files
781 links
По всем вопросам- @workakkk

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

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

@golangl - golang chat

@GolangJobsit - golang channel jobs

@golang_jobsgo - go chat jobs

РКН: clck.ru/3FmvZA
Download Telegram
DevOps as a Career

From Zero to DevOps Engineer - DevOps Roadmap for YOUR specific background
How I learn new technologies as a DevOps Engineer (without being overwhelmed)
DevOps Roadmap 2023 - How to become a DevOps Engineer? What is DevOps?
5 reasons I chose DevOps as a Career
Is DevOps right for you? 13 points to consider

#devops #девопс

@DevOPSitsec
👍2🔥1
Dockerfile - файл содержащий инструкции для создания образа контейнера

FROM - задаёт базовый (родительский) образ
LABEL - описывает метаданные. Например — сведения о том, кто создал и поддерживает образ
ENV - устанавливает постоянные переменные среды
RUN - выполняет команду и создаёт слой образа. Используется для установки в контейнер пакетов
COPY - копирует в контейнер файлы и папки
ADD - копирует файлы и папки в контейнер, может распаковывать архив на лету
CMD - описывает команду с аргументами, которую нужно выполнить когда контейнер будет запущен. Аргументы могут быть переопределены при запуске контейнера. В файле может присутствовать лишь одна инструкция CMD(запускается оболочка /bin/sh)
USER - указывает от какого пользователя всё будет работать
WORKDIR - задаёт рабочую директорию для следующей инструкции
ARG - задаёт переменные для передачи Docker во время сборки образа
ENTRYPOINT - предоставляет команду с аргументами для вызова во время выполнения контейнера. Аргументы не переопределяются
EXPOSE - указывает на необходимость открыть порт, сам порт не открывает
VOLUME - создаёт точку монтирования для работы с постоянным хранилищем
MAINTAINER - информация об авторе имя и <email>

#devops #девопс

@DevOPSitsec
🔥18👍111🤔1
Почему мы используем Kafka вместо RabbitMQ: сравнение и преимущества

При построении больших и сложных систем не обойтись без программных брокеров сообщений. Однако часто возникает вопрос, какой из них выбрать для того или иного проекта. Сегодня мы поделимся особенностями работы Apache Kafka и RabbitMQ, дав точный рецепт, когда и какой брокер стоит использовать.

#devops #девопс

@DevOPSitsec
👍8🔥32🥰1
Практические вопросы для экзамена Certified Kubernetes Security Specialist (CKS)

https://github.com/snigdhasambitak/cks/tree/main

#devops #девопс

@DevOPSitsec
👍83🔥2
5 приемов оптимизации сборки Docker-образов

Прием 1 — уменьшаем количество слоев в образе
Уменьшить количество слоев в образе можно сворачиванием нескольких однородных инструкций в одну. Например, несколько логически связанных инструкций RUN можно объединить в одну инструкцию с помощью конвейера Linux:

RUN apt-get update && apt-get install -y nginx



Прием 2 — удаляем ненужный кэш apt-get
Пакетный менеджер apt-get, обновляя репозиторий, сохраняет кэш, который в большинстве случаев не нужен, и его можно удалить, уменьшив тем самым собираемый образ на 100+ Мбайт. Сделать это совсем несложно, достаточно в инструкции RUN последней командой указать: && rm -f /var/lib/apt/lists/*.

Соединим оба приёма в одну инструкцию:

RUN apt-get update && apt-get install -y nginx && rm -f /var/lib/apt/lists/*
Такая конструкция работает именно в одной инструкции RUN, если вы вынесете rm -f /var/lib/apt/lists/* в отдельный RUN — ничего не сработает, так как кеш будет очищаться в другом слое, а его обновление будет оставаться в предыдущем слое.



Прием 3 — копируем только нужные файлы проекта в образ с помощью .dockerignore-файла
Обычно для копирования проекта в образ используется инструкция COPY с указанием места расположения проекта, как «.», что указывает на текущею директорию. Такой подход имеет один недостаток — будут скопированы все вложенные подкаталоги и файлы, что может значительно увеличить размер образа.

Исправить ситуацию призван .dockerignore-файл, который работает так же как и .gitignore-файл. В этих файлах указываются те папки и файлы, которые «не надо трогать». Gitignore-файл располагается в корневом каталоге копируемого в образ проекта. Обратите внимание на точку в начале названия файла — «.gitignore», так и должно быть.

Рассмотрим пример работы .gitignore-файла. Например, мы работаем с GIT, и в нашем проекте есть GIT-репозиторий. В образе он нам не нужен, поэтому его можно не копировать, а ещё в образе нам не нужен Dockerfile. Укажем эти файлы в .gitignore-файле:

.GIT
Dockerfile
При сборке образа Docker прочтет .dockerignore-файл и не включит в образ указанные в нем папки и файлы.


Приём 4 — используем минималистические Linux-образа Alpine
Как правило, для сборки образов применяются дистрибутивы Debian, Ubuntu, CentOS. Но это оправдано в том случае, если ваш проект будет использовать всё обилие возможностей ядра и пакетов, которые предоставляет выбранный дистрибутив. Если же вам нужно просто создать контейнер с Nginx или иной другой программой — используйте Alpine-сборки.

Alpine-образ весит считанные мегабайты, а не сотни Мбайт как Debian или Ubuntu, при этом в нём есть всё необходимое для запуска большинства приложений. Например, так выглядит dockerfile Nginx-образа на Alpine-сборке, который занимает 7 Мбайт:

FROM alpine
RUN apk add --no-cache nginx && mkdir -p /run/nginx
EXPOSE 80
COPY custom.conf /etc/nginx/conf.d
dockerCOPY . /opt/
CMD ["nginx”,”-g”,”daemon off;”]
Еще один бесспорный плюс Alpine — скорость сборки образа. Она разительно отличается в лучшую сторону по сравнению со скоростью сборки на любом другом дистрибутиве Linux.


Прием 5 — часто изменяемые слои ставим в конец dockerfile
Слоистая структура Docker-образов имеет одно неприятное свойство — при внесении изменения в один из слоев, это слой и все последующие слои будут пересобраны. Поэтому, чтобы сэкономить время на сборке образа — старайтесь ставить инструкции копирования кода проекта и конфигов в конец dockerfile до команды CMD или ENTRYPOINT.


#devops #девопс

@DevOPSitsec
👍15🔥51
Media is too big
VIEW IN TELEGRAM
DevSecOps

DevSecOps. Общее погружение
DevOps на пальцах
SecOps. Защита кластера
DevSec. Встраивание ИБ в конвейер разработки
DevSecOps. Process edition
Что такое Audit Policy? Вебинар из цикла DevSecOps
Зачем GitOps в Enterprise? Вебинар из цикла DevSecOps 2-й сезон
Управление секретами: основы
Persistent данные и резервное копирование в кластере
8 Bad Pods: атаки на Kubernetes
Kubernetes в Enterprise: VMware Tanzu
Kubernetes в Enterprise. Обзор, проблематика, решения
DevOps – начало работы в кластере Kubernetes
DevOps в Enterprise. Tech Talks Юрий Семенюков на High Load ++
Как пережить сертификацию по Kubernetes. Личный опыт

источник

#devops #девопс

@DevOPSitsec
👍7🔥21
Kubernetes Tools Stack Wheel

#devops #девопс

@DevOPSitsec
🔥171👍1
Собрал основные концепции Docker в одну диаграмму

#devops #девопс
🔥14👍5👎3🥰3
⚡️ Лекции: Основы контейнеризации, микросервисы, Kubernetes и как это защитить?

Контейнеры, микросервисы, лямбды и где они обитают
Устройство сети в Kubernetes
Calico для сети в Kubernetes
Межсетевой экран и Kubernetes
Сетевые политики Kubernetes
CloudGuard для Kubernetes - Обзор и демо

📌 источник

#devops #девопс

@DevOPSitsec
🔥9👍61
Media is too big
VIEW IN TELEGRAM
⚡️ Как стать DevOps Инженером с Нуля, что учить и в каком порядке

00:00 – 1. Вступление
01:06 – 2. Всевозможные компетенции DevOps инженера
10:35 – 3. Кому проще стать DevOps
15:01 – 4. Что учить по минимуму и в каком порядке
30:04 – 4.1. Основы Network TCP/IP
31:36 – 4.2. Администрирование Windows
34:09 – 4.3. Основы Linux
35:54 – 4.4. Ansible
36:48 – 4.5. Git
37:37 – 4.6. GitHub
38:04 – 4.7. Jenkins
38:23 – 4.8. Docker+DockerHub
38:44 – 4.9. Cloud Platform AWS
42:10 – 4.10. CloudFormation + Terraform
3:25 – 5. Курс DevOps Engineering в JohnBryce, Израиль
49:12 – 6. Как стать профессиональным DevOps инженером
54:24 – 7. Эпилог

источник

#video #devops #девопс
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍71👎1🥰1
Это репозиторий aws2tf от AWS Samples, предназначенный для автоматического преобразования существующих ресурсов AWS в код Terraform. Он может помочь экспортировать инфраструктуру AWS в виде кода Terraform, что полезно для управления IaC (Infrastructure as Code).

Основные возможности aws2tf:
- Генерация Terraform-кода на основе существующей AWS-инфраструктуры.
- Поддержка множества сервисов AWS.
- Автоматическое создание зависимостей между ресурсами.
- Упрощение миграции и управления конфигурацией.

Gitgub: https://github.com/aws-samples/aws2tf

#devops #девопс

@devopsitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥2
CI/CD без боли: оптимизация пайплайнов на GitHub Actions 🚀

GitHub Actions — мощный инструмент, но без оптимизации ваш пайплайн легко превратится в тормозную мясорубку. Разбираемся, как выжать максимум из CI/CD на GitHub.


Почему это важно:
Быстрые и надёжные пайплайны — ключ к высокой скорости доставки. Медленные сборки = потеря времени, нервов и денег.


1. Кэшируй разумно
Используй actions/cache для ускорения зависимостей, но не кэшируй всё подряд. Пример для Node.js:


- uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-


⚠️ Ключ должен быть завязан на lock-файлы, иначе можно словить конфликты версий.


2. Делай job-ы параллельными
Разделяй пайплайн на независимые шаги — unit-тесты, линтеры, сборка. Добавляй needs: там, где реально нужно, а не везде.


3. Matrix strategy — must-have
Хочешь тестировать на разных версиях языка/ОС? Используй matrix:


strategy:
matrix:
node-version: [16, 18, 20]


Это масштабирует проверку без дублирования кода.


4. Отключи ненужные события
Не запускай воркфлоу на каждом чихе. Используй on: грамотно:


on:
push:
branches:
- main
pull_request:
paths:
- 'src/**'


Это поможет не перегружать runners.


5. Используй workflow_dispatch для ручных запусков
Иногда надо протестить пайплайн руками — не бойся добавить ручной триггер:


on:
workflow_dispatch:



6. Логи и таймауты — твои друзья
Добавляй timeout-minutes к job-ам и выводи ключевые логи через ::group:: и ::endgroup::, чтобы не утонуть в консоли.


Вывод:
Грамотно настроенный GitHub Actions экономит время и снижает головную боль. Избегай монолитных пайплайнов, кэшируй умно и тестируй только то, что нужно. Автоматизация — это про контроль, а не хаос.


#devops #девопс
👍12🔥51
digital-periodic-table-of-devsecops.png
615.1 KB
Полезная таблица инструментов DevSecOps

Если ты учишься с нуля, устраняешь пробелы или заменяешь существующие инструменты, начни с Периодической таблицы, чтобы подобрать оптимальные решения для своей DevOps-пайплайна.

#devops #девопс

@devopsitsec
👍2🙏21🏆1