I hate overtime – Telegram
I hate overtime
866 subscribers
129 photos
4 videos
54 files
961 links
Some DevOps, SRE and IT development stuff
Download Telegram
Forwarded from AvitoTech
А/B эксперименты — ключевой инструмент принятия решений в Авито. Мы работаем с ним с помощью единой платформы. Она помогает быстро запускать эксперименты, контролирует нежелательные пересечения экспериментов, считает метрики, статистические тесты и визуализирует результаты.

Старший аналитик Данила Леньков рассказал в блоге на Хабре, как платформа устроена и показал интересные технические детали → http://bit.ly/abplatform
Программисту на заметку: как быть, если вы не согласны с решением, которое предлагает руководитель, менеджмент, архитектор, лид? Существует действенный метод, который в долгой перспективе, вероятно, единственно правильный. Называется DAC: disagree and commit. Другими словами, следует быть максимально красноречивым в фазе, когда идёт обсуждение, но когда решение было принято, надо перестать спорить и приложить максимум усилий к реализации именно этого варианта как своего собственного, даже если ты на 200% с ним не согласен https://en.m.wikipedia.org/wiki/Disagree_and_commit
Forwarded from HABR FEED + OPENNET
[Перевод] Представлен Polaris для поддержания кластеров Kubernetes в здоровом состоянии
https://habr.com/ru/post/454706/
Tags: Блог компании Флант, Системное администрирование, DevOps, Kubernetes, лучшие практики, ReactiveOps
Author Smetankk on #habrahabr
HABR FEED + OPENNET
[Перевод] Представлен Polaris для поддержания кластеров Kubernetes в здоровом состоянии https://habr.com/ru/post/454706/ Tags: Блог компании Флант, Системное администрирование, DevOps, Kubernetes, лучшие практики, ReactiveOps Author Smetankk on #habrahabr
Офигительная штука, которую обязательно надо попробовать... но что-то кол-во куберовских дашбордов медленно, но верно растет. Омниканальность, вернись! Я все прощу!
#codereview
Тут дяденька пишет серию постов про кодревью: https://www.michaelagreiler.com/code-review-blog-post-series/ можно почитать и что-то внедрить(если еще нет или не устраивает свое)
Кароч, парни, последнее время очень бомбит от отсутствия понимания каких-то основных вещей у коллег, так что в ближайшее время будет несколько постов от Кэпа, но, может кому-то пригодится(ну или хотя бы сочувствие вызовет😁)
Начнем с главного:
Замечательно, если ваш проект написан на bleeding edge технологиях, но все это не будет иметь никакого смысла, если при первом же инциденте вы не сможете провести инвестигейт потому что вы забыли добавить логирование.
Вы молодец, если ваша доменная модель идеально продумана, но все это вам не поможет если копируете сборки на сервер или мигрируете базу руками.
Кароч, вас ожидает фиаско, если в первую очередь вы не позаботитесь об инфраструктуре проекта. Первым же(фигурально) коммитом должно улететь логгирование и мониторинг, а в первом PR обязательно должно присутствовать решение по миграции базы и IaC. Да, возможно, сначала это будет логирование в файл и пачка шеллскриптов(если у вас, конечно, уже нет общего решения, но это отдельная история) Боб Мартин и https://sites.google.com/site/unclebobconsultingllc/a-mess-is-not-a-technical-debt вам в помощь. Смысл в том, что говнокод можно переписать, но переписывать будет некому если поцоны стерлись от постоянных овертаймов на релизах и инвестигейтах в MSA/SOA где половина сервисов не пишет логи, а вторая половина не прокидывает correlationId
Forwarded from FEDOR BORSHEV
Управление командой: военное и мирное время

Важная метафора в управлении командой — военное и мирное время. Война — это время напряжения всех сил: чаты в телеграме, ежедневные планы, быстрые и грязные фиксы в коде.

В мирное время всё, спокойно — планы больше растянуты по времени, коллеги не отвлекают друг-друга по пустякам. Больше внимания уделяется качеству кода и процессам, происходящим в команде.

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

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

Воевать хорошо раз в пару месяцев, не чаще. Частые войны выматывают команду и продукт — копится усталость и техдолг.

Важный навык CTO — не начинать войны по пустякам. Если вы собираетесь занять личные ресурсы у участников своей команды (а возможно и у их близких) — уж потрудитесь убедиться, что бизнес получит от этого соответствующую прибыль.
Forwarded from oleg_log (Oleg Kovalov)
Semantic это такая штука, для парсинга, анализа и сравнения кода на разных языках(Ruby, JS, TS, Python, Go, so on).

И вот они написали оду Хаскеллу, если кратко:

> Why is Semantic written in Haskell?

