DevOps FM – Telegram
DevOps FM
4.94K subscribers
636 photos
12 videos
10 files
751 links
♾️ Канал для тех, кто живёт DevOps и системным администрированием.

Новости, статьи, best practices, инструменты и чилл-аут контент. Cloud Native, Docker, Kubernetes, CI/CD, БД, мониторинг etc.

По вопросам — к Ладе @b_vls
Download Telegram
Станислав Тибекин, CVO компании Nixys, рассказал про разные формы DevOps-подряда.

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

➡️ Приятного чтения!

#статья_Nixys
👍8🔥32
Всем DevOps! 🖖

Рады поделиться полезными материалами про Kubernetes Network Policy

Сетевые политики (Network Policies) Kubernetes позволяют настроить сетевое взаимодействие между группами подов и узлами сети.

▪️Репозиторий kubernetes-network-policy-recipes — содержит различные варианты использования сетевых политик Kubernetes и примеры файлов YAML, которые можно просто скопировать и вставить использовать при настройке.

▪️Интерактивный конструктор Network Policies для Kubernetes — помогает создавать, визуализировать и изучать сетевые политики Kubernetes.

▪️Репозиторий с тестами для Kubernetes Network Policies

▪️Отличное руководство по сетевой модели Kubernetes — руководство довольно длинное и разделено на несколько разделов: базовая терминология Kubernetes, сетевая модель Kubernetes, подробное обсуждение маршрутизации трафика в Kubernetes с использованием нескольких различных вариантов. Прилагается глоссарий сетевых терминов.

#статьи
👍11🔥6
Всем DevOps! 🖖
Как прошли выходные?

Предлагаем начать неделю со статьи под кодовым названием «pipeline to hell», точнее — как случайно не сделать такой пайплайн.

Вообще статья называется «CI/CD Security: What is It, Risks & Best Practices»: почему безопасность CI/CD имеет решающее значение, OWASP Top 10 CI/CD рисков безопасности, как сделать безопасный пайплайн и прочие полезные рекомендации.

Примерное время прочтения: 27 минут, нужно использовать VPN :(

#статьи
7👍3
Представляем nxs-data-anonymizer — удобный инструмент для анонимизации баз данных 🔥

И не просто инструмент, а open source инструмент компании Nixys! Поддерживает PostgreSQL (все версии) и MySQL/MariaDB/Percona (все версии).

Решение получилось достаточно гибким и простым в эксплуатации, и строится на следующих основных идеях:

⚙️ Потоковая обработка данных. Не обязательно предварительно готовить и сохранять где-то на диске дамп исходной базы. Инструмент может менять на лету данные, которые ему передаются на stdin. А выдавать всё — на stdout.

⚙️ Значения описываются Go template. То, на что вы хотите заменить нужные вам ячейки в таблице, определяется шаблонами как в Helm, который многим должен быть знаком.

⚙️ Использование условий и данных других ячеек в строке. Фильтры могут быть гибкими и делать те или иные подстановки в зависимости от значений других (или даже себя самого) ячеек в той же строке;

⚙️ Проверка уникальности данных.

Подробно рассказали про инструмент в статье на Хабре! Делитесь вашим мнением в комментариях :)

И, конечно, заходите в репозиторий — пользуйтесь инструментом, ставьте звездочки, оставляйте PR, рассказывайте коллегам 🦾

💻 Ссылка на GitHub

#open_source #статья_Nixys
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍10🎉6
Мы не договорили! 😁 Недавно делали подборку про Network Policy в Kubernetes, сегодня хочется сделать тематический день и рассказать про управление трафиком в Kubernetes-кластере с Calico.

Поехали! 💻

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

Помимо этого Calico добавляет свою политику GlobalNetworkPolicy. Она позволяет применять набор правил доступа по селектору не только для pod’ов, но и для групп хостов/контейнеров/pod’ов, и контролировать применение мер безопасности для различных цепочек путей трафика с помощью таких параметров, как preDNAT, doNotTrack и applyOnForward.

Задачу по обеспечению базовых принципов безопасности мы условно разделим на две:

1)
на подзадачу по настройке взаимодействия между pod’ами

2) на подзадачу по настройке доступа к узлу в целом

Решить первую подзадачу можно при помощи такой сущности Kubernetes как NetworkPolicies и при этом можно расширить функционал данной сущности, если использовать её с api, предоставляемого Calico. Для решения второй подзадачи мы будем использовать сущность GlobalNetworkPolicy. По ходу дела так же будем анализировать детали и начнем с Zero Trust Networking.

