Russian Association of Software Architects
4.35K subscribers
84 photos
9 videos
15 files
295 links
Канал самоуправляется коллегией: @sergey486 и @emacsway . Бот для вступления в авторский коллектив: @ru_arc_bot

Предложить доклад для митапа: @ru_arc_meetup_bot

Группы:
@ru_arc_chat
@rasa_business
@archicases

Рекламу не размещаем.
Download Telegram
Понадобилось разобраться с Dotted Version Vectors, попалась эта статья, описание принципа действия в которой для меня оказалось самым понятным из всего, что перекопал. Когда понятен принцип – в детали погружаться проще.
Возможно, кому-то еще поможет 👌

https://queue.acm.org/detail.cfm?id=2917756

#DistributedSystems
👍4
Antonio_Bucchiarone_et_al_Microservices_Science_And_Engineering.pdf
14.4 MB
Сборник статей «Microservices: Science and Engineering»

Part I Opening
- Microservices: The Evolution and Extinction of Web Services?
- Size Matters: Microservices Research and Applications

Part II Migration
- Migrating to Microservices
- Assessing Your Microservice Migration

Part III Modeling
- Microservices Anti-patterns: A Taxonomy
- Modeling Microservice Conversations with RESTalk
- Graphical and Textual Model-Driven Microservice Development

Part IV Development and Deployment
- A Formal Approach to Microservice Architecture Deployment
- Autonomic Decentralized Microservices: The Gru Approach and Its Evaluation
- A Hybrid Approach to Microservices Load Balancing

Part V Applications
- Towards the Digital Factory: A Microservices-Based Middleware for Real-to-Digital Synchronization
- Using Microservices to Customize Multi-tenant Software-as-a-Service
- You Are Not Netflix

Part VI Education
- DevOps and Its Philosophy: Education Matters!
👍4
Russian Association of Software Architects
Наконец, подбираемся к Event Sourcing: 💬 "Что особенно важно, никакая информация не удаляется из такого хранилища и не изменяется. Как следствие, от набора CRUD-операций в приложениях остаются только CR. Также отсутствие операций изменения и/или удаления…
Event Sourcing - где посмотреть примеры реализации?

1) "Simple CQRS example" by Greg Young

2) "Microsoft patterns & pratices CQRS Journey sample application" (CQRS, DDD, Event Sourcing, SAGA transactions)

3) "Sample Bounded Contexts from the book "Implementing Domain-Driven Design"" by Vaughn Vernon

4) "Sample Bounded Contexts for C#.NET from the book "Implementing Domain-Driven Design"" by Vaughn Vernon

5) "go-iddd - showcase project for implementing DDD in Go" by Anton Stöckl

6) Варианты реализации OO/Functional Aggregates by Chris Richardson:
- Traditional OO mutable Domain Objects
- Functional Scala witn immutable Domain Objects
- Hybrid OO/Functional Scala with immutable Domain Objects

7) "eventuate-examples" by Chris Richardson

8) "FTGO example application. Example code for the book Microservice patterns" by Chris Richardson

9) "Hands-On Domain-Driven Design with .NET Core, published by Packt" by Alexey Zimarev

10) "dotnet-sample" - Sample application using Eventuous .NET by Alexey Zimarev

11) "Sample code for the book Principles, Practices and Patterns of Domain-Driven Design" by Scott Millett, Nick Tune

12) "Elastic Event Store" by Vladik Khononov - A fully serverless storage for event sourcing-based systems.

Вариант Kamil Grzybek пропущен по его желанию.

Присылайте свои варианты 🙂))

#EventSourcing #DDD
🔥9👍3
Russian Association of Software Architects
Можно ли изменять несколько агрегатов одной транзакцией? В профессиональной среде существует популярное мнение что нельзя. Этот вопрос затрагивает Vladimir Khorikov в статье "Crossing aggregate boundaries", и говорит, что: > I hear this guideline a lot as…
Process Manager - где посмотреть?

В этом канале уже дважды упоминалось интервью "Modeling Uncertainty with Reactive DDD" by Vaughn Vernon reviewed by Thomas Betts, в котором V.Vernon предлагает использовать Process Manager Pattern для обработки процессов, охватывающих несколько агрегатов в условиях Eventual Consistency.

