ДевОпс Інженер 🇺🇦
5.05K subscribers
31 photos
4 videos
293 links
ДевОпс Інженер - авторський канал @mukolaich - Head of DevOps у SQUAD.

Я розглядаю технології та рішення, роблю огляд архітектурних проблем, включаючи контейнери, оркестратори, скейлінг, моніторинг, etc.
Download Telegram
Нативный Docker Compose on Kubernetes

Как-то пролетела новость, и никто не заметил. Раньше делали как: генерили кубер манифесты из компоуз файлов, с помощью, например, Kompose.

Наконец Docker расчехлились, и уже практически официально этим решением депрекейтнули Docker Swarm. Они напилили нативный контроллер, который позволяет применять compose манифесты в кубер.

Вот, смотрите:
https://blog.docker.com/2018/12/simplifying-kubernetes-with-docker-compose-and-friends/

Репа на гитхабе:
https://github.com/docker/compose-on-kubernetes

В общем, у кого compose (омг) или Swarm в проде - можно безболезненно пересесть в k8s как первый шаг в процессе миграции.

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

Как новость?)
👍2
ДевОпс Інженер 🇺🇦 pinned «Нативный Docker Compose on Kubernetes Как-то пролетела новость, и никто не заметил. Раньше делали как: генерили кубер манифесты из компоуз файлов, с помощью, например, Kompose. Наконец Docker расчехлились, и уже практически официально этим решением депрекейтнули…»
Consul Connect: TLS + сайдкар прокси из коробки

Ребята, смотрите какая крутая тема для service-to-service коннектов:
- забирает инфу из Consul
- делает sidecar proxy
- умеет TLS из коробки

Что это значит: можно ходить внутри сети, или через интернет, секурно (mTLS). Из коробки.

Выпиливайте мануальные туннели на haproxy/nginx 🔥

https://www.consul.io/docs/connect/index.html
Буду краток: с Новым Годом!
Envoy proxy: отличная тема, даже без кубера 🔥

Envoy - это L4/L7 proxy, раньше был в Lyft, а теперь - CNCF.
https://github.com/envoyproxy/envoy

Он позволяет легко и быстро построить service-to-service, front proxy или double proxy (или даже все в месте). Вот, например, так:
https://www.envoyproxy.io/docs/envoy/latest/intro/deployment_types/double_proxy

Конфигурация кажется немного запутанной, но через пару часов все ясно и понятно - намного проще и быстрее чем HAproxy/nginx, etc.

Пример double proxy конфигурации:
https://github.com/envoyproxy/envoy/blob/master/configs/envoy_double_proxy_v2.template.yaml

Он очень классно интегрируется с Consul (в том числе как communication bus для Consul Connect), и может динамически слушать порты, строить роуты, делать всякую магию, которую в случае с HAproxy/nginx нужно было решать всякими ужасными темплейтами и генерацией конфигурации.

Все вы знаете реализацию Envoy внутри Istio, но кто хочет попроще или не в k8s - можно брать просто Envoy.

Из сомнительных моментов могу упомянуть:
▶️ Если хотите запустить несколько Envoy контейнеров на одной ноде, нужно передавать дополнительный параметр - иначе не будет работать:
https://www.envoyproxy.io/docs/envoy/latest/operations/cli#cmdoption-base-id
▶️ Prometheus exporter встроен прямо в Envoy, но с оговорками. Путь - /stats/prometheus (what?, почему не /metrics, или почему даже редиректа нету?), и второй момент - метрики отдаются через админский интерфейс, а он не защищен. Вот issue:
https://github.com/envoyproxy/envoy/issues/2763 - должны сделать.

Мы сейчас как раз в процессе внедрения, пока что впечатления крайне положительные, могу рекомендовать 🙂

И еще расшарю для вас gist с relabel_configs для prometheus, который берет таргеты из Consul:
https://gist.github.com/Mykolaichenko/9ab505876237999466a6e3b506ef598a
👍1
Ребят, и еще тема: скоро выходит девопс дайджест на DOU, а у меня еще ничего не готово 😱

Подкиньте-ка , ̶м̶е̶л̶о̶ч̶и̶ классных новостей или статей за последний месяц в личку: @mukolaich ⬅️
Ребят, кто хочет в Вену на релокейт 🔽
https://jobs.lever.co/tourradar/963f1e14-a4af-4fcc-91fb-26932ea6577d
Пишите сразу @denys_popov - работали вместе 🔥
AWS Lambda: 15 minutes of execution

Новость старая, но я не знал. Оказывается, теперь таймаут на выполнение не 5 минут, как было раньше, а целых 15.
Теперь это чуть более useful, спасибо, AWS! 👍

https://aws.amazon.com/ru/about-aws/whats-new/2018/10/aws-lambda-supports-functions-that-can-run-up-to-15-minutes/
Envoy hot restart: обидно

В доке у Envoy описано кучу классных юзабельных техник, к примеру hot restart. Это значит, что можно релоадить Envoy без оборванных соединений, применять новую конфигурацию на лету, и быть счастливым.
Вот тут описано, как должно работать: https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/hot_restart.html

Давайте проверим, как оно бывает в реальном мире 😱

Как читаю я, и что понимаю: docker kill --signal=SIGHUP envoy - и применилась новая конфигурация
Как пишут доку, и что в нее вкладывают: сделаем скрипт на Python, который будет запускать Envoy, ловить сигналы и делать магию

Обидно! CNCF, Lyft, кто там еще замешан 🙁