Zero Trust Networking

Первое, что стоит учесть при написании сетевых политик, это то, что и Kubernetes, и Calico считают наилучшим подход Zero Trust Networking, то есть по умолчанию запросы из используемой сети всегда считаются враждебными.

Согласно данной концепции существуют следующие требования к контролю доступа:

*
Правила применяются ко всем сетевым подключениям (не только к тем, которые пересекают границы защищаемой зоны).
* Идентификация удаленного endpoint всегда основана на нескольких критериях, включая надежные криптографические доказательства идентичности. В частности, идентификаторы сетевого уровня, такие как IP-адрес и порт, сами по себе недостаточны, поскольку могут быть подделаны враждебной сетью.
* Все ожидаемые и разрешенные сетевые подключения явно указаны в белом списке. Любое соединение, явно не занесенное в белый список, отклоняется.
* Трафик от скомпрометированных workload (pod/VM/container) не должен иметь возможности обойти применение сетевых политик.

Во многих Zero Trust Networks также реализуется шифрование всего сетевого трафика. Это не является обязательным требованием (если речь идет не о передаче приватных данных), но для соответствия критериям Zero Trust Networks шифрование должно использоваться для каждого сетевого соединения.

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

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

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

*️⃣1/6: продолжение следует :)

#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍4
Из чего состоит Calico

Кратко рассмотрим основные компоненты Calico. Как вы уже, наверное, поняли, Calico — это не один демон, который запущен на каждом хосте, где он управляет сетью, Calico состоит из нескольких элементов, так же как и Kubernetes. В целом он состоит из трех (иногда четырех) компонентов.

Felix

Основной компонент — это демон Felix, он отвечает за построение логики взаимодействия между сетевыми интерфейсами на хосте, и, как уже было сказано выше, за создание и функционирование endpoint на хостах или ВМ. В целом он выполняет следующие функции:

* Управление сетевыми интерфейсами, их создание, проверка их работоспособности и настройка пересылки трафика для управляемых интерфейсов.
* Программирование маршрутизации трафика через FIB (Forwarding Information Base) ядра Linux.
* Программирование ACL на уровне ядра Linux.
* Уведомления о статусе сети, Felix записывает данные о проблемах и ошибках в etcd.

Плагин для оркестратора

В зависимости от того, какой оркестратор вы используйте (например, OpenStack, Kubernetes) Calico предоставляет определенный плагин для наиболее эффективного взаимодействия с оркестратором. В случае Kubernetes — это CNI plugin.

etcd

Так же Calico использует etcd. etcd — это распределенное хранилище ключ-значение, которое выполняет функцию базы данных и служит шиной для коммуникации между компонентами Calico. В случае, если вы используйте Kubernetes, они с Calico будут использовать одно и то же etcd.

BGP клиент (BIRD)

Calico разворачивает клиент BGP на каждой ноде, на которой размещен Felix. Роль клиента BGP заключается в том, чтобы считывать настройки маршрутизации, которые Felix создает на уровне ядра, и распространять на другие ноды обслуживаемой сети, то есть рассылать на другие клиенты.

BGP повторитель для правил маршрутов (BIRD)

В случае, когда обслуживаемая Calico область достаточно велика при наличии только BGP клиента могут возникнуть проблемы, так как он требует чтобы каждый клиент мог соединиться с каждым клиентом, что может порождать слишком большое количество соединений(N ^ 2). В таких случаях для решения проблемы можно использовать повторитель маршрутов, то есть соответственно настроенный BIRD. Он занимается тем, что, если клиент BGP сообщает ему какую-либо информацию об изменении в маршрутах, он распространяет эту информацию для других BGP-клиентов.

Network Policy

NetworkPolicy, который предоставляет Calico, имеет более читаемый и развернутый синтаксис, чем тот, который предлагает сам Kubernetes.

Ресурс сетевой политики NetworkPolicy представляет собой упорядоченный набор правил, которые применяются к группе endpoints, соответствующих селектору меток (labels).

Простой пример из официальной документации:

apiVersion: projectcalico.org/v3
kind: NetworkPolicy
metadata:
name: allow-tcp-6379
namespace: production
spec:
selector: role == 'database'
types:
- Ingress
- Egress
ingress:
- action: Allow
protocol: TCP
source:
selector: role == 'frontend'
destination:
ports:
- 6379
egress:
- action: Allow