Посмотреть реализацию в исполнении V. Vernon, включая ProcessTimedOut (о чем часто спрашивают), можно здесь:
- Java
- .Net

В красной книге описание приводится в главах "Long-Running Processes, and Avoiding Responsibility" и "Long-Running Processes, aka Sagas".

#DistributedSystems
2👍1
Chat Digest

💬 Решение проблем путем их усугубления:
- https://t.iss.one/ru_arc_chat/1689

💬 Когда делать рефакторинг?
- https://t.iss.one/ru_arc_chat/1691

💬 А.Н. Туполев о технической красоте:
- https://t.iss.one/ru_arc_chat/1692

💬 Красота формируется целесообразностью:
- https://t.iss.one/ru_arc_chat/1708

💬 Первоисточник по SAGA:
- https://t.iss.one/ru_arc_chat/1713

Перевод первоисточника по SAGA:
- https://t.iss.one/ru_arc_chat/2396

💬 SOLID применительно к бизнесу:
- https://t.iss.one/ru_arc_chat/1763

💬 Синдром секретаря:
- https://t.iss.one/ru_arc_chat/1767

💬 Мы делаем Golang DDD Reference Application:
- https://t.iss.one/ru_arc_chat/1792

💬 Снова Archi & DDD:
- https://t.iss.one/ru_arc_chat/1813

💬 Превосходная метафора о техдолге:
- https://t.iss.one/ru_arc_chat/1838
- https://t.iss.one/ru_arc_chat/1839

💬 Основная причина образования техдолга - недальновидность и конфликт краткосрочных интересов с долгосрочными:
- https://t.iss.one/ru_arc_chat/1847

💬 Избыток бюджета и техдолг:
- https://t.iss.one/ru_arc_chat/1849
- https://t.iss.one/ru_arc_chat/1851
- https://t.iss.one/ru_arc_chat/1856
- https://t.iss.one/ru_arc_chat/1857
- https://t.iss.one/ru_arc_chat/1863

💬 Дефицит бюджета и техдолг:
- https://t.iss.one/ru_arc_chat/1858

💬 Классификация компаний по Gregor Hohpe:
- https://t.iss.one/ru_arc_chat/1861

💬 "неважно, насколько ты крут, - это не определяет твоей успешности, если носителем компетенции являешься только ты один, т.к. практически все продукты в индустрии - коллективные."
- https://t.iss.one/ru_arc_chat/1899
- https://t.iss.one/ru_arc_chat/1900
- https://t.iss.one/ru_arc_chat/1903

Как это связано с распространением знаний:
- https://t.iss.one/ru_arc_chat/1905
- https://t.iss.one/ru_arc_chat/1909

💬 изменение модели разработки - дело деликатное, можно растерять коллектив:
- https://t.iss.one/ru_arc_chat/1965

💬 Качество второго закона диалектики != качеству кода или процессов:
- https://t.iss.one/ru_arc_chat/1984

💬 Что такое "архитектурный стиль":
- https://t.iss.one/ru_arc_chat/1983
- https://t.iss.one/ru_arc_chat/1985
- https://t.iss.one/ru_arc_chat/1990
- https://t.iss.one/ru_arc_chat/2007

💬 "экстенсиональный и интенсиональный"
- https://t.iss.one/ru_arc_chat/2001

💬 Что отличает знание от мнения?
- https://t.iss.one/ru_arc_chat/2005

💬 Архитектура и энтропия (второй з-н термодинамики):
- https://t.iss.one/ru_arc_chat/2010
- https://t.iss.one/ru_arc_chat/2011

💬 Архитектурная функция как распределенная роль или как выделенная орг.единица?
- https://t.iss.one/ru_arc_chat/2012
- https://t.iss.one/ru_arc_chat/2014
- https://t.iss.one/ru_arc_chat/2026
- https://t.iss.one/ru_arc_chat/2039

💬 Краткий и понятный ответ на вопрос про ссылку на авторитета и темные века:
- https://t.iss.one/ru_arc_chat/2023

