tgoop.com/microservices_arch/535
Last Update:
В прошлом году принимал участие в круглом столе на конфе от Сбера, речь шла об антихрупкости.
Вроде как должна быть запись, здесь поделюсь своими заметками о дорожной карте достижения антихрупкости.
Мне показалось, что это может быть интересно, потому что этого не было в обсуждении на круглом столе и здесь есть не очевидные мысли.
Антихрупкость – это свойство, при котором система становится лучше под воздействием стрессора. С возрастанием интесивности воздействия стрессора (до определенного предела) возрастает выгода (сокращается вред).
Стратегия достижения антихрупкости
1. Минимизировать возможные потери при отказах
2. Избежать катастрофических сценариев, правильно хеджируя риски. Риски, согласно этой модели, бывают только высокими и близкими к нулю. Эта мысль мне показалась не очевидной, но интересной. Как только наиболее серьезные угрозы устранены, менее серьезные могут видоизмениться за счет обучения на основе окружающей среды. Если ядро системы относительно безопасно, неосновные части системы могут извлечь выгоду из внешних стимулов для повышения антихрупкости.
3. Внедрить адаптивную отказоустойчивость. Автоматическое исправление ошибок (т. е. метод автоматического восстановления программного обеспечения) должно быть частью архитектуры. Я бы несколько удивлен, что существуют работы 90-х годов и более ранних о том, каким образом под изменяющийся контекст динамически меняется даже не исходный код или структура решения, а исполняемый код. Примерно об этом Digital Immunity
Микросервисный архитектурный стиль позволяет проявится антихрупкости. Однако микросервисы сами по себе не являются решением, а лишь enabler'ом. Они не «учатся» на ошибках, они просто устойчивы, а возможности обучения повышают, например техники fault injection (тот же chaos eng).
В аттаче пара важных статей и небольшая книжка по теме.