Здесь мы разрешаем трафик с подов/контейнеров, у которых есть селектор role == 'frontend' на порт 6379 для доступа к БД.

*️⃣2/6: продолжение следует :)

#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍4
Host Endpoint

У каждого хоста (ноды) есть несколько реальных или виртуальных сетевых интерфейсов, с которыми взаимодействует Calico. Чтобы получить возможность применять политики конкретно к определенному интерфейсу необходимо создать для него сущность HostEndpoint. Они могут иметь метки (labels) и эти метки аналогичны меткам для pod’ов, поэтому сетевые политики в равной степени могут применяться и к HostEndpoint, и к endpoints pod’ов.

Предположим, что нам нужно запретить весь входящий трафик из внешней сети, кроме портов 22, 80, 443 на уровне хоста и при этом разрешить весь трафик от других нод кластера. Для этого, для начала, создадим для каждой ноды свой HostEndpoint. К примеру:

apiVersion: projectcalico.org/v3
kind: HostEndpoint
metadata:
name: node4-ens160
labels:
type: production
role: worker
node: 4
spec:
interfaceName: ens160
node: k8s-s4
expectedIPs:
- 10.213.0.11
ports:
- name: http
port: 80
protocol: TCP
- name: https
port: 443
protocol: TCP

В данном случае мы добавили также раздел ports, где описали определенные порты и протоколы для взаимодействия с ними. Мы сделали это для того, чтобы обозначить их и дать им названия (http, https), которые в дальнейшем можно использовать в сетевых политиках. interfaceName — название внешнего интерфейса сервера которому соответствует IP-адрес expectedIPs. Указывать порт 22 нет необходимости, так как он разрешен на уровне конфигурации Felix.

Global Network Policy

Теперь, когда почти весь трафик к ноде заблокирован, создадим GlobalNetworkPolicy, которая разрешит весь трафик с других нод кластера, входящий трафик на порты 80/443 и весь исходящий трафик для этого HostEndpoint:

kind: GlobalNetworkPolicy
apiVersion: projectcalico.org/v3
metadata:
name: allow-s4
spec:
selector: role==worker
order: 10
applyOnForward: true
types:
- Egress
- Ingress
ingress:
- action: Allow
protocol: TCP
source:
nets:
- 10.213.0.0/24
- action: Allow
protocol: TCP
destination:
ports: [http,https]
- action: Allow
protocol: ICMP
egress:
- action: Allow

В целом, все параметры GlobalNetworkPolicy аналогичны NetworkPolicy и интуитивно понятны. order — очередность применения политики, чем она меньше, тем раньше будет применено правило.

Однако, для GlobalNetworkPolicyесть несколько интересных параметров, которые предоставляют дополнительные возможности для настройки политик, а именно: preDNAT, doNotTrack и applyOnForward, рассматриваемые ниже.

*️⃣3/6: продолжение следует :)

#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3
Опции applyOnForward, preDNAT и doNotTrack

Чтобы понять в каких случаях вам следует применять данные параметры, мы кратко рассмотрим как изменяется обработка трафика, если их включить.

applyOnForward

Параметр applyOnForward отвечает за то, применяется ли данная политика к трафику, который проходит по цепочке iptabels FORWARD. Например, трафик, направленный к pod’у. Так как pod является внешним ресурсом с точки зрения сети хоста (не считается локальным процессом), следовательно, трафик до него проходит по маршруту цепочек PREROUTING – FORWARD – POSTROUTING.

Если applyOnForward имеет значение false, GlobalNetworkPolicy к трафику для локальных workload (контейнер/pod/ВМ, которые имеют свои виртуальные интерфейсы) не применится. Она будет применяться только к трафику для локальных процессов и к трафику, исходящему от них. Пример приведу далее.

Если applyOnForward имеет значение true, GlobalNetworkPolicy также применяется к перенаправленному (forwarded) трафику, такому как:

* Трафик, который поступает через HostEndpoint и перенаправляется в локальные workload.
* Трафик из локальных workload, который перенаправляется черезHostEndpoint.
* Трафик, который поступает черезHostEndpointи пересылается на другой HostEndpoint.

По умолчанию applyOnForward имеет значение false. Для политик, использующих опции doNotTrack и preDNAT, для свойства applyOnForward должно быть установлено значение true, поскольку эти политики применяются ко всему трафику, проходящему через FORWARD.