<...> In Haskell, control flow is not dictated by the language, but by the data structures used. The same syntax is used for nondeterministic and backtracking computations, for concurrency and parallelism, and for traditional imperative blocks: user-defined interpretation functions, rather than built-in language semantics, determine the way that code is executed. This would be nearly impossible to implement in a language like Go, given its limited support for abstraction and polymorphism, and a maintenance nightmare in Java: every single one of our 20k lines of code would need to be rewritten as a data structure rather than a function. This is simply not a realistic task in other languages; even functional languages like OCaml and Swift lack this level of abstraction.

https://github.com/github/semantic/blob/master/docs/why-haskell.md
FEDOR BORSHEV
Управление командой: военное и мирное время Важная метафора в управлении командой — военное и мирное время. Война — это время напряжения всех сил: чаты в телеграме, ежедневные планы, быстрые и грязные фиксы в коде. В мирное время всё, спокойно — планы больше…
Очень удачно совпал пост коллеги про войны и мой цикл батхертов)
Войны неизбежны. Они обязательно случаются и, да, они могут быть полезны для понимания поведения коллег в экстренных ситуациях(всегда полезно знать, на кого можно положиться, а кто в 6 встанет и уйдет и хоть трава не расти)
Но! Ни в коем случае на войну не берут новобранцев. В хотфиксах всегда(!) должны участвовать люди знающие кодовую базу и, тем более, понимающие флоу бизнес-процессов. Нет ничего страшнее ньюкамера, который патчит прод в самом хрупком и, по счастливой случайности, бизнес-критикал месте. В итоге вы получите только окончательно поломанный сервис, фрустрирующего сотрудника и недовольных клиентов
Нашел тут на просторах жуйреактора прикольную картинку: http://img0.reactor.cc/pics/post/full/it-%D1%8E%D0%BC%D0%BE%D1%80-geek-5239530.png
Привет, котаны! Пятничные мемы будут чуть позже, а пока мы продолжаем КВН.
Вот вы успешно пережили первый релиз и выпустились в прод, тем самым внедрясь в IT-ландшафт вашей компании. Вместе с вами, скорее всего, таких бедолаг еще N и еще M на подходе. И вот этот момент настал! Прилетает первый кросс-сервисный баг. Мы идем в логи(мы же все логируем, да?!) и выясняем, что в наш сервис запрос пришел от сервиса А, а в сервис А пришел от В а в..ну вы поняли. Причем мы-то "нормальные", мы в кассандру логируем с Id пользователя и таймстампом, а вот парни из А пишут в скуль и по имейлу юзера, а поцоны из В ваще в файл и там только урл запроса и время.
И вот прошел час, мы продрались через всю цепочку вызовов и дошли до сервиса Х, где...какой-то п$др решил писать логи в /dev/null.
Кароч, парни, рано или поздно придется стандартизировать инфраструктуру, и лучше это сделать раньше, т.е. при появлении нескольких активно общающихся между собой приложенек. Причем, касательно логирования, "сделать"-- это не значит кинуть эластик на тачку и сказать всем "я сделаль!". Необходимо определить ответственных за core(devOps культура вам в помощь), объявить новую подсистему де-юре стандартом(т.е. сервисы логирующие не так в прод просто не допускаются!) + необходимо сделать использование и подключение новой подсистемы удобной для внедрения и использования. Как минимум, написать(или найти) пакеты для подключения логирования для ваших сервисов, обладающих всем необходимым функционалом (correlationId, например)
В последствии можно сделать еще удобнее, создав сервисный каркас, а, когда ваше IT еще подрастет, то замутить Distributed Tracing, но удобные логи со связями — это мастхев.
P.S. все это справедливо для любой распределенной архитектуры, но, кмк, наиболее актуально для SOA с ее сильной связностью сервисов
P.P.S. где-то на хабре был чеклист, где инженер писал вещи без которых он сервисы в прод не пускает. Найду — поделюсь
Наглядненько
Если вам не хватает ИТ-архитекторов, то подумайте нельзя ли заменить их скриптами https://mxsmirnov.com/2019/06/06/architecture-as-a-code/
📺 А вы знали что вот здесь, доступно большое количество вебинаров по ansible и его применению? Вот если не знали, загляните между делом: https://www.ansible.com/resources/webinars-training

#видео #ansible
Forwarded from CatOps
​​Законы хреновых дашбордов -- статья скорее не про мониторинг, а про UX дашбордов вообще. Ясное дело, к мониторинг дашбордам это тоже относится.

Дельный совет из Твиттера: "follow the money" -- отражайте на дашбордах критические пути пользователя, которые приносят вам деньги, а не вообще всю доступную информацию, лишь бы было.

#observability #dashboard #ux