Вот, прям в доке описано:
https://www.envoyproxy.io/docs/envoy/latest/operations/hot_restarter
Hashicorp Vault pricing: OMG

Периодически всплывают вопросы: сколько стоит Hashicorp Vault? Тот который с HA, MFA, auto unseal, Disaster recovery, Replication, etc.

Пару лет назад (средина 2017) я у них спрашивал: ответ был краток - меньше $10 000/per year не подходи, и это еще самый базовый план.

Где-то пол года назад подобную инфу риквестил Игорь Бородин: ценник был чуть поболее, но плюс-минус такой же.

А теперь посмотрите, что ответили Ярославу Молочко 😂
https://i68.tinypic.com/10qw9y1.png

P.S. Проверьте бекапы вашего, надеюсь не стенделон Vault, попробуйте отресториться с бекапа, и на вскидку прикиньте что будет, если тупо дропнуть все секреты.
Terraform MySQL provider

Хотел поделиться с вами методикой работы с (forced new resource), (new resource required) и прочего.

Вот, например, самая банальная штука - это динамически вытягивать последнюю AMI из AWS для создания EC2. И сразу же получаем: при обновлении AMI (почти каждый день)- (forced new resource) - потому что AMI изменился, и нужно (нет) пересоздать.

Что делать:
lifecycle {
ignore_changes = ["ami"]
}


Тут как бы все понятно - если меняется переменная ami - все ок, ничего делать не нужно. Подобная штука будет прокатывать с большинством ресурсов.

Недавно обновился MySQL Terraform provider - и появились нужные нам штуки. Но вот, проблема - при апгрейде Terraform маркает большинство ресурсов на пересоздание.
Я пробовал сюда вставить пример кода - но Telegram ломает форматирование.

Опишу словами: tls_option - была пустая строка, а теперь - будет NONE. Это произошло потому, что раньше эта опция не была реализована в модуле, а сейчас появилась. Окей, как сохранить обратную совместимость?

Втулить ему то, что было раньше:
tls_option = ""


Более подробно с кусками кода я описал тут:
https://github.com/terraform-providers/terraform-provider-mysql/issues/55#issuecomment-461610419

Вроде банальные вещи, но часто вижу, что много кто не знает.

Good luck!
DevOps learning roadmap

Для тех, кто только присоединился или еще в начале пути:
https://raw.githubusercontent.com/kamranahmedse/developer-roadmap/master/images/devops.png

Схема поможет эффективно построить ваше обучение 🙂
DevOps Fest 2019

6 апреля, Киев, и еще есть Smart Bird, так что можно начинать пушить менеджмент оплатить конфу 😁

Промо на 10% - DEVOPSENGINEER

Программа ниже 🔽
https://devopsfest.com.ua
CNCF Cloud Native Interactive Landscape

Если у кого-то devops-депрессия или кризис продуктивности, зайдите сюда:
https://landscape.cncf.io/
Teleport

Если у вас в компании принято раздавать всем доступы на все сервера - у меня есть плохие новости. А если это делается мануально, то очень плохие.

Смотрите, есть вот такая тема:
https://gravitational.com/teleport

Teleport позволяет контролить доступ, логгировать выполненные команды и прочее. Очень удобно, например, для долгих Ansible деплоев: когда ноут не тянет кучу хостов, а на сервере с Teleport есть для этого достаточно ресурсов.

Teleport отлично миксуется с паттерном bastion host и отлично его дополняет. Мы используем, мы довольны, рекомендую.
Developer Survey Results 2019 by StackOverflow

В двух словах: мы в топах!

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

https://insights.stackoverflow.com/survey/2019

Смотрите зарплаты остальных специализаций (на графике):
https://cdn.sstatic.net/insights/Img/Survey/2019/salary_devtype-1.svg
Docker Hub Hacked

В соседнем чате проскочила печальная информация. В Docker Hub обнаружили утечку данных 190 000 пользователей 🙁 Это касается не только связки логин/пароль, а и токенов (github, bitbucket).

Как минимум стоит переслать в SecOps team, а в идеальном кейсе - поменять эти данные.

Тут можно почитать, что делать более детально:
https://news.ycombinator.com/item?id=19763413

Вот так выглядит письмо:
https://cdn.changelog.com/uploads/news_items/AJOA/large.png?v=63723566056

Стоит сказать, что пароли были в виде hashed passwords, а не как у Facebook - в plain text 😄

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

Дмитрий Меньшиков - мой хороший друг и наш подписчик, СТО в Aurora Technologies, знает о топ-10 фейлах на highload проекте и умеет менеджерить людей.

А еще у Димы есть свой личный телеграм канал, в котором он пишет о:
- технической составляющей (всегда полезно для девопсов)
- культуре и взаимодействии
- личностном развитии (надеюсь будет цикл "Как стать СТО" 😁)

Рекомендую подписаться, читать и использовать: @notieinIT 👍
HCL2

Очевидно, Hashicorp никогда не откажется от своего HCL.

Пока этот репозиторий - эксперимент, но смотрите что интересного может быть:
 Arithmetic with literals and application-provided variables
sum = 1 + addend

# String interpolation and templates
message = "Hello, ${name}!"

# Application-provided functions
shouty_message = upper(message)

Рекомендую прочитать раздел Why? и подготовиться к холиварам 😄 на эту тему:
https://github.com/hashicorp/hcl2#why

Сам репозиторий вот тут:
https://github.com/hashicorp/hcl2