По умолчанию пересылаемый трафик (FORWARD)разрешен, если к пункту его назначения или направлению не применены какие-либо политики. Иначе говоря: если у вас настроен HostEndpoint, но нет политик с параметром applyOnForward: true для этого HostEndpoint или направления трафика, то пересылаемый трафик будет разрешен. Если существуют политики applyOnForward:true, в которых упоминаются селекторы HostEndpoint или это направление, но никакие правила в политиках не разрешают трафик, трафик отклоняется.

Пример: вы создаете GlobalNetworkPolicy, разрешающую исходящий трафик по протоколу ICMP для данного HostEndpoint с applyOnForward:false. В этом случае, если вы попытаетесь сделать ping 8.8.8.8 из pod’а на данном хосте, вам это удастся, так как forwarded трафик по умолчанию разрешен, хотя GNP применилась только к локальному трафику. Но. Если вы создадите ещё одну политику для этого HostEndpoint, но уже с applyOnForward:true, например, вы разрешаете весь TCP-трафик, то ping 8.8.8.8 изнутри пода не пройдет. Потому что уже существует политика с applyOnForward:true для этого типа трафика (этого HostEndpoint) и этот тип трафика явно не разрешен.

preDNAT

Данная опция отвечает за то, применяется ли политика до прохождения через DNAT (Destination Network Address Translation) или нет.

Это может пригодится, например, если вы используйте NodePorts и хотите контролировать трафик, который приходит извне на эти порты. После того, как трафик извне приходит на NodePort его распределение по факту происходит при помощи DNAT (kube-proxy). Следовательно, для того, чтобы применить политику к трафику, приходящему на NodePort, preDNAT должен быть установлен в true.

Ключевые особенности для таких политик следующие:

*
Политики с опцией preDNAT могут иметь правила только для входящего трафика, но не исходящего.
* Политика применяется для всего трафика, проходящего через host endpoint, не только к процессам на хосте, но и к локальным workload (pod/VM/container).
* По умолчанию весь preDNAT трафик разрешен. То есть если существует HostEndpoint, но для него нет preDNAT политик, для него не действует правило “отбрасывать все по умолчанию”.

*️⃣4/6: продолжение следует :)

#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥6
doNotTrack

Опция doNotTrack позволяет отключить отслеживание (conntrack) трафика, который попадает под данную политику, причем именно для локальных процессов хоста (не pod / VM / container).

conntrack — это опция ядра из сетевого стека Linux, которая помогает ему отслеживать сетевые потоки, чтобы была возможность обрабатывать пакеты из одного потока одинаково, на основании правила обработки выбранного для первого пакета из потока.

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

* Если вам необходимо одновременно обрабатывать активных соединений больше, чем установленное значение в таблице conntrack (больше 128k по умолчанию).
* Если вам необходимо обрабатывать большое количество коротких соединений в секунду. Так как даже после завершения соединения conntrack продолжает отслеживать соединение в течении некоторого времени (по умолчанию 120с). Например, если в таблице conntrack установлено значение на 128к доступных подключений, и вы пытаетесь обрабатывать 1100 соединений в секунду, лимит будет исчерпан, даже если эти подключения очень кратковременные (128k / 120s = 1092 connections/s ).

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

Так как для активации doNotTrack политика должна примениться в самом начале цепочек OUTPUT и PREROUTING, она действует раньше других (тех, для которых doNotTrack:false), вне зависимости от её order. То есть одна политика без doNotTrack может иметьorder:1, а другая с doNotTrack может иметь order:1000, но раньше подействует политика с doNotTrack. Порядок оrder соблюдается только между политиками данного типа.

*️⃣5/6: продолжение следует :)

#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3
6/6: Заключение 🎉

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

Полезные материалы по теме:

⚙️ Пояснение концепции от Calico Zero Trust Networking

⚙️ Список failsafe rules Calico

⚙️ Примеры работы с политиками Calico с примерами

⚙️ Понимание применения работы сетевых политик Calico

⚙️ Oб отключении conntrack

Всем DevOps! 🖖

#лонгрид
🔥10👍3🎉2
Собрали вчерашние посты в одну подборку — удобнее сохранять :)

Управление трафиком в Kubernetes-кластере с Calico

