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

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

Docker имеджи тестируют не только лишь все. Вернее мало кто может это делать. 😂

Я прочитал все первые 10 результатов из Google, которые относятся к тестированию образов, и кое-что понял. 👇

Почти никто не тистирует имеджи после сборки.

Ну типа зачем - если есть проблема, то приложение даст знать. И это очень печально. Ведь по сути, Dockerfile - это набор консольных команд, порой очень замудреных, и не всегда очевидно как оно на самом деле должно отработать. И что мы ждем в результате.

▶️История тестирования примерно такова:
1. Сначала никто не тестировал 😱
2. Потом решили писать скрипт test_image.sh, копировать его в имедж, и там же его запускать (фейспалм)
3. Поняли что и так слишком много bash в этом мире, и врапнули goss. Получился dgoss (эволюция)
4. Google посмотрел на это все, и запилил container-structure-test (зачем?)
5. Мы сейчас тут

Субъективно container-structure-test не очень юзер френдли, а вот dgoss очень даже ничего.

Сами посмотрите:
👉 goss: https://github.com/aelsabbahy/goss
👉 dgoss: https://github.com/aelsabbahy/goss/tree/master/extras/dgoss
👉 container-structure-test: https://github.com/GoogleContainerTools/container-structure-test
Hey guys! Ну что, как дела? 😉

Есть немного апдейтов:
👉 18-го числа будет девопс-дайджест, так что если у кого-то ивент или есть новости - фил фри ту нотифай ми
👉 сейчас у меня небольшой trip в USA, и вот до этого времени реально не получалось ничего отписать
👉 кокосовая вода очень неприятная и невкусная, несмотря на все "рай, кокос, наслаждение"
👉 пляж в LA реально как в GTA

Теперь по теме: livenessProbe, readinessProbe 😂

Хорошая статья на почитать вечером перед сном или на работе с чаем о хелсчеках в кубере.
Там описана разница между livenessProbe и readinessProbe, общие принципы настройки и примеры (http, shell).
Это одна из концептуальных основ которые нужно знать, и в этой статье в общем есть все что нужно.

https://medium.com/spire-labs/utilizing-kubernetes-liveness-and-readiness-probes-to-automatically-recover-from-failure-2fe0314f2b2e
Подписчик посоветовал еще статейку на тему хелсчеков кубера:

Ну, теперь мы точно покрыли эту тему. Спасибо, Игорь! 🔥

https://cloudplatform.googleblog.com/2018/05/Kubernetes-best-practices-Setting-up-health-checks-with-readiness-and-liveness-probes.html
Друзья, девопсовое событие осени 🌧🌧🌧

Киев, 12-13 октября (это когда на улице все ужасно, а дома скучно) будет большая конфа DevOps Stage, с такими докладчиками:
▶️ Philipp Krenn из Elastic - отличный спикер, общался с ним в Натюрлихе, рекомендую
▶️ Jeffry Molanus - CTO at MayaData - считает себя Богом стореджей и спонсирует опенсорс, будет рассказывать про кубер
▶️ Thiago Assuncao de Faria - DevOps/AI Lead - готовил ML еще когда это небыло мейнстримом, и будет рассказывать как это все умное готовить в DevOps стиле
▶️ еще куча знаменитых чуваков, которых я не знаю

3 трека, 2 дня екшна, тусовка, куча пустых слотов в расписании, еда, троллинг - все как положено.

Пока еще можно купить билет за 150$ как early birds, но не забудьте спросить своего менеджера, есть ли у вас бюджет на конференции (а он скорее всего есть).

Лично я отношуcь очень тщательно к self-education и continious improvement, поэтому планирую быть на мастер-классе "The Phoenix Project DevOps Game" и 100% в первый день.

Как всегда, ссылка: https://goo.gl/UyMc5Q
И еще промокод на -10%: devopscommunity_promo_code 😱
Как стать топовым Kubernetes contributor
Я не знаю, но кое-какими мыслями поделюсь.

Вчера сходил на местный Kubernetes митап в Palo Alto. Если бы сегодня еще один был, я бы тоже пошел. Еда вкусная (пицца, жареная курица), пивас нормальный (не запомнил), спикеры мощные. 🍕🍺

