Продолжение Здесь стоит сделать отсылку с CAP-теореме, но чтобы не усложнять, приведу пример. У вас была одна команда. Вы добавили вторую. Обе команды разрабатывают разные части системы, но используют одно тестовое окружение. Им нужно договориться (добиться согласованности) о внесении изменений в это окружение. CAP теорема говорит, что достижение одновременно 100%-й согласованности, 100%-й доступности и устойчивости к разделению невозможно. То есть, пока команды не имеют возможности договориться, но им требуется 100%-я согласованность, они теряют свойство доступности, – просто не могут начать тестировать. В распределенных системах, в том числе в структуре команд, необходимо при проектировании закладывать такие принципы и свойства, которые позволят принимать максимальное число решений автономно (в данном случае – собственные тестовые среды), а оставшиеся зависимости должны быть неблокирующими (например, – выпуск частей солюшена разными командами в удобном им ритме, но с испоьзованием версионирования API и Feature Toggle). Это и есть обеспечение устойчивости к разделению с использованием согласованности в конечном счете. Какие еще аналоги можно встретить в компаниях? Архитектурные комитеты, если они блокируют работу, общие тестовые среды на несколько команд, если для того, чтобы протестировать необходимо вставать в очередь, интеграционные компоненты, вроде ESB, в которых реализована бизнес-логика и команда поддержки ESB становится таким компонентом системы, сдерживающим масштабирование. В действительности, проектируя микросервисное решение, мы проектируем организацию, потому что если автономность и независимость микросервисов не поддерживается автономостью и неблокирующими зависимости на уровне структуры организации, польза от микросервисов будет крайней ограниченной, а вот всю привносимую ими дополнительную сложность бонусом компания получит в любом случае. Обобщая вышесказанное, – говоря о масштабировании микросервисов чаще всего подразумевается возможность технически поддержать возрастающую нагрузку. Но это половина правда. Особенность этого стиля в том, что он явным образом поддерживает и масштабируемость разработки (производственной системы), что для компании иногда даже более важно, а этого добиться без организационных изменений в общем случае невозможно.
Продолжение Здесь стоит сделать отсылку с CAP-теореме, но чтобы не усложнять,…
Из этого канала
- #549Полезное про k8s Two reasons Kubernetes is so complex…
Полезное про k8s Two reasons Kubernetes is so complex https://buttondown.email/nelhage/archive/two-reasons-kubernetes-is-so-complex/ Working with Kubernetes…
- #550Тут такая идея пришла, сам не пробовал, но может кто-то пробовал или попробует…
Тут такая идея пришла, сам не пробовал, но может кто-то пробовал или попробует 🙂 Есть хорошая практика - детализация типов работы.
- #551Небольшая, хорошая статья:…
Небольшая, хорошая статья: https://jessitron.com/2021/01/18/when-costs-are-nonlinear-keep-it-small/ Краткая выдержка: When costs increase nonlinearly with…
- #547О масштабировании Будем считать систему масштабируемой, если она способна…
О масштабировании Будем считать систему масштабируемой, если она способна справляться с возрастающей нагрузкой при добавлении ресурсов.
- #544Забираем, кому нужны fundamentals
Забираем, кому нужны fundamentals