⚙️ Часть 1: что такое Calico, в чем его преимущества, что такое Zero Trust Networking: какие принципы, на что влияет

⚙️ Часть 2: из чего состоит Calico, Felix, плагин для оркестратора, etcd, BGP клиент (BIRD), BGP повторитель для правил маршрутов (BIRD), Network Policy

⚙️ Часть 3: Host Endpoint, Global Network Policy

⚙️ Часть 4: опции applyOnForward, preDNAT

⚙️ Часть 5: doNotTrack

⚙️ Часть 6: заключение и полезные материалы

#лонгрид #open_source
👍17🔥3👨‍💻1👾1
У вас есть Agile и нет DevOps? У вас нет Agile 🤷‍♂️

Многие компании, разрабатывающие свои digital-продукты, уверены, что работают по Agile. Станислав Тибекин, CVO компании Nixys, рассказал, почему сегодня невозможно существование Agile без DevOps.

➡️ Приятного чтения!

#статья_Nixys
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍5
Новый выпуск о событиях в облачной индустрии — Monthly Cloud News June

Developer Advocate Yandex Cloud Антон Черноусов и архитектор Yandex Cloud Павел Селиванов вместе с приглашенным экспертом обсудят:

• Kuberconf'23;
• исследование состояния DevOps 2023;
• тренды в развитии Kubernetes®;
• Argo CD;
• общие тренды внедрения практик DevOps.

Смотрите выпуск на YouTube-канале Yandex Cloud.
👍4🔥2
Сегодня последняя пятница июля, а значит — С ДНЕМ СИСТЕМНОГО АДМИНИСТРАТОРА ВСЕХ ПРИЧАСТНЫХ! 🥳

В честь праздника мы сделали подборку интересных статей с Хабра про системное администрирование!

Для начинающих:

▪️«Как стать системным администратором — пособие для начинающих» (часть 1, часть 2) — статьи для начинающих системных администраторов, помощников системных администраторов и т.д. Опытным администраторам будет если и интересно, то бесполезно.

▪️Статья «Системное администрирование. Начало» — мануал по организационным вопросам, связанным с системным администрированием. С чего начать, если вы только устроились на работу системным администратором.

Развлекательное:

▪️Статья «Ping из Антарктиды. Пост настоящего админа: с котиками и пингвинами» — автор работает обычным сисадмином в необычном месте: на антарктической станции. Рассказывает, чем такая работа отличается от обычной работы сисадмина, что обычно делают, как держат связь со всем остальным миром.

▪️Статья «Я ненавижу компьютеры: исповедь сисадмина»Нет, серьезно, я их ненавижу. Они — это ломающиеся, непонятные штуки — мешанина глюков, железа и ограничивающего свободу ПО.

▪️Статья «Маленький ноутбук для системного администратора» — автор задумался о том, каким бы получился ноутбук, если бы его разрабатывали, думая не о маркетинге, а о потребностях реальных пользователей. Например, системных администраторов.

▪️Статья «Как самому за один вечер собрать минимальную ОС Linux из исходного кода» как собрать минимальную Linux из исходного кода и запустить её у себя на компьютере. Эта ОС не позволит использовать все возможности вашего компьютера, но будет иметь главное — интерфейс командной строки.

Полезное:

▪️Туториал «Как отправлять и обрабатывать графические уведомления на bash» — как рисовать красивые графические уведомления и взаимодействовать с ними из скриптов bash. Демонстрация будет осуществляться на вполне реальной задаче — необходимо уведомить пользователя о скором истечении пароля.

Всем отличной пятницы и крутых выходных 🔥

#статьи #Хабр
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🎉82👍2
Всем DevOps! 🖖

После публикации серии постов «Управление трафиком в Kubernetes-кластере с Calico» просили рассказать и про Cilium — Open Source-проект, который обеспечивает сетевое взаимодействие, безопасность и доступность для облачных сред, таких как Kubernetes и другие оркестраторы.

Но неожиданно (и очень кстати) вышел эпизод подкаста linkmeup про Cilium!

В нем говорится:
- Зачем и почему Cilium
- Про первые шаги
- Как работать с Cilium без kube-proxy и минимальными требованиями к ядру
- Особенности маршрутизации и балансировки
- Неочевидные возможности и планы на светлое будущее

Рекомендуем!

Но в связи с этим вопрос: нужна ли серия постов про Cilium или достаточно этого подкаста? Опрос ниже ⬇️