У нас часто бывает, приходишь на конфу - а там лажа какая-то, ну реально. В долине такое, наверное, не прокатывает - аудитория очень лояльная, все ведут себя очень сдержанно, даже на спорных моментах. Люди просто встают, и идут пить пивас с пиццей. (см. выше) 👆

Подсмотрел на митапе 2 практики, которые и так знал:
👉 1. Записать демку на видос, и показывать видос
👉 2. Иметь в запасе суперсильного архитектора, который поможет ответить на стремные вопросы

Также очень понравилось, что ведущий был из Google и помогал менеджить все острые углы.
И в нем я для себя открыл несколько инсайтов:
👉 - он тоже человек
👉 - он контрибьютит в kubernetes/kubernetes

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

Они тегают Issues, и среди этих тегов есть несколько интересных:
💥 help wanted: https://go.k8s.io/help-wanted
💥 good first issue: https://github.com/kubernetes/kubernetes/labels/good%20first%20issue

Если посмотреть немного дальше в Issues, то можно найти очень простые. Вот смотрите:
▶️ https://github.com/kubernetes/kubernetes/issues/58640

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

Резюмируя:
🔥 митапы в долине очень годные
🔥 мы тоже можем контрибьютить в такие крутые проекты
Для тех, кому скучно читать всю книгу Site Reliability Engineering

👇 всего одна глава (почти как саммари) 👇

https://landing.google.com/sre/book/chapters/service-best-practices.html
Ребята! Я заболел 🤒🤕

Но уже выздоравливаю. Прилетел, и на следующий день заболел. Очень обидно(

А пока я поправляюсь, посмотрите какую крутую статью написал Юра Рочняк в блоге на медиуме:
https://medium.com/preply-engineering/lambda-edge-and-where-to-find-it-92b7c9c37f22

🔹Во-первых, у него в Preply все очень неплохо, и хорошая экспертиза в serverless-related штуках;
🔹Во-вторых, завести блог, да еще и на английском - многого стоит.
🔹В-третьих, это действительно технически грамотная статья о Lambda@Edge + Cloudfront + Terraform;

Preply, you rock! 👍👍👍 (нажамкайте Юре пальцев вверх, и наверное он напишет еще что-то полезное)
Уууух как круто прошла конфа! 😎

Мне понравилось, что ребята из fwdays очень классно проработали все моменты: после обеда были лайтовые доклады на общие темы, а хардкор примерно в 12 (когда все уже проснулись, но еще не устали). Очень порадовали сами доклады и треки - сложно было выбрать что и куда идти, хотелось быть везде и одновременно))

Отдельно могу отметить юмор Александра Соловьева из "магазина одежды", топ-хедлайнера конференции, он очень позитивно завершил этот продуктивный день. 👆

В целом впечатления крайне положительные, не считая непонятного мне конфьюза с Svitla systems, однозначно пойду в 2019.

Для тех кто не попал, или был на OSDN есть записи докладов по трекам:
🔥main stage: https://www.youtube.com/watch?v=MbZgXZBxgV8
🔥track a: https://www.youtube.com/watch?v=sVhsY-kYi0Y
🔥track b: https://www.youtube.com/watch?v=i5-sFUqVhrs
🔥track c: https://www.youtube.com/watch?v=Lxop86CIfg0

Расписание докладов (для навигации) есть на сайте:
▶️ https://fwdays.com/en/event/highload-fwdays-2018#program-event

А я пошел внедрять на практике этих всех сферический коней в вакууме 🙈
Для тех, кто любит смотреть конференции на работе 😂

Подьехала запись докладов с OSDN (спасибо Mykola Marzhan).

Доклады удобно порезаны на видео, рекомендую посмотреть на Lennart Poettering - создателя systemd.

https://www.youtube.com/playlist?list=PL_O8YSX8ckffdJPhMNU87ZgVqq5Y-OAGj&disable_polymer=true
Если у вас github и kubernetes манифесты - эта штука будет очень кстати: она интегрируется прямо в репозиторий (вкладка Checks) и следит, чтобы все было в порядке.
▶️ https://github.com/urcomputeringpal/kubevalidator

Но даже если у вас не github, то можете запилить проверку прямо в CI процесс:
▶️ https://github.com/garethr/kubeval

Полезно?
Импорт/экспорт Grafana dashboards

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

И этих дашбордов более нескольких десятков.

