// личный канал‑лог
gavrilovlog
← все записи

А вы знали, что микросервисную архитектуру придумали еще в 1950 году?

👁 11.7K66💬 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
    Так, вот только не говори, что из головы примеры взял.
    • @gavrilovlog
      А что здесь тебя смущает, вроде простые примеры
  • @gavrilovlog
    Я думаю можно на все 40 принципов что-то придумать (натянуть так сказать) 😆
  • @shaurgon
    Я просто интуитивно такие штуки решаю, а вот то, что это все подчиняется каким-то правилам - для меня открытие. И мозг теперь пытается применить это
    • @gavrilovlog
      Да, так и есть. Ты выстроил эту систему на основе своего многолетнего опыта. Для решения конкретных задач это работает лучше. А если нам нужна универсальность, то для этого существуют системы на основе опыта поколений