А вы знали, что микросервисную архитектуру придумали еще в 1950 году?
👁 11.7K↗ 66💬 5
Сегодня хочу рассказать про одну науку из своей студенческой юности под названием ТРИЗ.
Что такое ТРИЗ?
Это Теория Решения Изобретательских Задач. Ее создал советский инженер Генрих Альтшуллер еще в 1950-х годах, изучив тысячи патентов и выявив паттерны, по которым решаются технические проблемы.
Суть простая: Большинство изобретений - это не озарение гениев, а применение 40 типовых приемов к техническим противоречиям.Чтобы использовать ТРИЗ, нужно сформулировать противоречие. Например, противоречие в монолите:
1. Нам нужно повысить надежность системы, чтобы сбой в одном модуле не влиял на всю систему 2. При этом нам также нужно сохранять простоту разработки и деплоя, так как монолит прост в поддержке.Это классическое техническое противоречие: Хотим два взаимоисключающих свойства одновременно. В ТРИЗ есть таблица противоречий - матрица 39×39, где на пересечении параметров указаны номера приёмов(принципов) для решения. Для пары Надежность (27) <> Сложность (36) таблица рекомендует приёмы: 13, 35, 1. Описание этих приемов можно найти тут Какой из них подходит для нашего случая? 13 - Принцип "наоборот" (нет) 35 - Принцип изменение физико-химических параметров объекта (тоже нет) 1 - Принцип дробления (то что надо) Из всех приемов нам подходит номер 1: (Разделить объект на независимые части, чтобы каждая решала свою задачу). Именно это мы и делаем с микросервисами: - Разбиваем систему на сервисы по бизнес-доменам - Каждый масштабируется и деплоится независимо - Упала одна часть - остальные работают - Можно использовать разные технологии под задачу. Применение ТРИЗ можно увидеть и в других паттернах разработки: - API Gateway - принцип посредника (один объект управляет доступом к другим) - Автоскейлинг в Kubernetes - принцип самообслуживания (система сама себя регулирует) - Репликация - принцип копирования (дублируем для надежности) - Транзакции в БД - принцип объединения (соединить однородные или предназначенные для смежных операций объекты)
Вывод такой: Большинство архитектурных решений в IT - это не новые изобретения, а переложение инженерных принципов на софт3/100 Telegram
171
Комментарии · 5
- @shaurgonТак, вот только не говори, что из головы примеры взял.
- А что здесь тебя смущает, вроде простые примеры
- Я думаю можно на все 40 принципов что-то придумать (натянуть так сказать) 😆
- @shaurgonЯ просто интуитивно такие штуки решаю, а вот то, что это все подчиняется каким-то правилам - для меня открытие. И мозг теперь пытается применить это
- Да, так и есть. Ты выстроил эту систему на основе своего многолетнего опыта. Для решения конкретных задач это работает лучше. А если нам нужна универсальность, то для этого существуют системы на основе опыта поколений