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

Я розглядаю технології та рішення, роблю огляд архітектурних проблем, включаючи контейнери, оркестратори, скейлінг, моніторинг, etc.
Download Telegram
GCP Config Connector & AWS Controllers for Kubernetes: GitOps для инфраструктуры

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

Одна из серьезных проблем - Wall of Confusion, который мы построили снова. Есть инфраструктура в Terraform, туда доступ только у DevOps, есть чарты в репозитории каждой апки - там может что-то поправить и разработчик приложения, и DevOps. Но в инфраструктуру разработчику нельзя. Грустно.

Почему нельзя разработчику в Terraform инфраструктуру? У каждого свой вариант:
- не актуальный стейт, половина ресурсов с изменениями
- непонятная структура даже для самих DevOps
- нужно обучать девелоперов, в том числе и в модули
- разница приоритетов: по сути DevOps команда осталась Ops, и только она отвечает за стабильность

Вторая серьезная проблема - неймспейсы. Большинство инженеров не слышали, что в Terraform есть неймспейсы, а те кто слышали - стараются их не использовать.

Неймспейсы в Terraform были созданы как ответ на запрос "хотим точно такую же инфру, только без копипасты". Как результат - Terraform рождает кучу месса, остаются те же проблемы с неактуальностью стейта, суперсложно завернуть его в Jenkins/Atlantis и т.п. и т.д.

Получается, что задача создать динамический environment (как прод, например) и потушить его после какого-то действия по задумке - easy, а в реализации - ламучий мрак.

И в этот момент где-то далеко виднеется GitOps для инфраструктуры. После того, как все заценили ArgoCD и все прелести GitOps подхода - мы увидели первые зачатки реализаций GitOps, но уже для инфраструктуры.

В чем суть и как работает:
- мы устанавливаем в Kubernetes cluster контроллер (aka operator с новыми CRD)
- имплементим инфраструктурные зависимости внутри чарта с помощью CRD
- деплоим в кластер, контроллер подхватывает манифесты и деплоит вместе с приложением

Таким образом, мы получаем GitOps для инфраструктуры:
- можно конфигурить апку и зависимости вместе
- отдать это девелоперам, которым понятно YAML и не понятно HCL
- врапнуть чем угодно (helm/kustomize/jsonnet etc)

Стоит заметить что GCP немного впереди и уже работает (реализация - Config Connector), а AWS пока не догоняет - половина ресурсов в Beta, а вторая половина совсем не реализована. Я отлично вижу как определенные рутинные и неудобные куски выносятся из Terraform и врапаются любой билд тулой, например:
- вместо мануального менеджмента IAM делаем отдельный реп, показываем девелоперам как пользоваться, и ставим апруверами SecOps —> вообще убираем себя из этого флоу
- также выносим куски с ASg, размерами инстансов, тестовыми инстансами и т.п.
- делаем амбрелла чарт, который умеет инклудить приложения компании и докидывает туда зависимости (временные S3, SQS, RDS, etc) и делаем динамический энв на PR

Уже доступные ресурсы можно посмотреть по ссылкам:
👉 https://cloud.google.com/config-connector/docs/reference/overview
👉 https://aws-controllers-k8s.github.io/community/services/
Yaroslav Molochko: Self-healing in prod do you really need AI for that?

Ярослав - отличный пример, как действительно нужно деливерить world-class решения, строить карьеру, делать CNCF митапы и пушить KubeFlow.

До этого доклада Ярослав Молочко был простым Head of Engineering, а потом стал настоящим Director of Engineering.

В докладе - дизайн self-healing приложений, а сегодня - день роджения Ярослава.

Ура!

https://www.youtube.com/watch?v=Byj11BVmeZs
DevOps Days Kyiv 2021!

20-22 апреля у нас DevOps Days Kyiv 2021 🔥

Конференция в онлайн формате (проходит вечером, удобно после работы), и бесплатно.

Будут какие-то очень важные спикеры из других стран, например автор книги ”Kubernetes: Up and Running: Dive Into the Future of Infrastructure”, но я об этом не хочу особо упоминать.

Я уже вижу топовых спикеров, и уже очень хочу их услышать 💥:
- Сева Поляков - Marketing in DevOps
- Ярослав Молочко - Humble reflection on future of DevOps
- Антон Кошевой - The way to China. Cheat Sheet
- Влад Волошин - Cooperation between multiple infrastructure teams
- Вова Цап - Infrastructure Templating with cluster.dev

Какие люди в одном месте!

Однозначно приду на конфу, и рекомендую регистрироваться:
https://devopsdays.com.ua/
Introducing OpenSearch

Все помнят тред, когда Elastic навели шумиху с лицензиями SSPL 1.0 и ELv2?

Amazon, Red Hat, SAP, Capital One, и Logz.io форкнули Elasticsearch 7.10.2 (который был еще под Apache 2.0) и сделали OpenSearch.

