Сложности разработки Большинство микросервисов сегодня взаимодействуют посредством RESTful HTTP (__заявление актуально на 2015 год__). Взаимодействие посредством сообщение выглядит многообещающим, но имеет слабую распространенность (__а это актуально и сегодня, почти 8 лет спустя__). API становится своего рода контрактом, увеличивающим связанность (coupling) и нарушение которого ведет к невозможности взаимодействия сервисов друг с другом. Таким образом можно выделить две сложности со взаимодействием сервисов: – Одновременная поддержка нескольких версий API в процессе разработки – Обратная совместимость и/или поддержка старых версий API в проде В статье рекомендуется посмотреть на OpenAPI (__весьма ценная рекомендация __🙂__ __). Другая сложность – согласованность данных вследствие того, что база данных может быть частью реализации микросервиса. Один из вариантов решения – eventual consistency, несмотря на неприменимость в некоторых доменах и сложность реализации. Так же распределенная природа данных в микросервисах усложняет распределенные транзакции и запрос данных при необходимости собрать данные из нескольких сервисов. __На 2022 год у обеих сложностей есть подходящие решения__. __Мы проектируем решение таким образом, чтобы в нем не было необходимости в распределенной транзакции. Обычно такая транзакция – это следствие нарушения cohesion на уровне всей системы, то есть когда неделимое целое с точки зрения целостности данных разделили на несколько «независимых» частей. Для решения сложности запроса данных можно использовать паттерны Backend For Frontend и/или CQRS.__ В статье авторы так же указывают на сложность тестирования из-за распределения бизнес-логики по независимо, эволюционно развивающимся отдельным сервисам. Необходимым становится использование фреймворков для тестирования надежности[1] и автоматизированного, повторно используемого приемочного тестирования[2]. [1] V. Heorhiadi, S. Rajagopalan, H. Jamjoom, M.K. Reiter, V. Sekar, Gremlin: systematic resilience testing of microservices, in __2016 IEEE 36th International Conference on Distributed__ [2] M. Rahman, J. Gao, A reusable automated acceptance testing architecture for microservicesin behavior-driven development, in __2015 IEEE Symposium on Service-Oriented System__ #msaevolutionwspub6 #msaevolutionwspub #перевод
Сложности разработки Большинство микросервисов сегодня взаимодействуют…
Из этого канала
- #328Раз уж косвенно затронули безопасность, то здесь best practice по secure api…
Раз уж косвенно затронули безопасность, то здесь best practice по secure api design. Даже тезисное описание не нужно, статья без воды.
- #329Пачка ссылок по процессной части безопасности Роль Security Champion…
Пачка ссылок по процессной части безопасности Роль Security Champion https://github.com/c0rdis/security-champions-playbook/…
- #330Сложности эксплуатации Сложности эксплуатации в основном связаны с потреблением…
Сложности эксплуатации Сложности эксплуатации в основном связаны с потреблением вычислительных и сетевых ресурсов.
- #326Threat Modelling наконец дождался и попал в категорию Adopt. Считаю, что давно…
Threat Modelling наконец дождался и попал в категорию Adopt. Считаю, что давно пора, а помещение Team Cognitive Load в категории Adopt говорит о том, что даже…
- #325Вышел очередной, 27-й technology radar от thoughtworks Изучаем:…
Вышел очередной, 27-й technology radar от thoughtworks Изучаем: https://www.thoughtworks.com/radar