I hate overtime
868 subscribers
129 photos
4 videos
54 files
961 links
Some DevOps, SRE and IT development stuff
Download Telegram
I hate overtime
#cqrs Всем привет, котаны, погнали дальше с нашими CQRSами. Как бы нам еще подтюнить наш RP? А что если вместо ванильной 3й нормальной формы, в которой лежат данные в нашем WP заиметь сразу хранилище с готовыми к выдаче на клиент данными? Такой себе локальный…
#cqrs
Итак, подытожим: за возможность практически линейно скейлиться до небывалых высот мы заплатим:
- консистентностью данных
- конским порогом входа (нам нужен чувак, как минимум, умеющий в EDA, CQRS и DDD)
- риском выплюнуть пользователю мусор вместо данных из нашего RP, если считаем аггрегаты
- скотски запутанной логикой на сагах и FSM

Выглядит не очень радужно, правда? На самом деле все не так плохо. Есть очень много областей, где можно уверенно тащить cqrs и не знать горя. Отличный пример -- уже упоминавшиеся выше нотификации. Новостные ленты, тоже отлично строятся на cqrs. Более того, я встречал достаточно много людей успешно выстраивающих приложения на cqrs и в e-commerce и даже в финансовой сфере. Помимо этого, есть еще набор фреймворков c Lagom во главе для облегчения жизни и уменьшения бойлерплейта. Главное, тащем-то как и всегда, сначала думать головой а не просто делать так же как сосед слева😉
#sizing
Котаны, привет! Так уж получилось, что последнее время мне очень часто приходится считать сайзинг для всяких разных опенсурсных коробочек и, соответственно, всеми правдами и не правдами искать рекомендации от производителя по прожорливости их изобретений. И вот мне это надоело, так что решил тут сколлекционировать:
+ Apache Kafka
+ Dremio
+ Redis
+ Elasticsearch (здесь все сложно. По ссылке статья на хабре с кучей полезных ссылок на вебинары elastic'а с рекомендациями по расчетам)
+ MongoDb (тут видос. Извинити)
+ Postgres (пдфка про форк, но и к обычному постгресу подходит. Ну и отличный видос про настройку)
+ Kubernetes (раз и два)
+ etcd
+ minio
+ Prometheus память диски

Наверняка подъедет что-то еще, так что будут UPD
Forwarded from Bortlog
Recently I've got a few interns to look after and mentor, so one of them asked for some advice on improving their system design skills.
So I gave a long monolog on digging through the layers of abstractions and being curious and genuinely understanding how things work. After it, I suggested them to read a "Designing Data-Intensive Applications" book and also prepared a shortlist of talks that can work as conversation starter or places from where you can start digging deeper.
Here is the list:

https://youtu.be/WE9c9AZe-DY
https://youtu.be/j6ow-UemzBc
https://youtu.be/1TIzPL4878Q
https://youtu.be/CZ3wIuvmHeM
https://youtu.be/I32hmY4diFY
https://youtu.be/hnpzNAPiC0E
https://youtu.be/y2j_TB3NsRc
https://youtu.be/t7iVCIYQbgk
https://youtu.be/IO4teCbHvZw
https://youtu.be/6w6E_B55p0E
https://youtu.be/B5NULPSiOGw
https://youtu.be/_M-oHxknfnI
https://youtu.be/lKXe3HUG2l4
https://youtu.be/r-TLSBdHe1A
https://youtu.be/fU9hR3kiOK0
https://youtu.be/lJ8ydIuPFeU
https://youtu.be/5ZjhNTM8XU8
https://youtu.be/9RMOc0SwRro
https://youtu.be/tM4YskS94b0
https://youtu.be/H0i_bXKwujQ
https://youtu.be/m64SWl9bfvk
https://youtu.be/cNICGEwmXLU
https://youtu.be/em9zLzM8O7c
https://youtu.be/ohvPnJYUW1E
https://youtu.be/HJIjTTHWYnE

Write in the comments: what else would you recommend or what talk you'd add to the list.
Я сдул пыль со своего блога, немного его причесал и выложил туда все публичные статьи, которые писал про функциональное программирование, в том числе переведенные на английский статьи из цикла «Введение в fp-ts» с Хабра.
Встречайте: https://ybogomolov.me 🤘🏻

Серия "Intro to fp-ts":
https://ybogomolov.me/01-higher-kinded-types
https://ybogomolov.me/02-type-classes
https://ybogomolov.me/03-nullables-exceptions
https://ybogomolov.me/04-tasks

Серия #MonadicMondays:
https://ybogomolov.me/monadic-monday-compilation-april
https://ybogomolov.me/monadic-monday-compilation-may
https://ybogomolov.me/monadic-monday-compilation-june
https://ybogomolov.me/monadic-monday-compilation-july

Прочее:
Статья про типобезопасный фронт: https://ybogomolov.me/typesafe-typescript
Статья про пакет circuit-breaker-monad: https://ybogomolov.me/circuit-breaker-in-functional-world
Недавняя заметка про комментарии к функциям как образовательный ресурс: https://ybogomolov.me/comments-as-education

В дальнейшем все материалы, которые я буду создавать, будут в первую очередь публиковаться именно в блоге.
Forwarded from ДевОпс Інженер 🇺🇦 (Oleg Mykolaichenko)
Sloth, Pyrra

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

https://github.com/slok/sloth

Суть Sloth - описать SLO, дашборду и алерт как манифест в YAML, в OpenSLO формате. Прикол!

В README по ссылке есть пример, а в репозитории - helm чарт.

Дальше, в комментариях вижу:
https://github.com/pyrra-dev/pyrra

Pyrra - status page на анаболических стероидах и тестостероновых бустерах. Выглядит космически - собираем все сервисы платформы, и генерим одну UI для SLO. Бомба.

В issues спрашивают, будет ли поддержка описания в OpenSLO, ответ - ‘yes, for sure’.

Спонсор поста - @oleg_log, подсмотрел там эти решения.

Наша реализация с grafana-operator и GrafanaDashboard CRD внезапно стала выглядеть как Monitoring Platform 101, но уже отчетливо видно, где следующая итерация. 😅
ДевОпс Інженер 🇺🇦
Sloth, Pyrra Весной я упоминал спеку OpenSLO и вероятность реализации оператора, или контроллера по этой спецификации для создания дашбордов или алертов. Эта поделка была удачно забыта, но вчера в соседнем чатике нахожу тулу: https://github.com/slok/sloth…
вот люблю красивые решения для мониторинговых дашбордов с зонтиками, бантиками и интуитивным дрилл-дауном. Но тут нашел просто идеал дашборда.
Даже если выкинуть весь хайповый мусор типа AI и NLP, то оно красивое, удобное и полезное.
Самое интересное, что видосу уже 5 лет)
#postgres #db
Очень полезная статья про тюнинг чекпоинтов в постгресе + бонусом инструкция как рассчитывать размер WAL
#arch
Так уж получается, что последнее время на работе чаще рисую картинки в draw.io чем кодец в ide. И проблема обычно в том, как при разрастании картинки, не превратить ее в паутину из стрелочек. Недавно открыл для себя вот такое: https://blogs.mulesoft.com/api-integration/strategy/a-visual-language-for-digital-integration/ и пока что доволен как черт! Тем кто часто рисует data-flow диаграммы и страдает -- очень рекомендую!
Кстати, в блогпосте есть несколько ссылок на крутейшие книги по системной архитектуре. Подарочек тем, кому нечего читать;)
Всем привет! Котаны, а тут вышли видосы с последней Гидры.
Конфа вышла -- огонь! Бесспорным лидером по количеству докладов стал TLA+, но лично я дико кайфовал с доклада Naama Ben-David. Прям вся боль катастрофоустойчивости за полтора часа. Крайне рекомендую!
Дорогие подписчики, всегда старался держать канал в стороне от политики, но то что сейчас происходит -- это полный п$здец. Украинцы, держитесь! Сил вам и здоровья! #нет_войне
#security
Оказывается CISA(Американский аналог ФСТЭК) выпускает очень годные гайды по защите всего и вся. Вот, например, гайд по защите k8s.
Ради интереса поискал аналогичную инфу у ФСТЭК. Не нашел(
#network #proxy
В очередной раз объясняя коллеге как клиенты работают с HTTP-прокси(нет, не просто меняем урл на урл прокси-сервера) понял, что надо найти хорошую статью. Внезапно нашлось с трудом, так что решил поделиться
#auth #админство #security
Инструкция по настройке времен жизни токена в ADFS. Есть настройки и на SSO токена самого ADFS и SAML assertion’а. Хозяюшке на заметку так же полный список всех пропертей Relying Party Trust
#k8s
Все кубернетесоводы наверняка всё знают про ингресы, поэтому сегодня я вам принес про темную лошадку сетей k8s. Встречаем egress. Очень советую почитать тем, у кого лютуют безопасники вооруженные файрволами
#postgres
Думаю, что ко всем рано или поздно приходят безопасники и просят пошифровать уютненький кластер постгреса, но, к сожалению, в ванильном постгресе нет ничего для шифрования. Для тех кто долго и мучительно выбирал между pg_crypto/костылем на драйвере в ОРМ/LUKSом, чуваки из arctype сделали обзорный гайд во все это мракобесие.
Их рецепт по TDE в конце статьи не рабочий, но обзор тем не менее все еще годный
#devops #swarm
Для тех кто, как и я, все еще нежной любовью любит Docker Swarm обнаружил шикарный сайтец с набором гайдов по сворму. Тут желающие найдут инструкции как
- поднять ингрес на traefic без палок шишек и ручного vrrp
- настроить прометеус с нодэкспортерами (а с оверлейной сетью сворма это то еще испытание)
- кучу других вкусностей и полезностей
#как_это_работает
Котаны, у меня тут чутка прибавилось желания жить свободного времени и я решил вдохнуть в этот канальчик вторую жизнь и начну, пожалуй, с теперь (надеюсь) постоянной рубрики «как это работает». Так уж получилось, что я щас работаю в достаточно крупном вендоре отечественного ПО, которое вот только чайники не делает и могу чутка посливать вам инсайдерской инфы о том как устроены разные велелые програмки, которыми вы каждый день пользуетесь на рабочих местах)
Начнем, пожалуй, с того, с чем я имею дело каждый день, а именно, с кадрового документооборота (или просто КЭДО).
Вообще КЭДО, если сильно утрировать, это крайне простая штука: берем движок процессов (вполне сойдет всем знакомая Camunda), добавляем умение подписывать электронными подписями и вуаля! Охапка дров и КЭДО готов 🙂 На самом деле, все, конечно, несколько сложнее.
Для начала, подписей бывает 3: простая(ПЭП), неквалифицированная(НЭП) и квалифицированная(КЭП), и если вы хотите (а вы хотите) соблюдать законодательство, то вам придется скорее всего научиться во все 3. Законодательство, кстати, нам подарило всего-то 2 закона: № 63-ФЗ "Об электронной подписи" и № 377-ФЗ «О внесении изменений в Трудовой кодекс Российской Федерации», где первый рассказывает что такое ЭП, а второй какие документы можно подписывать какой ЭП. Внезапно, например, есть доки, которые до сих пор можно подписывать только ручкой в кадрах. Про то что такое ЭП, как ей подписывать и вот это все в следующий раз
Помимо подписей вам в вашем КЭДО еще крайне желательно было бы иметь архив. Дело в том, что ФЗ 377 еще и регламентирует сколько должны жить различные документы в вашем КЭДО и там, внезапно, есть доки со сроком жизни 75 лет (КАРЛ!). Вряд ли вы хотите хранить у себя в живой системе ПДФки 75летней давности, поэтому родина дала нам архив. Про архив тоже, видимо, будет отдельная часть.
Ну а так, накручиваем рюшек и бантиков и вот оно, цифровая трансформация вашего HR 🙂
Внезапно, спустя почти 5 лет собрался что-то попрограмировать на C# и понял, что за эти годы язык и все что вокруг него поменялось… примерно никак :) Такое ощущение, что за пять лет изобрели только рекорд-типы (HKT что бы сделать рекорды полезными и либы для рекордов, кстати, не изобрели) и фреймворк над фреймворком. Котаны, есть сишарперы, расскажите, может чего-то вышло таки полезного?
I hate overtime
#как_это_работает Котаны, у меня тут чутка прибавилось желания жить свободного времени и я решил вдохнуть в этот канальчик вторую жизнь и начну, пожалуй, с теперь (надеюсь) постоянной рубрики «как это работает». Так уж получилось, что я щас работаю в достаточно…
#как_это_работает
(продолжение)
и так, электронные подписи.
Как мы с вами выяснили, их бывает 3: простая(ПЭП), усиленная неквалифицированная(УНЭП) и усиленная квалифицированная(УКЭП). Собственно что это такое и почему их 3? Давайте начнем с простого, т.е. с ПЭП. На самом деле, ПЭП — это просто надпись на заборе «здесь был Вася». Т.е. прямо на документе рисуется некий штамп, который позволяет идентифицировать подписанта. Прям максимально тупой аналог автографа на бумаге. Ну ок, в чем проблема, зачем еще 2 подписи? На самом деле проблемы 2: во-первых, после подписания ПЭПом документ может быть изменен. Т.е. ПЭП по-дефолту никак не контролирует изменения документа после подписания. Ну ок, скажете вы, давайте добавим в ПЭП временную метку, или, еще лучше, хэш документа. Это конечно поможет, но есть еще и вторая проблема — лигитимность подписи. Дело в том, что подписывает ПЭПом сама система документооборота, которая не является СКЗИ и вообще-то не обеспечивает никаких функций безопасности, поэтому и подделать эту подпись абсолютно не проблема. И вот тут-то вот на сцену выходят усиленные подписи (УНЭП и УКЭП). Вот эти подписи уже формируются через взрослую криптографию и происходит это в специально-обученной программе Удостоверяющий Центр (или просто УЦ). Проще всего представить все это безобразие как некую пару ключей ассиметричного шифрования (тем более, что именно так и было в прошлой редакции закона о подписях). Т.е. у нас есть задача: всегда знать, что документ был подписан определенным лицом, ну и мы так-то отлично умеем ее решать. Даем «лицу» секретный ключ, которым он зашифрует(подпишет) документ, а всем остальным дадим публичный ключ, с помощью которого они смогут пойти и проверить подпись и вуаля! На самом деле, документ даже не шифруют, а от него берут хеш и хеш шифруют, формируя как раз ту самую подпись, которую просто кладут рядом с документом или даже встраивают в документ. Примерно так и работают УНЭП и УКЭП. Для того что бы гарантировать, что документ не будет изменен после подписания, в подписи присутствуют таймстампы. Ну кажется все, ща заживем, осталось только разобраться почему усиленных подписей аж целых 2. Тут все дело в этом самом УЦ, он в этой схеме выполняет аж 3 функции: во-первых, он выпускает те самые приватные ключи, которые позволяют подписывать документы, во-вторых, он готов эти ключи у себя хранить, а в-третьих, если очень попросить(и передать хеш документа), то может даже и подписать документ усиленной подписью с меткой времени и прочими крипто-прибаутками. Осталось всего-то ничего, этот УЦ у себя завести и вот тут вот интересное: если для работы с УНЭПами вам достаточно просто купить КриптоПро DSS или что-то похожее, то если вы хотите УКЭПы, то вам придется еще и вызвать товарищ-майора и пройти с ним в отделение 10 кругов ада, что бы ваш УЦ стал квалифицированным. Поэтому, УЦ для УКЭПов крайне мало и подавляющее большинство пользуется каким-нибудь Госключем, а УЦ для УНЭПов хоть и побольше, но тоже не в каждой избушке свой, потому что стоят они как крыло самолета, благо на просторах необъятной хватает SaaSных УЦ.
Ну ок, завели/нашли/украли себе УЦ, подписывать-то как? Вот тут все зависит от УЦ и его фичей, например, часто ваша подпись может лежать в некоем контейнере(читай КриптоПро CSP) прямо у вас на компьютере. Когда вам понадобилось что-то подписать, ваш клиент (читай браузер с КриптоПро плагином) вытаскивает подпись и прилепляет ее на документ. Классно-великолепно…а как быть, если у нас подписывает, например, мобильное приложение? Заставлять всех пользователей мобильный КриптоПро ставить? Что бы не хранить ключи локально в специальных криптоконтейнерах мы можем попросить за нас это делать УЦ. В этом случае, когда мы будем что-то подписывать, мы просто расчитаем хеш документа и отправим его в УЦ. УЦ каким-то образом нас поймет кто мы такие, найдет у себя наш ключ и подпишет им документ. Вуаля, мы великолепны! Теперь мы умеем гонять документы по процессам и даже подписывать их подписями. Теперь осталось всего-ничего: научиться их хранить