💬 Правила группы:
- https://t.iss.one/ru_arc_chat/2036

💬 Первая публикация SOLID:
- https://t.iss.one/ru_arc_chat/2050

💬 Как выделять ресурсы на техдолг:
- https://t.iss.one/ru_arc_chat/2057

💬 Подкасты и видео:
- https://t.iss.one/ru_arc_chat/2062
- https://t.iss.one/ru_arc_chat/2067
- https://t.iss.one/ru_arc_chat/2074
- https://t.iss.one/ru_arc_chat/2076

💬 Про SRP:
- https://t.iss.one/ru_arc_chat/2078
- https://t.iss.one/ru_arc_chat/2079

💬 О способах реализации pagination:
с https://t.iss.one/ru_arc_chat/2083
по https://t.iss.one/ru_arc_chat/2131

💬 transaction model framework
- https://t.iss.one/ru_arc_chat/2153

💬 Интервью с автором DCI:
- https://t.iss.one/ru_arc_chat/2154

💬 Какой смысл от Event Sourcing?
- https://t.iss.one/ru_arc_chat/2291

💬 @emacsway взял на себя риск прибегнуть не к правилам, а к прямому волеизъявлению участников группы, поставив на кон три месяца упорного труда и недосыпаний против флуда случайного прохожего в группе, дабы никто не ассоциировал коллегию с диктаторством, чтобы сохранить цели группы и пресечь информационную захламленность чата:
- https://t.iss.one/ru_arc_chat/2336
- https://t.iss.one/ru_arc_chat/2377

💬 У нас появилась флудилка для нерелевантных тем:
- https://t.iss.one/ru_arc_chat/2386

💬 Calvin:
- https://t.iss.one/ru_arc_chat/2389

💬 XA - это eventual consistent
- https://t.iss.one/ru_arc_chat/2391
- https://t.iss.one/ru_arc_chat/2392

💬 Про SAGA:
с https://t.iss.one/ru_arc_chat/2395
по https://t.iss.one/ru_arc_chat/2517

Спасибо, что развиваете отрасль с помощью нашего чата!

#ChatDigest
🔥11👍31
Russian Association of Software Architects
Если вы затрудняетесь объяснить менеджменту что такое технический долг и легаси, то вот неплохой пример от нетехнаря (и в этом заключается ценность статьи, т.к. она написана простым языком, понятным нетехнарю). https://vitalyfilatov.ru/all/techdebt-and-legacy/
This media is not supported in your browser
VIEW IN TELEGRAM
О техдолге - еще одна доходчивая метафора. Хорошо показано состояние среднего проекта на рынке. Опытный архитектор осуществляет decoupling of Big Ball of Mud.

Как обычно, основная причина заключается в недальновидности последствий принимаемых решений и в конфликте краткосрочных бизнес-интересов с долгосрочными техническими интересами.
😁9
Интервью(аудио) от Александра Лучкова на тему Поворот к продуктовой разработке - влияние на пространство выборов и стратегию разработки.

Интервью рассматривает особенности архитектурной работы, целеполагание и особенности принятия архитектурных решений в продуктовом и проектном/программном подходах к разработке.

Тезисы и таймкоды доступны в блоге Александра Турханова.
👍5
Продолжается прием заявок на выступления на ArchDays.ru. Если вам есть чем поделиться, оставляйте заявку. Если сомневаетесь, можете написать мне напрямую и задать интересующие вопросы (@sergey486)

Формирование программы в самом разгаре!
SAGA - подборка ссылок из обсуждений чата канала:

🔷 Первоисточник по SAGA: "SAGAS" by Hector Garcia-Molina, Kenneth Salem

🔷 Перевод первоисточника по SAGA: "Гектор Гарсия-Молина и Кеннет Салем — «Саги»" / Михаил Ланкин

🔷 Applying the Saga Pattern • Caitie McCaffrey • GOTO 2015

🔷 Saga distributed transactions pattern

🔷 Process Manager Pattern

🔷 Compensating Transaction pattern

🔷 Пример реализации SAGA на Enterprise Integration Patterns (source code)

🔷 Пример реализации Process Manager от сообщества Microsoft (комментарий Greg Young). Альтернативы и обоснование.

