Слайд 3Недостатки
Долгосрочная привязка к технологиям
Сложность внесения изменений
Сложность тестирования
Медленное развёртывание
Ресурсоёмкое масштабирование
Слайд 5SmallTalk
OOP to me means only messaging, local retention and protection and hiding
of state-process, and extreme late-binding of all things.
I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages
However, doing encapsulation right is a commitment not just to abstraction of state, but to eliminate state oriented metaphors from programming.
Слайд 6Object-Oriented Design
Decomposition & Abstraction
Single Responsibility Principle
Open/Closed Principle
Low Coupling (связанность)
High Cohesion (зацепление)
Encapsulation
SOLID
GRASP
Слайд 7CORBA / RMI
CORBA is particularly important in large organizations, where many systems
must interact with each other, and legacy systems can't yet be retired. CORBA provides the connection between one language and platform and another.
Слайд 9SOA / ESB / JBI
For some SOA is about exposing software through
web services
For some SOA implies an architecture where applications disappear
For some SOA is about allowing systems to communicate over some form of standard structure (usually XML based) with other applications
For some SOA is all about using (mostly) asynchronous messaging to transfer documents between different systems.
Слайд 11OSGi
Development model where applications are (dynamically) composed of many different (reusable) components.
Components hide their implementations from other components while communicating through services, which are objects that are specifically shared between components.
Слайд 13Микросервисы — это небольшие, автономные, совместно работающие сервисы
Слайд 14Свойства архитектуры
Разбиение на компоненты через сервисы
Организация вокруг потребностей бизнеса
Продукты, а не проекты
Умные
приёмники и глупые каналы передачи
Децентрализованное руководство
Децентрализованное управление данными
Автоматизация инфраструктуры
Проектирование под отказ
Эволюционный дизайн
Слайд 16Вселяет оптимизм (Pros)
Чёткие границы сервисов
Простота добавления и переделки функционала
Простота тестирования
Решение организационных вопросов
Отказоустойчивость
Масштабирование
Повторное
использование
Простота развёртывания
Технологическая разнородность
Слайд 17Вызывает скептицизм (Cons)
Сложность разработки распределённых систем
Производительность при взаимодействии
Версионность API сервисов
Распределённые транзакции, авторизация
Сложность
рефакторинга (границы модулей)
Сложность сопровождения (логирование, отладка)
Необходим высокий уровень автоматизации
Требуются DevOps-навыки и специалисты
Слайд 20Литература
Microservices Resource Guide by Martin Fowler & James Lewis
Microservices: From Design to
Deployment by Chris Richardson
«Народная библиотека» сообщества TechnoVillage — можно взять почитать книги