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 ITGram
Внеплановый пост о том, что вчера я зарелизил Dephell -- инструмент для управления Python проектами с целой коллекцией фич: работа с зависимостями в любом формате, умный резолвер, аудит безопаности, поиск устаревших пакетов, просмотр лицензий зависимостей, управление виртуальными окружениями, бамп версии проекта, сборка пакетов, установка CLI инструментов в изолированное окружение и ещё много-много всего. Работал я над этим больше полугода, причем последние 2 месяца full-time, по 12 часов в день. Всё для вас ❤️
Распространенное заблуждение о гибких методологиях, что в них люди пишут не пойми что, потому что не знают, что писать и зачем.

В то время, как эти ваши скрамы и канбаны придумали для продуктов, будущее которых не предопределено по умолчанию. Именно не предопределено, потому что вы знаете что пишете и зачем (т.е. для каких потребителей и решения каких проблем), но вы не знаете, чем станет ваш продукт через месяц, полгода, год.

Идея разбивать большой проект на много-много маленьких задачек появилась в следствие необходимости “доставлять” часто, но маленькими порциями в качестве откупа.

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

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

Но если вы мелкий мамкин пет прожект, то это не значит, что нужно писать функционал, не разобравшись в потребностях бизнеса и/или конечного пользователя. Позволю себе процитировать умного человека.

"Without requirements or design, programming is the art of adding bugs to an empty text file." (с) Louis Srygley
#microservices
Подъехал лонгрид про антипатерны микросервисов от гуру: https://microservices.io/microservices/antipatterns/-/the/series/2019/06/18/microservices-adoption-antipatterns.html как удачно, все шишки в одном месте)
Очень даже познавательный такой лонгрид о комплексном мониторинге https://brunonetid.github.io/2019/07/09/camel-observability-openshift.html Почитаю еще раз на досуге, более внимательно
Forwarded from HighLoad++
Linux уверенно завоёвывает позиции основной ОС для баз данных. Это понятно, так как open source баз данных всё больше. Но есть одна проблема — производительность IO. Хорошо, что в Linux последние годы идет капитальный ремонт IO-стека и есть надежда на просветление.

Подробности — в расшифровке доклада Ильи Космодемьянского (Data Egret) на HighLoad++ 2018.
HighLoad++
Linux уверенно завоёвывает позиции основной ОС для баз данных. Это понятно, так как open source баз данных всё больше. Но есть одна проблема — производительность IO. Хорошо, что в Linux последние годы идет капитальный ремонт IO-стека и есть надежда на просветление.…
#devops #database
С IO действительно очень много проблем и очень сложно продраться через огромную кучу абстракций. Очень радует, что сейчас начали что-то делать с IO-стеком и есть подвижки. На счет баз, из моего(скудного) опыта, хочется посоветывать выбрать нормальную FS(ваш кэп). Лишние журналы, люто жрущие диск, не очень помогают базенке.
kubernetes_cheat_sheet_r1v1.pdf
110.4 KB
#k8s
Очередной набор cheat-sheetов подъехал, на этот раз от RedHat
Что-то очень орнул сегодня:
Две команды разрабатывает 2 "микросервиса". По лучшим традициям, сервисы связаны максимально жестко: практически на каждый call сервиса А идет запрос данных из сервиса В и наоборот. И вот в одном из сервисов, допустим В, парни придумали хранить несколько типов сущностей в одной скуль-таблице(Кодд, прости, мы все про...), но, со временем все же исправились и решили нормализовать. Вот только к таблице была прикреплена APIшка для сервиса А, которая теперь гордо возвращает 404 для большей половины запросов.
Дальше больше: дефект заметила команда сервиса В, которая добропорядочно отрепортила его в А а-ля чет у вас там пятисотит. После недолгого инвестигейта находится источник(404 из В) и тикет летит через забор. Но тут ребята категорично ответили, что ничего не меняли и ваще "сами мейнтейньте" и кинули обратно. Такой себе джира пинг-понг.
Мораль... если не умеешь в распределенные архитектуры, то может и не надо? А вот за Кодда обидно, конечно
#monitoring
Тут недавно произошла интересная история. Модно-молодежно собирая метрики в пром и прикрутив к нему графану и алертинг мы стали спокойно спать по ночам. Помимо традиционных алертов на ресурсы, кубер и каких-то бизнесовых показателей мы везде поставили алерты на отсутствие данных(сервис помер и ничего не отправляет). И вот в один прекрасный день в слак прилетает пачка зеленых алертов из категории "все пропало". Сразу зеленых, красных не было. Пошли разбираться: оказывается кубер решил перезагрузить прометеус и графана на несколько минут потеряла связь с промом что и вызвало недопонимание с ее стороны. Но! Так как алерты на отсутствие данных у нас были, а вот алертов на недоступность data source не было, то о падении мы узнали только пост-фактум.
История смешная, а ситуация страшная: если бы в этот момент свалился еще и прод или вырубился бы весь куб-кластер, то об этом бы мы узнали только от пользователей.
Кароч выводы мы сделали такие: алерты надо тестировать. Причем, перед этим, надо тщательно продумать и приоритезировать все кейсы. Ну и вот парочка крутых видосов про мониторинг\алертинг от Контура: раз два
Ну и куда же без пятничных мемесов
Forwarded from Evil Martians
Смотрите видео с выступления Сергея Долганова на #ДАМП с докладом про то, как типы и функциональный подход могут вдохнуть новую жизнь в создание контрактов для API:

https://www.youtube.com/watch?v=x_vN2a1BldY
📝 Коротко о том, что такое path юниты, и как с помощью systemd можно мониторить файлы в системе. https://www.redhat.com/sysadmin/introduction-path-units

#systemd #будничное #напочитать
⚙️ Любители sed'а, тут для вас интересное принесли - sed дебаггер - https://aurelio.net/projects/sedsed/ Занятная штука, попробуйте надосуге. 🙂

#bash #sed #фидбечат
Forwarded from Хекслет
Есть что-то в программировании красивое и завораживающее. Особенно, когда это круто визуализировано.

50+ алгоритмов сортировки за полчаса: https://youtu.be/FZ8FaztJGEo
Анкита Масанд написала статью про использование API для интернационализации приложений в JS — "New Intl APIs in JavaScript".

API интернационализации живёт в глобальном объекте Intl. В статье рассматривается несколько кейсов, где оно может быть полезно. Например, можно использовать Intl.RelativeTimeFormat для форматирования относительных дат ("минуту назад", "день назад", "через 10 дней" и т.п.). Intl.ListFormat для форматирования списков (можно использовать списки с конъюнкцией, дизъюнкцией или с обычным перечислением через запятую). Intl.NumberFormat используется для форматирования больших целых чисел (между разрядами числа в русскоязычном формате добавляются пробелы, в англоязычном — запятые). Для форматирования времени и дат используется Intl.DateTimeFormat.

Intl доступен во всех актуальных браузерах, но полнота имплементации от браузера к браузеру отличается. Например, Intl.RelativeTimeFormat не поддерживается в IE11 и Edge.

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

#js #i18n

https://blog.bitsrc.io/new-intl-apis-in-javanoscript-c50dc89d2cf3
Forwarded from oleg_log (Oleg Kovalov)
Elements of Programming by Alexander Stepanov and Paul McJones is now free.

Книга чуток математичная, но вдруг кому-то надо. Кстати 2019, то есть самая новенькая.

http://elementsofprogramming.com/