🔷 Patterns and implementations for a banking cloud transformation

🔷 Несколько реализаций саг:
- https://axoniq.io
- https://eventuate.io/abouteventuatetram.html
- https://github.com/eclipse/microprofile-lra
- https://github.com/jbosstm/narayana/tree/master/rts/lra

🔷 Awesome workflow engines

🔷 "A long-running transaction model of workflow" by Quanzhou Hu; Jia Liu; Yi Zhuang; Yi Liu

🔷 "The CORBA Activity Service Framework for supporting extended transactions" by Iain Houston, M. C. Little, Ian Robinson, Santosh K. Shrivastava, Stuart M. Wheater

🔷 "What are long running processes?" by Bernd Rücker

🔷 Чем отличается SAGA от Process Manager:
- https://event-driven.io/en/saga_process_manager_distributed_transactions/

- https://stackoverflow.com/a/33652837

- https://blog.devarchive.net/2015/11/saga-vs-process-manager.html?m=1

🔷 "Eventually consistent" by Werner Vogels

🔷 "ACID properties of transactions"

🔷 "Atomicity :: Chapter 12. Berkeley DB Transactional Data Store Applications"

🔷 "Atomic - indivisible, not capable of being cut/divided into smaller pieces"

🔷 "Consistency Models"

🔷 интервью "Modeling Uncertainty with Reactive DDD" by Vaughn Vernon reviewed by Thomas Betts, в котором V.Vernon предлагает использовать Process Manager Pattern для обработки процессов, охватывающих несколько агрегатов в условиях Eventual Consistency.

Посмотреть реализацию в исполнении V. Vernon, включая ProcessTimedOut (о чем часто спрашивают), можно здесь:
- Java
- .Net

🔷 "Camunda Platform 8 Docs :: BPMN coverage"

🔷 Eclipse Microprofile стандарт имеет понятие LRA - Long Running Application. это есть их интерпретация саг

🔷 Microprofile-compatible фреймворки а-ля micronaut.io

🔷 RedHat развивает референс имплементацию Microprofile в виде своего фреймворка quarkus.io

🔷 Red Hut Summit "Saga: The new era of transactions in a
microservices architecture
" by Giovanni Marigi, Mauro Vocale. BOSTON, MA | MAY 7-9, 2019

🔷 Вот пример Camunda. их интерпретация и имплементация саг )). Там всё очень упрощено и декларативно.

🔷 Architecture standard определяет сагу в пункте 21.2.7. Ensuring Global Consistency with Saga Patterns

Спасибо, что развиваете отрасль с помощью нашего чата!

#DistributedSystems #Многоликий
👍4🔥42
Коллеги, напоминаю, если у кого есть желание пополнить состав авторов канала @ru_arc , не стесняйтесь обращаться к @sergey486 или к @emacsway .

Не обязательно эксперты - для деятельных новичков дело тоже найдется. Не так давно к нам вернулся @GKruglov , а вместе с ним и сложные, напряженные, но чрезвычайно продуктивные обсуждения. Информационная нагрузка чата возросла кратно, а значит, она стала нуждаться в систематизации и обобщении в виде дайджестов, компиляций, и полноценных структурированных статей.

Предполагается деятельность не только в tg-канале, но и в очных мероприятиях.
👍1
Всем привет!

В прошлом году на ArchDays @varkulevich рассказал о своем проекте, «Онто». Сейчас позиционируется как «Облачная платформа для совместной работы, позволяющая объединить команды и данные в реальном времени».

Когда мы начали ассоциацию, Артем предложил попробовать Онто для наших нужд. И я благополучно отложил это предложение в долгий ящик, пока недавно @GKruglov не упомянул, что расчехлил protege для построения онтологий.

Ну и мы предложили Артему показать, что умеет Онто, как его можно использовать для нужд ассоциации и для личных целей.
Сошлись на том, что это может быть интересным и еще кому-то, поэтому приходите все желающие, посмотрим на проект.

Пройдет в следующую пятницу, 2-го сентября в 19:00
Ссылка на регистрацию
: https://us02web.zoom.us/meeting/register/tZIsfuCupzsuGNK77B7qpBLC2AbDDJGswQN8

