DevOps – Telegram
DevOps
8.45K subscribers
1.47K photos
809 videos
28 files
1.75K links
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Download Telegram
How we diagnosed and resolved Redis latency spikes with BPF and other tools

https://about.gitlab.com/blog/2022/11/28/how-we-diagnosed-and-resolved-redis-latency-spikes/

#devops #девопс

Подпишись 👉@i_DevOps
13 распространенных задач в Kubernetes и способы их решения

Занимательная статья от команды VK Cloud, которая рассказывает о задачах в Kubernetes, с которыми часто сталкиваются инженеры-разработчики при запуске новых масштабируемых отказоустойчивых веб-сервисов. Здесь вы найдете не только их описание, но и подробное руководство к действию и несколько полезных советов.

#devops #девопс

Подпишись 👉@i_DevOps
👍5
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 #девопс

Подпишись 👉@i_DevOps
👍15🔥31
Двадцать бабушек – уже рубль. Как GraalVM Native Image позволяет экономить джавистам и девопсам деньги на облако

https://habr.com/ru/company/bar/blog/704494/

#devops #девопс

Подпишись 👉@i_DevOps
DevSecOps

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

Все видео доступны на youtube

#devops #девопс

Подпишись 👉@i_DevOps
👍9
Хотите узнать о новой платформе для контейнерной оркестрации?
 
2 февраля подключайтесь к вебинару о «Штурвале» — российской enterprise-платформе по управлению кластерами Kubernetes.
 
👉На вебинаре вы узнаете:
▪️об архитектуре решения и ее ключевых компонентах
▪️о функционале «из коробки» и преимуществах использования для инженера эксплуатации и ИБ
▪️о сервисной поддержке и политике лицензирования
 
‼️ И, конечно, вы увидите live-demo решения.
 
Подробности и регистрация здесь
Мониторинг контейнеров Docker с помощью Zabbix

https://blog.zabbix.com/docker-container-monitoring-with-zabbix/20175/

👉 @i_devops
👍2😁1
Инженерия данных != инженерия ПО

В последние годы мы видим, как инженерия данных всё больше сливается с индустрией DevOps. В обоих этих направлениях для доставки надёжных цифровых продуктов клиентам используется облачная инфраструктура, контейнеризация, CI/CD и GitOps. Это схождение в плане использования одного набора инструментов заставило многих думать, что инженерия данных не имеет значительных отличий от инженерии программного обеспечения. Как следствие, первая оказывается «несовершенной», поскольку дата-инженеры отстают с внедрением эффективных практик разработки ПО.

Rus https://habr.com/ru/company/ruvds/blog/701366/
Eng https://betterprogramming.pub/data-engineering-is-not-software-engineering-af81eb8d3949

#devops #девопс

Подпишись 👉@i_DevOps
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
KubeStalk обнаруживает Kubernetes и связанную с ним инфраструктуру на основе поверхности атаки с точки зрения "черного ящика".

Установка
KubeStalk написан на языке Python и требует наличия библиотеки requests.

Чтобы установить инструмент, вы можете клонировать репозиторий в любую директорию:
git clone https://github.com/redhuntlabs/kubestalk

https://github.com/redhuntlabs/KubeStalk

#devops #девопс

Подпишись 👉@i_DevOps
Логи Ubuntu: Как проверить и настроить файлы журналов

https://sematext.com/blog/ubuntu-logs/

#devops #девопс

Подпишись 👉@i_DevOps
Как создать cloud-init шаблон ОС Astra Linux в Proxmox

Что такое cloud-init образы и зачем они нужны

Вы когда-нибудь задумывались над тем, как вы создаете виртуальные машины?
Классический и самый банальный способ создания виртуальной машины (VM):
Создать VM в гипервизоре
Сконфигурировать параметры VM
Примонтировать ISO-образ ОС, которую нужно установить на VM
Запустить VM и установить ОС с ISO-образа
Для упрощения будущей жизни, можно создать из данной VM шаблон (template)

https://habr.com/ru/post/706434/

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Distroless контейнеры

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

https://habr.com/ru/post/710968/

#devops #девопс

Подпишись 👉@i_DevOps
👍2
5 лучших плагинов kubectl по звездам github

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

https://home.robusta.dev/blog/top-kubectl-plugin-list

#devops #девопс

Подпишись 👉@i_DevOps
Вам не нужен свой Kubernetes

Как DevOps инженер я имею опыт установки и поддержки vanilla kubernetes(k8s) на bare metal, опыт построения private cloud вокруг такого k8s, а также опыт использования различных public cloud таких как EKS (Amazon Managed Kubernetes), GKE (Google Managed Kubernetes), AKS (Azure Kubernetes Service). На данном этапе карьеры я очень часто тыкаю k8s, который развернут с помощью kops внутри AWS инфраструктуры.

https://habr.com/ru/post/708938/

#devops #девопс

Подпишись 👉@i_DevOps
👍1💩1