Бэкендошная
110 subscribers
2 photos
66 links
Канал о backend-разработке и backend-разработчиках: языки программирования, алгоритмы и структуры данных, методологии, околопрограммистские темы и никакого (ну почти) фронтенда
Download Telegram
Обсуждение на тему "Настоящее и будущее микросервисной архитектуры".

Примеры разбиения доменного слоя на независмые сервисы, отвязка их друг от друга, методы общения и антипаттерны

https://www.youtube.com/watch?v=qzy2JfuOYRc

#microservices
Обширная статья Uber про выявленные шаблоны состояния гонки в микросервисах на Go

https://eng.uber.com/data-race-patterns-in-go/

#golang #microservices
Роняли прод?

Неверный вопрос, конечно же роняли. (киньте в меня камень первым если это не так)

И в случае, когда что-то пошло не так - очень важно уметь быстро откатываться до стабильного состояния.

Одна из техник, которая позволяет выполнять откат неудачных деплоев без плясок с шаманскими музыкальными инструментами - это Blue/Green.

Именно про нее и поговорим в сегодняшней статье.

https://readosapien.com/blue-green-deployment-zero-downtime-deployment/

#microservices #deploy #systemdesign
Привет!

Неделю назад я делился с вами методикой Blue/Green деплоя.

Сегодня же принес статью про еще один вариант безболезненных выкаток - это Канареечный релиз.

Метод канарейки можно применять не только для поэтапной раскатки, не ломая функционал для львиной доли пользователей, но также и для того чтобы, проверять гипотезы методом A/B. Раскатите новый функционал на 50% пользователей и следите за изменением метрик для обеих групп.

https://codefresh.io/learn/software-deployment/what-are-canary-deployments/

#microservices #deploy #systemdesign
Microservices. Microservices everywhere!

В последнее время микросервисы становятся чуть ли не must-have архитектурой для любой уважающей себя IT компании.

Но что, если микросервисы - это просто новый карго-культ и вам они не нужны?

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

https://itnext.io/you-dont-need-microservices-2ad8508b9e27

#microservices #systemdesign
Одна из основных проблем микросервисов - это проблема их коммуникации.

Если вы выберете неверную стратегию, то велика вероятность вместо микросервисной архитектуры получить распределнный монолит.

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

https://skolaparthi.com/communication-between-microservices/

#microservices
Еще одна проблема в микросервисной архитектуре после перехода с монолита - это транзакции.

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

Для микросервисной архитектуры есть подход распределенных транзаций, но он не лишен изъянов

Сегодняшняя статья расскажет в том числе про такие изъяны, а также предложит новый вариант решения проблемы транзацикй в распределенной системе

https://krishnakrmahto.com/transactional-messaging-in-microservices

#microservices
Продолжаем тему решения различных проблем микросервисной архитектуры после перехода с монолита.

Сегодня речь пойдет про авторизацию и best practise по ее реализации в микросервисной архитектуре

https://www.osohq.com/post/microservices-authorization-patterns

#microservices
При разработке распределенного приложения, рано или поздно вы столкнетесь с проблемой, когда разным частям вашей системе потребуется согласованность данных друг с другом.

Но как быть, если у вас нет архитектуры распределенных транзакций?

Ответить на этот вопрос на примере одного из кейсов, где возникает подобная проблема, попробует автор видео

https://www.youtube.com/watch?v=Trl4--FO7Yo

#microservices
Проблемы микросервисов

- сетевые издержки на коммуникацию между функциями
- сложности при отладке из-за распределенности системы
- усложнение архитектуры
- одинаковые функции в разных микросервисах

Про решение первых трех есть немало статей, в том числе и в этом канале они были - тут и тут

Сегодня я делюсь статьей с best practices решения проблем дублирования кода - вынесения его в библиотеки и переиспользование в нескольких независмых сервисах.

https://medium.com/duda/shared-libraries-design-and-best-practices-710774ae0bdc

#microservices
Павел Агалецкий, ведущий инженер в Авито, расскажет, как в компании построили надежную во всех смыслах шину данных для обмена событиями между сервисами на основе Apache Kafka. Как эволюционировала шина, как гарантируется соблюдение контрактов публикуемых событий и какие есть способы переживать даже отказ дата-центра.

https://youtu.be/mx5JzpfwjLo

#kafka #microservices