I hate overtime
866 subscribers
129 photos
4 videos
54 files
961 links
Some DevOps, SRE and IT development stuff
Download Telegram
Нашел тут видос 2хлетней давности про то как устроен Slack. Кароч, парни, как-то вот у них все и без ваших кафок-кубернетесов-микросервисов работает.
Более того, судя по стек-шаре они и до сих пор так работают и отлично себя чувствуют
#fp #books
Ой, котаны, че откопал! Ловите знаменитый курс по ФП из Кембриджа от Харрисона с переводом. Достаточно академизма, достаточно примеров, все прям шикарно.
Готовая пдфка в релизах репы, собрать из сорцов у меня не получилось(возможно плохо собирал)
Forwarded from Sergey Sporyshev
Коллеги друзья!
Сегодня очень крутой день)
Сегодня в официальном сторе Grafana появилась первая версия нашего (ITSumma/DevOpsProdigy) плагина для k8s
https://grafana.com/grafana/plugins/devopsprodigy-kubegraf-app
Мы ждали принятия пул-реквеста целых 22 дня
и оно свершилось)))

Плагин умеет:
1) строить красивую карту всех ваших приложений в кластере и рисовать рядом зелено-желто-красные лампочки означаюшие статус живости вашего приложения
2) красиво показывать какой под на какой ноде находится в данное время
3) выдавать сводную статистику о том, что в кластере идет не туда)
4) выдавать информацию с динамикой по загрузке конкретной ноды кластера
5) поставляется с большой пачкой дашбордов (мониторинг ноды, пода, деплойментов, демонсетов, стейтфулсетов)

Зачем и почему мы это сделали:
1) Плагина с подобной функциональностью в мире только 1 штука, официальный плагин от GrafanaLabs и он не поддерживается уже больше года
2) Просто мы можем себе это позволить

Лайк, шер, подписка, звездочка на гитхабе, ишшуи, пул-реквесты - приветствуются
https://github.com/devopsprodigy/kubegraf
Из разговора с коллегой:
"Основная проблема индустрии в том, что 90% кода пишется либо джунами, которые еще не читали Макконела, либо мидлами, которые уже читали Эриха Гамму"(с). Чет в голосину
Котаны, я тут давно одну мысль вынашиваю, вот решил поделиться. Речь пойдет о DRY и инкапсуляции в ООП.
Все 100 раз слышали мантру, что дублировать код грешновато и надо инкапсулировать дублирующуюся функциональность, используя все имеющиеся для этого средства вашего любимого ЯП(наследование, композицию, все чудеса GoF и т.п.). Обычно тут аппелируют к расширяемости, поддерживаемости и т.д.
В теории все шоколадно конечно, но в постоянно меняющейся среде все эти замечательные абстракции могут превратиться в тыкву протекающие, коллеги начнут путаться в этих бесконечных "фабриках сервисов стратегий" и в один прекрасный день кто-то все это снесет, построив на руинах еще одну такую же башню из слоновой кости. Знакомо?
Более того, в модных нынче микросервисах дублирование считается нормальным(ну по-крайней мере меньшим грехом чем связность сервисов как в классическом SOA). Оттуда же растет популярность сервисных каркасов(шаблонов проектов типа create-react-app или dotnet new), где через cli создается костяк проекта, который можно менять как душе угодно.
Кароч вот такая мысль, что думаете?
Мое мнение, что тут отлично работает правило 3х: 3 раза задублировал, значит надо инкапсулировать, а до этого нинада.
UPD: речь тут не про выделение кода в методы, а скорее, про ООП головного мозга с абстрактными классами, хелперами и всякими мутными стратегиями на каждый чих
И, раз уж почти пятница, вот вам крутой канал с перлами Миловидова: @milovidov_perls
Не самый короткий, но довольно полезный текст (с хорошими ссылками) про CAP-теорему, панк-рок и "Войну и мир" Льва Толстого http://www.julianbrowne.com/article/brewers-cap-theorem
#dotnet
dotnet new templates tips&trics
1. У каждого шаблона есть стандартный параметр name, который сильно упрощает жизнь: он переименовывает проект и фиксит все неймспейсы. Что бы это добро заработало надо не забыть поставить sourceName пропертю, иначе переименовывать -n будет только папку проекта

2. optional content отлично работает со всеми типами файлов. Для этого директивы #if и #endif просто надо закомментить. Например, что бы убрать ненужный пакет из .csproj:
<!—#if (NotNeedThis)—>
<PackageReference Include="MyPkg" Version="1.0.0" />
<!--#endif-->

3. у symbols есть недодокументированный(в одних wiki есть, в других нету, intelliSence не видит) параметр fileRename, который позволяет переименовывать файлы по шаблону. Например вот такое поменяет все буквы "а" в названиях всех файлов на буквы "с":
"acReplacer": {
"type": "parameter",
"defaultValue": "c",
"fileRename": "a"
}
#k8s
Тут подъехали первые впечатления от 3го хельма(в целом положительные) Особенно интересными кажутся library charts и lua templates, но и, конечно, рамсам с безопасниками за тиллер пришел конец
#search
Ваще-то не люблю подкасты, но вот тут внезапно интересно
Forwarded from AvitoTech
Как работает поиск?

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

Ссылки на выпуск и полезные материалы по теме можно найти на сайте подкаста → http://amp.gs/NMyM
Statistics_cheat_sheet.pdf
1.3 MB
#datascience
Четкая шпаргалка по матстату
#datascience
Крутая инструкция и просто интересная статья про то как чистят датасеты на примере поиска депрессивных твитов
Forwarded from oleg_log (Oleg Kovalov)
Вчера нашел себе развлечение на ночь, залип над статьей от гугла по поводу их новой(?) БД - Procella. Аналитика на масштабируемых стероидах.

Интересно, что у них data cache-hit 90%, много С++ шаблонов и компайл-тайм штук для компиляции запросов, а еще все завязано на Borg(отца к8с)(что очевидно).

https://ai.google/research/pubs/pub48388/
Блин-блин-блин, это даже круче Uplink'a