Сразу дока, API - и погнали. Есть на импорт/экспорт, а значит кто-то уже писал автоматизацию.

Полез я в интернет, и сразу наткнулся на github gists, где разные ребята в коментах писали свои версии скриптов. Но вроде же дожно быть что-то более продакшн реди? И да, есть либа:
💥 https://github.com/hagen1778/grafana-import-export

Она заэкспортила дашборды, и пришла очередь фиксить json.

Для этого есть тулза jq, не самая удобная, но работает. Пример, где в slug меняется поле:
jq '(.meta.slug |= "aws-" + .)' $filename - на поиск синтаксиса ушло 2 чашки чая 🙁

Датасорсы в графиках лучше менять с помощью sed:
sed 's/"datasource": "influxdb"/"datasource": "new-datasource"/g' - через jq тяжело обойти все вложенные ключи, и не сломать лишнего

Обязательно нужно поменять title - иначе ничего работать не будет (упадет с ошибкой):
jq '(.dashboard.title |= "AWS | " + .)' $filename - тут добавляется 'AWS | ' и существующее имя дашборда

Это все очевидные вещи, но в конце ждал сюрприз. Ошибка The dashboard has been changed by someone else. Хм, что же это значит? Сразу мысль подсказала посмотреть на ключи version и id. Ключа с версией небыло, а вот id был. Где-то на гитхабе советовали засетить его как null, или вообще удалить. Ну я и удалил:
jq 'del(.dashboard.id)' $filename

После этого дашборды заэкспортились и все взлетело.

Надеюсь, сохранил вам несколько часов гугления и набивания шишек 😄
Давайте поменяем Bamboo на Concource CI

Если у кого-то проблемы проблемы с Jenkins/Travic/Circle/otherCI/etc, то скорее всего причина не в туле: причина в подходе

There’s no perfect CI. They all have different features

https://cintia.me/blog/post/ci-tool/
​​Знакомьтесь: это Volodymyr Tsap, у него своя девопс-контора и он зарабатывает явно больше 6.9к 💵💵💵

Как? Что нужно учить? Что нужно знать?

Обычно о таких вещах не рассказывают. Он уже провел миллион собеседований, и готов поделится что нужно качнуть для 6.9к 🔥🔥🔥

Думаю, такая инфа стоит явно дороже билета на конфу:

https://devopsstage.com/

P.S. Вова, будешь должен!
Если кто-то выпал на месяц и очень об этом сожалеет: актуальный девопс-дайджест:
https://dou.ua/lenta/digests/devops-digest-22/

Еще недавно проскакивала статейка, как стать девопсом (формулировка 😂):
https://dou.ua/lenta/articles/senior-devops/

И еще по версии DOU в разделе DevOps в среднем всего 1,6 отклика на вакансию: это отлично. Есть спрос, но маловато предложения. 😎
Нашел очень интересный топик на Stackoverflow, там есть сравнение основных решений по генерации Kubernetes манифестов: Helm vs Draft vs Ksonnet

https://stackoverflow.com/a/48896587/5004288

Что интересно, в SRE Workbook написано: для простых апок и инфраструктур делайте YAML (как удобно, helm etc - не важно), а для средне-сложных смотрите на jsonnet/ksonnet. (Это не точная цитата). Я задался вопросом, почему так - и нашел ответ по ссылке.

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

https://hackit.ua/

Достаточно неплохие докладчики (СЕО, Founders, CTO) и конкурсы интересные 😂

И промокод на -55%: DOORKEYS

За инфу и промо спасибо Алексею Барабашу, DevOps Team Lead в NDA 👆👆👆
Дедушка

Нетехнический пост, но очень важный: позвоните своим родным. Скажите как вы их любите.

Дедушкам, бабушкам, маме и папе.

Кажется, что они будут с нами всегда. Но это не так.

Сделайте то, что хотели сделать. И не откладывайте.

У меня очень неожиданно умер Дедушка.

На этой неделе здесь не будет постов. Извините.
Гитхаб прилег (всю ночь восстанавливают сторедж):

https://status.github.com/messages
FYI: в AWS NLB можно прицепить Elastic IP (для меня было неожиданно):

Support for static IP addresses for the load balancer. You can also assign one Elastic IP address per subnet enabled for the load balancer.


https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html