Другие подкасты можно найти по тегу #подкаст
👍7🔥6
Forwarded from CORTEL
🚀Двухскоростное ИТ: связь DevOps, Lean, ITIL и Agile в бизнесе

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

Чтобы достичь таких результатов без потери качества, компании обращаются к двухскоростному ИТ - подходу от Gartner.

Концепция предполагает одновременное управления двумя режимами работы:
– Traditional IT ориентирован на снижение рисков и безопасность.
– Agile IT — на гибкость.

Подробнее о том:
⚡️ как двухскоростное ИТ объединяет скорость и непрерывность;
⚡️ причём здесь DevOps, Lean, ITIL и Agile;
⚡️ как это выглядит в реальности на примере DevOps HP;
⚡️ и чем подход Gartner полезен бизнесу -

- рассказали в новом материале
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤩41
Всем DevOps! 🖖

Снова скопилось некоторое количество классных статей — с радостью делимся подборкой!

⚙️ «All right then, keep your secrets in Git with SOPS». Из этой статьи вы узнаете, как объединить Helm, Helmfile и SOPS для безопасного хранения ваших секретов в Git.

⚙️ Серия из трех частей про Platform Engineering. В первой части говорится почему вообще Platform Engineering приобрел такое большое значение. Во второй части — что такое этот ваш Platform Engineering и какие цели могут быть у команды платформенных инженеров. В третьей — когда нужна команда платформы и как создать IDP (внутреннюю платформу разработчиков).

⚙️ В Terraform 1.5 появился config-driven import (новость можно найти здесь). Мы уже рекомендовали статью про это новшество, но все-таки порекомендуем еще одну: «Automating alert creation with Terraform config-driven import in Google Cloud». В примере используется Google Cloud, но теория (со схемами :) будет полезна всем.

⚙️ Статья про tefsec — open source инструмент статического анализа, который сканирует код Terraform, выявляет и выделяет пробелы в аспекте безопасности с точки зрения инфраструктуры и IaC. Подробно рассказано про всю работу: от установки до использования.

P.S. Для чтения большей части статей требуется VPN, а для некоторых (на Medium) — может быть полезно расширение Bypass Paywalls 😎

#статьи
🔥9👍3
Как DevOps помог исправить 30 точек операционной неэффективности в промышленности

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

➡️ Приятного чтения!

#статья_Nixys
🔥11👍3😱1
Docker подробно рассказали про атрибут include — он уже сейчас доступен в Docker Compose v2.20.0 и появится в грядущем релизе Docker Desktop 4.22

🅰️ Командная строка docker поддерживает множество флагов для точной настройки контейнера и трудно запомнить их все при репликации среды. Сделать это еще сложнее, когда приложение представляет собой не отдельный контейнер, а комбинацию многих контейнеров с различными отношениями зависимостей. Именно поэтому Docker Compose быстро стал популярным инструментом.

Тем не менее, проблема сохраняется для больших приложений, использующих десятки, а может быть, и сотни контейнеров, с распределением прав собственности между несколькими командами. При использовании монорепозиториев команды часто имеют свой собственный “локальный” Docker Compose file для запуска подмножества приложения, но тогда им нужно полагаться на то, что другие команды предоставят справочный файл Compose, который определяет ожидаемый способ запуска их собственного подмножества.

Эта проблема не нова и обсуждалась в 2014 году, когда Docker Compose был совсем новым проектом. Теперь мы внедрили возможность “compose compose files” — не прошло и 10 лет! 🅱️

📌 Спецификация Compose, раздел про include

#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
💥 Коллеги из KazDevOps разыгрывают бесплатную консультацию по DevOps-вопросам с топами компании Core 24/7.

👉 3 победителя смогут задать вопросы техлиду и узнать, почему то или иное решение не работает, как настроить процесс эффективнее и от чего стоит отказаться.

Условия конкурса:

Быть подписчиком KazDevOps
Рассказать о своей ситуации вкратце под аналогичным постом в канале KazDevOps — 1-2 предложения о проблеме, задаче или амбициях, связанных с DevOps
Дождаться розыгрыша — победителей объявят 10 августа: проверят условия выше и рандомом определят 3 человек, которые представляют свой бизнес или работают в компании

🤝 Делитесь с коллегами и ожидайте звонка

#devops #devsecops #cloud #kubernetes #docker #terraform #giltab

@DevOpsKaz
👍4🔥3