Кучка ссылок
Питч о проекте на ФРИИ https://sprint.iidf.ru/startups/onto/
Сайт проекта: https://ontonet.ru/
Инструкция пользователя https://ontonet.ru/startingtour
Пользовательские ситуации: https://ontonet.ru/case
Техническая документация по проекту: https://ontonet.ru/info
Платформа: https://ontonet.online/
Бэклог идей пользователей https://idmsykl.ducalis.io/rice-feature-priorities/summary
🔥4👍2🤔2
Строим ИБ в софтверном проекте.

Сделал небольшую памятку с чего можно начать погружение в ИБ в софтверном проекте. Скомпилировал сообщения в этом посте.

Проект OWASP и TOP-10 самых популярных уязвимостей:

👓OWASP TOP-10

В наше киберпреступное время к сожалению не все разработчики знают что это такое. Если кратко - это рейтинг самых популярных уязвимостей в веб-приложениях. Обновляется раз в несколько лет и содержит общие рекомендации по их устранению.

Вообще, сам проект OWASP (Open Web Application Security Project) - это некоммерческая организация, нацеленная на повышение защищенности веб-приложений.

Помимо рейтинга уязвимостей, там есть еще немало интересного, например:
- Инструмент для поиска уязвимых зависимостей в Java
- Популярный сканер веб-приложений OWASP ZAP
- Руководство по тестированию веб-приложений
И многое другое. Полный список на этой странице

CIS Controls - фреймворк безопасности для организации

Если уже ознакомились с OWASP'ом, то вот вам следующий материал, который касается более общей темы по безопасности.
Это CIS Сontrols (на данный момент версии 8 ) от некоммерческой организации CIS (Центр Интернет Безопасности).
Здесь собраны рекомендации для организаций, которые хотят повысить свою защищенность. То есть не для конкретного ПО, а для организации в комплексе (хотя про ПО там тоже есть). Можно сказать это некий ИБ-фреймворк.

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

Выглядит как отличная отправная точка для тех кто хочет поправить ИБ-здоровье в своей компании.

Изучаем на практике

Следующим шагом в изучении ИБ может стать что называется "набитие руки". Думаю, разработчикам может быть интересно посмотреть как ведут себя узявимости в дикой природе. Для этого можно пойти и посканить собсвенное изделие есть специальные сервисы и приложения, которые содержат определенные уязвимости.

- Один из самых популярных ресурсов HackTheBox Распространяется как SaaS, много бесплатных лаб.
- Vulnhub. Много виртуалок с уязвимостями (которые нужно скачать и запустить), но почему-то последняя активность в ноябре прошлого года.
- OWASP Juice Shop - уязвиомое веб-приложение от OWASP, содержит весь TOP-10 и много чего еще
- Список узязвимых приложений от OWASP
Думаю вы без труда найдете похожие проекты.

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

-

Мы сами пользуемся этими ресурами, но это конечно далеко не весь список того, что нужно сделать. И если у вас нет своих ИБ-специалистов, то лучше всего обращаться в специализированные фирмы или искать их в штат, но хотя бы у вас будет точка отправления.

via @stringconcat

#Безопасность #Security #SSDLC
👍6🔥4
Если с умным я в адский огонь попаду,
То сумею, пожалуй, прожить и в аду.
Но не дай Бог в раю с дураком оказаться!
Отведи, о Всевышний, такую беду!
—  Омар Хайям

Тысячу лет назад Омар Хайям достаточно остро описал те причины, которые двигали нами при создании объединения архитекторов - места, где есть ребята, с которыми не страшен никакой ад.

#Goal
😁19👍7👎21
📏 Стандартизация и единообразие.

В нашем чате как-то поднималась тема стандартизации и унификации.
Это одна из моих любимых тем, поэтому я записал небольшое видео.
Для кого-то покажется очевидностью, а кто-то cможет почерпнуть идеи для своих проектов.
👍7
Всем привет! На прошлой неделе у нас не было постов, потому что мы готовили документы для формального учереждения организации и таки учередили ее.
Теперь мы не просто канал, а целая региональная общественная организация "Объединение ИТ-Архитекторов".
Учередители:

