#cqrs #eda
Ох, как же я сочувствую автору поста, ведь в свое время мы прошли через похожий ад. Пожалуй даже добавлю еще 3 граблины:
0. Если хочешь запилить свой CQRS фреймворк... пожалуйста, не надо. Мало того, что этого шлака и так полно на гитхабе, так еще самопальный комбайн(а там писать так-то не мало, вот пруф) обязательно взорвет прод.
1. Спорим, что можно жить без CQRS?
2. Когда Вернон писал , что границы strong consistency ограничены агрегатом он имел в виду "агрегат должен быть согласован", а не "да пофигу что там за границами агрегата". Если бизнесу нужна консистентность ты спрашиваешь насколько высоко делаешь консистентность
Спасибо за внимание, не овертаймьте 😉
Ох, как же я сочувствую автору поста, ведь в свое время мы прошли через похожий ад. Пожалуй даже добавлю еще 3 граблины:
0. Если хочешь запилить свой CQRS фреймворк... пожалуйста, не надо. Мало того, что этого шлака и так полно на гитхабе, так еще самопальный комбайн(а там писать так-то не мало, вот пруф) обязательно взорвет прод.
1. Спорим, что можно жить без CQRS?
2. Когда Вернон писал , что границы strong consistency ограничены агрегатом он имел в виду "агрегат должен быть согласован", а не "да пофигу что там за границами агрегата". Если бизнесу нужна консистентность ты
Спасибо за внимание, не овертаймьте 😉
Medium
Why we failed implementing CQRS in Microservice architecture.
CQRS is a useful pattern when having a complex business application where reading and writing have separate requirements. For an example…
Forwarded from DevOps&SRE Library
https://dbdb.io
Отличный сайт с кратким описание особенностей почти всех существующих баз данных.
Несколько примеров:
etcd: https://dbdb.io/db/etcd
postgresql: https://dbdb.io/db/postgresql
mysql: https://dbdb.io/db/mysql
redis: https://dbdb.io/db/redis
memcached: https://dbdb.io/db/memcached
mongodb: https://dbdb.io/db/mongodb
cassandra: https://dbdb.io/db/cassandra
Отличный сайт с кратким описание особенностей почти всех существующих баз данных.
Несколько примеров:
etcd: https://dbdb.io/db/etcd
postgresql: https://dbdb.io/db/postgresql
mysql: https://dbdb.io/db/mysql
redis: https://dbdb.io/db/redis
memcached: https://dbdb.io/db/memcached
mongodb: https://dbdb.io/db/mongodb
cassandra: https://dbdb.io/db/cassandra
Forwarded from Пятничный деплой
Крутой инструмент для нагрузочного тестирования https://medium.com/swlh/beginners-guide-to-load-testing-with-k6-85ec614d2f0d #loadtesting
Medium
Beginner’s Guide to Load Testing with k6
Part 1 — The Prelude
Пятничный деплой
Крутой инструмент для нагрузочного тестирования https://medium.com/swlh/beginners-guide-to-load-testing-with-k6-85ec614d2f0d #loadtesting
GitHub
GitHub - tsenart/vegeta: HTTP load testing tool and library. It's over 9000!
HTTP load testing tool and library. It's over 9000! - tsenart/vegeta
Forwarded from AvitoTech
Завтра в 12:30 начинаем прямую трансляцию с митапа Backend United: Шаурма
На митапе инженеры из Авито, Мэничата и Severstal Digital расскажут про реальный опыт переезда на микросервисы, способы синхронного и асинхронного взаимодействия, организацию потоков данных и роль Кафки в микросервисной архитектуре.
Если не получится прийти на встречу, подключайтесь к эфиру 👇🏻
https://youtu.be/5-5mpnX-qgI
На митапе инженеры из Авито, Мэничата и Severstal Digital расскажут про реальный опыт переезда на микросервисы, способы синхронного и асинхронного взаимодействия, организацию потоков данных и роль Кафки в микросервисной архитектуре.
Если не получится прийти на встречу, подключайтесь к эфиру 👇🏻
https://youtu.be/5-5mpnX-qgI
YouTube
Backend United #5: Шаурма — микросервисы, распределенные системы и Кафка
7 декабря в офисе Авито пройдёт пятый митап в серии Backend United, получивший название «Шаурма». Эта встреча ориентирована на архитекторов и на разработчиков.
О чём хотим поговорить? Многие компании рано или поздно переезжают с монолита на микросервисы.…
О чём хотим поговорить? Многие компании рано или поздно переезжают с монолита на микросервисы.…
Forwarded from Scala Nishtyaki Channel
pfp-scala.pdf
968.8 KB
Practical FP in Scala a hands-on approach by Gabriel Volpe, версия для ознакомления (и готово только 75%), поддрежите автора, если вам она зашла. Пдфка от 5го декабря. Поддерживать здесь: https://leanpub.com/pfp-scala
Forwarded from kamyshev.code
Джуность
Самое сложное в изучении программирования — знать, что изучать. Ребята из Anmedio. запустили клевый проект — Джуность. Это простая таблица, которая показывает какие знания они ожидают увидеть у специалиста того или иного уровня. Не нужно воспринимать эти пункты как непогрешимую истину, но обратить на них внимания при составлении индивидуального плана обучения определенно стоит.
#рост
Самое сложное в изучении программирования — знать, что изучать. Ребята из Anmedio. запустили клевый проект — Джуность. Это простая таблица, которая показывает какие знания они ожидают увидеть у специалиста того или иного уровня. Не нужно воспринимать эти пункты как непогрешимую истину, но обратить на них внимания при составлении индивидуального плана обучения определенно стоит.
#рост
Forwarded from Enterprise Containers
Добрался описать наш IBM Managed Kubernetes и Managed OpenShiift. Статья скорее с техническим уклоном, а не маркетинговым. Как строили, что использовали и к чему стремились. Будут пожелания по раскрытию каких-либо тем - пишите вопросы под статьей. https://habr.com/ru/company/ibm/blog/479664/
Хабр
Как работает managed kubernetes и managed OpenShift в IBM Cloud. Часть 1 — архитектура и безопасность
Разработку можно сравнить с картиной, где художник — ведущий разработчик. Создание элегантного микросервисного приложения — с творениями лучших архитекторов — модернистов. А вот поставить процесс...
#docs
Недавно тут случилось зарамсить по поводу документации. Мой поинт был в том, что чем больший процент документации генерится из кода, тем лучше, ибо эта штука всегда актуальная и бла-бла.
Поинт более опытных коллег заключался в том, что сгенерированные доки конечно актуальные, но чуть менее чем полностью бесполезные. Все, конечно, остались при своем, но вот тут вот внезапно натыкаюсь на пост и прямо вот сложилось.
Раньше я думал, что часть доков надо генерить, а остальное писать(генерим апи доки сваггером, датафлоу и деплоймент схему из dt/service mesh DAG'a и кубера ну и кейсы Cucumber'ом + рисуем руками фичи, и интеграции с 3rdparty)
Щас же пришел инсайт, что надо не генерить ИЛИ рисовать, а генерить И дорисовывать. Т.е. взяв, для примера, схему апи, надо в шапку сваггера руками положить пример хеппифлоу в каком-то виде(сикуенс диаграммы или еще как-то), с человеческим описанием что делает апи и для чего нужно + возможно указать акторов.
Кароч вот такие мысли, котаны. Что думаете?
Недавно тут случилось зарамсить по поводу документации. Мой поинт был в том, что чем больший процент документации генерится из кода, тем лучше, ибо эта штука всегда актуальная и бла-бла.
Поинт более опытных коллег заключался в том, что сгенерированные доки конечно актуальные, но чуть менее чем полностью бесполезные. Все, конечно, остались при своем, но вот тут вот внезапно натыкаюсь на пост и прямо вот сложилось.
Раньше я думал, что часть доков надо генерить, а остальное писать(генерим апи доки сваггером, датафлоу и деплоймент схему из dt/service mesh DAG'a и кубера ну и кейсы Cucumber'ом + рисуем руками фичи, и интеграции с 3rdparty)
Щас же пришел инсайт, что надо не генерить ИЛИ рисовать, а генерить И дорисовывать. Т.е. взяв, для примера, схему апи, надо в шапку сваггера руками положить пример хеппифлоу в каком-то виде(сикуенс диаграммы или еще как-то), с человеческим описанием что делает апи и для чего нужно + возможно указать акторов.
Кароч вот такие мысли, котаны. Что думаете?
Medium
Technical Documentation: A Different Approach
Make Documentation That Answers Questions, Not Explains Code
Если бы SMART-цели придумали в России:
В – время (time bound)
О – оцениваемость (mesurable)
Д – достижимость (achievable)
К – конкретность (specific)
А – адекватность (relevant)
В – время (time bound)
О – оцениваемость (mesurable)
Д – достижимость (achievable)
К – конкретность (specific)
А – адекватность (relevant)
Forwarded from Datalytics
Статья о том как анализировать большой объем данных с помощью библиотеки vaex
https://towardsdatascience.com/how-to-analyse-100s-of-gbs-of-data-on-your-laptop-with-python-f83363dda94
https://towardsdatascience.com/how-to-analyse-100s-of-gbs-of-data-on-your-laptop-with-python-f83363dda94
Medium
How to analyse 100 GB of data on your laptop with Python
Your laptop is way more powerful than you think. Unleash its full potential with the Vaex dataframe library.
Forwarded from Архитектура ИТ-решений
Поделюсь заметкой про AIOps (в основном обзор вендоров по Gаrtner-овскому отчету; а внутри еще ссылка на книжку «AIOps for Dummies») https://medium.com/@antonkasimov/%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B9-aiops-%D0%BF%D0%BE-%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D1%8F%D0%BC-gartner-9a5e5758e237
Medium
Несколько решений AIOps по рекомендациям Gartner
Специально для телеграм-канала @monitorim_it.
Forwarded from dd if=/dev/stuff of=/dev/tg
Выложили видео с 46-ой встречи MocscowJS: https://meetup.tinkoff.ru/events/moscowjs-46
Мой доклад: https://www.youtube.com/watch?v=MD49vFaQ4QA
Мой доклад: https://www.youtube.com/watch?v=MD49vFaQ4QA
dd if=/dev/stuff of=/dev/tg
Выложили видео с 46-ой встречи MocscowJS: https://meetup.tinkoff.ru/events/moscowjs-46 Мой доклад: https://www.youtube.com/watch?v=MD49vFaQ4QA
#fp
А вот ссылка на упомянутую в докладе статью.
BTW бомбический весь сайт Maarten Fokkinga т.к. там у него пдфки всех его работ
А вот ссылка на упомянутую в докладе статью.
BTW бомбический весь сайт Maarten Fokkinga т.к. там у него пдфки всех его работ
Forwarded from DevOps&SRE Library
Are_you_ready_for_production.pdf
1.5 MB
Are you ready for production?
Презентация про то, как должен выглядеть production launch checklist от Jaana Dogan (Google).
Видео: https://youtu.be/YptJ2rrGAYY
Презентация про то, как должен выглядеть production launch checklist от Jaana Dogan (Google).
Видео: https://youtu.be/YptJ2rrGAYY
Forwarded from oleg_log (Oleg Kovalov)
68 постов и докладов о том, когда микросервисы не взлетели https://microservices.fail/
Бегло глядя вижу некоторые посты ни о чём, но некоторые хорошие и основаны на болезненном опыте. Советую полистать.
или просто ссыль на ехель док https://docs.google.com/spreadsheets/d/1vjnjAII_8TZBv2XhFHra7kEQzQpOHSZpFIWDjynYYf0/edit#gid=0
UPD: хах, зоопарк анонимных зрителей(вверху там аватарки с животными) взорвался после поста :D
Бегло глядя вижу некоторые посты ни о чём, но некоторые хорошие и основаны на болезненном опыте. Советую полистать.
или просто ссыль на ехель док https://docs.google.com/spreadsheets/d/1vjnjAII_8TZBv2XhFHra7kEQzQpOHSZpFIWDjynYYf0/edit#gid=0
UPD: хах, зоопарк анонимных зрителей(вверху там аватарки с животными) взорвался после поста :D
Forwarded from Datalytics
Интересная статья про выстраивание аналитической инфраструктуры на основе Hadoop и Apache Airflow
https://habr.com/ru/company/mailru/blog/479900/
https://habr.com/ru/company/mailru/blog/479900/
Хабр
Клиентоориентированный Data Lake в игровой компании
Источник Привет, Хабр! Меня зовут Максим Пчелин, и я руковожу разработкой BI-DWH в MyGames (игровое подразделение Mail.ru Group). В этой статье по мотивам наше...
I hate overtime
tapl.pdf
Вот, тащем-то, цитата-ответ на вопрос "зачем в ЯП вообще нужны типы":
Современные технологии разработки программного обеспечения располагают широким репертуаром формальных методов (formal methods),
которые помогают убедиться, что система ведет себя в соответствии с
некоторой спецификацией ее поведения, явной или неявной. На одном
конце спектра находятся мощные конструкции, такие как логика Хоара,
языки алгебраической спецификации, модальные логики и денотационные семантики. Они способны выразить самые широкие требования к
корректности программ, однако часто очень трудны в использовании и
требуют от программистов высочайшей квалификации. На другом конце спектра располагаются намного более скромные методы. Настолько
скромные, что автоматические алгоритмы проверки могут быть встроены в компиляторы, компоновщики или автоматические анализаторы
программ, а применять их могут даже программисты, не знакомые с теоретическими основами этих методов
Современные технологии разработки программного обеспечения располагают широким репертуаром формальных методов (formal methods),
которые помогают убедиться, что система ведет себя в соответствии с
некоторой спецификацией ее поведения, явной или неявной. На одном
конце спектра находятся мощные конструкции, такие как логика Хоара,
языки алгебраической спецификации, модальные логики и денотационные семантики. Они способны выразить самые широкие требования к
корректности программ, однако часто очень трудны в использовании и
требуют от программистов высочайшей квалификации. На другом конце спектра располагаются намного более скромные методы. Настолько
скромные, что автоматические алгоритмы проверки могут быть встроены в компиляторы, компоновщики или автоматические анализаторы
программ, а применять их могут даже программисты, не знакомые с теоретическими основами этих методов
Можно по-разному относиться к Эвансу и его трудам, но байка про Китайскую стену -- однозначно шедевр!
To protect their frontiers from raids by neighboring nomadic warrior tribes, the early Chinese built the Great Wall. It was not an impenetrable barrier, but it allowed a regulated commerce with neighbors while providing an impediment to invasion and other unwanted influence. For two thousand years it defined a boundary that helped the Chinese agricultural civilization to define itself with less disruption from the chaos outside.
Although China might not have become so distinct a culture without the Great Wall, the Wall's construction was immensely expensive and bankrupted at least one dynasty, probably contributing to its fall. The benefits of isolation strategies must be balanced against their costs. There is a time to be pragmatic and make measured revisions to the model, so that it can fit more smoothly with foreign ones.
To protect their frontiers from raids by neighboring nomadic warrior tribes, the early Chinese built the Great Wall. It was not an impenetrable barrier, but it allowed a regulated commerce with neighbors while providing an impediment to invasion and other unwanted influence. For two thousand years it defined a boundary that helped the Chinese agricultural civilization to define itself with less disruption from the chaos outside.
Although China might not have become so distinct a culture without the Great Wall, the Wall's construction was immensely expensive and bankrupted at least one dynasty, probably contributing to its fall. The benefits of isolation strategies must be balanced against their costs. There is a time to be pragmatic and make measured revisions to the model, so that it can fit more smoothly with foreign ones.
Forwarded from AvitoTech
Опубликована запись доклада Владимира Алёшина про хранимки с предновогоднего Постгрес-митапа
Хранимые процедуры рассмотрели с разных сторон: глазами DBA-инженера, разработчика баз данных и разработчика серверной части. Посмотрите, если интересуетесь темой → https://youtu.be/bZcwROoaqfs
Хранимые процедуры рассмотрели с разных сторон: глазами DBA-инженера, разработчика баз данных и разработчика серверной части. Посмотрите, если интересуетесь темой → https://youtu.be/bZcwROoaqfs
YouTube
Владимир Алёшин «Хранимки as code»
11 декабря 2019 Предновогодний Постгрес-Митап
Владимир Алёшин «Хранимки as code»
В рамках доклада поговрим о хранимых процедурах и функциях и коде внутри базы данных в целом. Посмотрим на хранимки с разных сторон: глазами DBA, разработчика баз данных и…
Владимир Алёшин «Хранимки as code»
В рамках доклада поговрим о хранимых процедурах и функциях и коде внутри базы данных в целом. Посмотрим на хранимки с разных сторон: глазами DBA, разработчика баз данных и…