Итого:
- Amazon OpenSearch под Apache License, Version 2.0
- OpenSearch это форк ElasticSearch
- OpenSearch Dashboards это форк Kibana

Больше - в блоге:
https://aws.amazon.com/blogs/opensource/introducing-opensearch/
Why Alibaba Cloud uses KEDA for application autoscaling

Мы уже месяц работаем над тем, чтобы завезти event-driven autoscaling в ML pipeline.
Суть - не скейлить с помощью HPA по одному поду, а скейлить 100500, если действительно есть столько задач в source очереди.

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

Более того, мы получаем возможность скейла в 0 (по сравнению с HPA) и забираем метрики контроллера в Prometheus stack.

В статье описано, каким образом работает KEDA, рассмотрены основные CRD которые реализуют скейлинг и архитектура контролера.

Еще бонусом, в этой же статье нашел Vertical Pod Autoscaler (VPA) - и это стало прям какой-то неожиданной новостью 😁

Классная статья, результатами поделюсь 👇

https://www.cncf.io/blog/2021/03/30/why-alibaba-cloud-uses-keda-for-application-autoscaling/
OpenSLO: Specification

- Видел? - спрашивает меня Ярослав Молочко.
- Ухты, не видел - отвечаю я.

Давайте смотреть вместе: OpenSLO - спецификация, унифицированный стандарт для определения SLO для сервисов. Она позволяет описать Confluence таблички, где ранее было описание SLO, или собрать в кучу “и так понятные” метрики и индикаторы.

Сейчас это действительно только предложение стандарта, но формат подразумевает деплой в Kubernetes - так что вполне вероятно, что появится оператор, который сможет это применить в Alertmanager или в Grafana.

Обожаю стандарты, и оставляю две ссылки:
https://openslo.com/
https://github.com/openslo/openslo
AWS Activate Founders

1000$ от AWS для стартапов.
Самое время создать свой pet project и назвать его стартапом? 😁

https://aws.amazon.com/activate/founders/
ДевОпс Инженер: events

Когда мне в личку прилетают крутые митапы/мероприятия/ютуб трансляции - я всегда грущу, потому что не хочу спамить в основной канал. Ладно запостить DevOpsDays или XPdays, но интересных ивентов (как и вакансий) слишком много.

Чтобы спокойно делиться с вами крутыми ивентами, я решил сделать отдельную филию канала - @devopsengineerevents 👈

Там уже есть первое мероприятие с названием “DevOps-баттл”, и через пару дней я подкину туда же митап о DevSecOps. CNCF плейлисты - тоже туда. Не пропускайте знания.

@devopsengineerevents 🌠
Announcing HashiCorp Terraform 1.0 General Availability

Отакої! Релизнулся Terraform 1.0 😳

Ключевые моменты:
- state is now cross-compatible between versions 0.14.x, 0.15.x, and 1.0.x
- you can now upgrade to a new Terraform version and your workflows will continue to be operational

https://www.hashicorp.com/blog/announcing-hashicorp-terraform-1-0-general-availability
Fastly: Summary of June 8 outage

8 июня половина интернета внезапно выключилась. Упали deb репы, куча статики и куча знаменитых сайтов. По ссылке - публичный summary их постмортема, выводы - Time-to-Recover 1 час 13 минут - вполне нормально для современного интернета:
- 09:47 Initial onset of global disruption
- 11:00 Majority of services recovered

Второй вывод - акции Fastly подросли на 16% после инцидента. Оказывается, неработающий сервис может быть полезным для бизнеса.

Третий вывод - если ваш Time-to-Recover меньше чем 1 час 13 минут, вы всегда можете аргументировать ‘Мы восстановились быстрее, чем Fastly’ 😁

https://www.fastly.com/blog/summary-of-june-8-outage
7 способов ускорить разработку с помощью DevOps

Пару капитанских вариантов, и пару интересных способов сделать быстрее девелопмент пайплайн в вашей компании.

Можно брать на вооружение, за автоскейлинг и рейтлимиты готов к хейту только от тех, у кого эти практики уже внедрены 😄

Также будет полезно как дополнительный чеклист к The Twelve-Factor App.

https://ain.ua/2021/06/14/7-sposobov-uskorit-razrabotku-s-devops/
DevOps - зарплатная мобилизация

Всем привет! Пришло время мобилизоваться и сделать ответную реакцию на изменение рынка - поднять статистику компенсаций по отрасли.

Зарплаты тихо поползли вверх, в то же время вся аналитика, графики, опросы - остались старыми. Для того, чтобы в ваших компаниях пересмотрели уровень зарплат, нужно подтянуть статистику “опросника на доу” до реального уровня - неофициальное место, где управленцы сверяют данные о зарплатах своих сотрудников.