- Баранов Сергей @sergey486
- Круглов Геннадий @GKruglov
- Лукьянов Евгений @elukianov
- Закревский Иван @emacsway

Почитать устав и ознакомиться с целями можно тут. По вопросам вступления обращаться в Joining Bot: @ru_arc_bot
🎉37👍8🔥5
Russian Association of Software Architects
Всем привет! На прошлой неделе у нас не было постов, потому что мы готовили документы для формального учереждения организации и таки учередили ее. Теперь мы не просто канал, а целая региональная общественная организация "Объединение ИТ-Архитекторов". Учередители:…
После вчерашней новости поступило много сообщений в @ru_arc_bot. Мы всех видели, никого не потеряли, всем обязательно ответим, но чуть-чуть позже (нас завалило оргмоментами и работой). В скором времени свяжемся. Спасибо за оказаное нам доверие!)
👍8🔥2🎉1
С Днем Программиста!
🔥24🎉13
Russian Association of Software Architects
Всем привет! На прошлой неделе у нас не было постов, потому что мы готовили документы для формального учереждения организации и таки учередили ее. Теперь мы не просто канал, а целая региональная общественная организация "Объединение ИТ-Архитекторов". Учередители:…
Про членские взносы. Вчера часто спрашивали. Поясняю.

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

2. Размеры членских взносов устанавливают сами члены Организации на Общем собрании - это их исключительная компетенция, закрепленная ФЗ 7 и ГК. Сколько они сами решат, столько и будут платить.

Зачем мы внесли информацию о членских взносах в Устав, если их по факту нет? Изменение Устава - штука достаточно хлопотная, т.к. ГК допускает изменение Устава исключительно очной формой Общего собрания членов Организации. А это значит, что в одно время и в одном месте нужно физически собрать как минимум кворум в половину состава организации. Поэтому, ряд положений Устава был просто скопирован из типового Устава "на вырост", с целью минимизации изменений Устава.
👍14
Russian Association of Software Architects
Всем привет! На прошлой неделе у нас не было постов, потому что мы готовили документы для формального учереждения организации и таки учередили ее. Теперь мы не просто канал, а целая региональная общественная организация "Объединение ИТ-Архитекторов". Учередители:…
Зачем мы формализовались?

Чтобы иметь законное право называться организацией в исполнение ФЗ 82. А для этого необходимо, чтобы организация имела Устав и Протокол учредительного собрания. С момента учреждения все учредители автоматически становятся членами организации наравне со всеми остальными членами.
Russian Association of Software Architects
Всем привет! На прошлой неделе у нас не было постов, потому что мы готовили документы для формального учереждения организации и таки учередили ее. Теперь мы не просто канал, а целая региональная общественная организация "Объединение ИТ-Архитекторов". Учередители:…
Вчера прозвучало утверждение о коммерциализации нами сообщества.

Во-первых, как я уже говорил, с момента учреждения Организации все её учредители автоматически становятся её членами наравне с остальными. Именно поэтому общественная организация является рискованной организационно-правовой формой для инвестиций, т.к. руководящие её органы являются выборными, они подотчетны общему собранию и могут быть переизбраны в любой момент.

Во-вторых, по закону общественная организация может тратить прибыль только на достижение её уставных целей. Прибыль не может распределяться между членами/участниками/учредителями организации. Комитет организации даже зарплату не может в ней получать.

В-третьих, члены Комитета и Председатель Организации находятся даже в менее выгодном положении, нежели рядовой её член или вообще случайный прохожий, потому что существует ст.27 ФЗ 7
https://www.consultant.ru/document/cons_doc_LAW_8824/1b0c2d3c7cca721994c4211fe5940aea1e16fd6d/

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

В-пятых, если привести те ресурсы времени, которые мы вложили в создание этой организации, к средней архитекторской зарплате, то уже набралось бы на трешку в районе МКАД. Раза три я доходил до грани, и хотел уже все бросить, но парни не дали - в этот момент я понял, для чего нужно объединение.
👍12👎1🔥1🤯1