Я бы очень просил серьезно отнестись к этому, т.к. мем о нереальных $6.9 уже не очень то и далеко, поэтому - пожалуйста, уделите 3 минуты драгоценного девопсового времени:

https://dou.ua/goto/zwVn

Опрос анонимный, по результатам я, как всегда, проанализирую сырые данные и скорректирую по рыночным уровням компенсаций для уровней Middle/Senior.

В начале 2020 года я уже описывал общую тенденцию - https://t.iss.one/devopsengineer/160, но сейчас ее нужно будет корректировать в большую сторону 🔥

Заполнил опрос - помог себе в будущем увеличить зарплату 👆
👍1
Github Copilot

Github Copilot - это AI-powered плагин для Visual Studio Code (пока только для этого редактора), который напишет код вместо вас.

По сути, это какая-то супербольшая натренированная модель (на основе public кода в Github), которая умеет не просто автокомплитить, а реально предсказывать, что вы хотите написать.

Интересно было бы потестить на Terraform или Kubernetes манифестах (для YAML с разными версиями будет лютый месс, конечно), но в целом выглядит интересно.

Скажем, если важный синьйор сможет этой тулой упростить себе работу - будет прям мегаполезно. Но я что-то даже не могу придумать такого кейса, когда сложная архитектурная задача может быть решена какой-то автоматизацией. Она не всегда несколькими инженерами может быть адекватно решена 😆

На видео заморский DevOps копирует условия задач с Leetcode в среду разработки, и Github Copilot генерит решение. Мне этот кейс как демка вообще не нравится (очень изи автоматизировать copy-paste задач с Leetcode даже без ML), но другого, увы, нет. Если есть интереснее - скиньте плиз в коменты.

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

Ссылка на демку + плагин:
https://www.youtube.com/watch?v=FHwnrYm0mNc
https://marketplace.visualstudio.com/items?itemName=GitHub.copilot
«Если сидеть весь день в наушниках и пилить функционал, то медаль получат все, кроме тебя»: почему быть хорошим инженером недостаточно, если хочешь повышения

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

Коротко и по делу:
- джунам - не опускать руки, работать бесплатно, и готовится к собеседованиям
- джунам - как можно больше обучаться (книги, курсы, конференции) - вначале пути любые знания будут полезны
- мидлам - работать только в растущих компаниях с перспективой (чтобы расти вместе с компанией)
- синьйорам - следить и понимать куда двигается рынок, чтобы правильно выбирать области экспертизы
- тимлидам - 24 часа в сутки не масштабируются, масштабируется команда
- всем - учить Linux как можно глубже
- всем - проводить демо и быть открытыми для своих клиентов (да, команды разработки - это тоже ваши клиенты, как и бизнес)
- всем - брать на себя больше ответственности, показывать максимальное качество, закатывать рукава и достигать результата

Я поделился, чем мог на своем пути, и очень буду рад, если кто-то сможет найти полезные хаки или неочевидные решения, чтобы увеличить зарплату/улучшить экспертизу/вырасти внутри компании (подчеркнуть свое).

https://highload.today/esli-sidet-ves-den-v-naushnikah-i-pilit-funktsional-to-medal-poluchat-vse-krome-tebya-pochemu-byt-horoshim-inzhenerom-nedostatochno-esli-hochesh-povysheniya/
kubetools - Curated List of Kubernetes Tools

Хочу поделиться несколькими тулами, которые точно заслуживают внимания:
1. kubie - лично пользуюсь, удобно. Kubie - это kubectx + kubens в одной туле, в конфиге достаточно указать где искать kubeconfigs.
2. k9s - UI в терминале с кучей хоткеев, я раньше как-то недооценивал, то потом мне его продал Макс Витковский (кубер-шайтан из моей команды). В общем, теперь это primary cli тула в работе.
3. Lens - это красивая, но прожорливая приложуха. Отлично выглядит, но не более 😅 Удобно для девов, или начинающих крутить кубер. Плохо работает на большом скейле - безбожно тупит.

По ссылке ниже - 100500 тулов для менеджмента, работы, аудита и анализа кубер кластера 👇

https://collabnix.github.io/kubetools/

Если у вас есть еще какая-то удобная тула для повышения продуктивности - поделитесь, пожалуйста, в комментариях.
Kubernetes Hardening Guidance

Пару недель назад National Security Agency (NSA) and the Cybersecurity and Infrastructure Security Agency (CISA) зарелизили очень крутой гайд по безопасности в Kubernetes. Многие видели эту pdf, продублирую на всякий случай:
https://media.defense.gov/2021/Aug/03/2002820425/-1/-1/1/CTR_KUBERNETES%20HARDENING%20GUIDANCE.PDF

Также появилась тула, которая позволяет проверить свой куб кластер по этому гайдлайну:
https://github.com/armosec/kubescape

Всем kubescape scan framework nsa 👋