Top Banner
“Hey, I’ve seen something like it before!” 1
32

Jeeconf 2015

Aug 12, 2015

Download

Technology

Maxim Ivanov
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Jeeconf 2015

“Hey, I’ve seen something like it before!”

1

Page 2: Jeeconf 2015

2

15+ лет коммерческой разработки основная часть проектов связана с JEE организатор IT-ивентов в Новосибирске

@ivanenok [email protected] Laximo

Page 3: Jeeconf 2015

А чего мы тут собрались?

Решить кто такой архитекторОбсудить популярные ошибки Разобраться что такое “хайп” Обсудить цикличность развития Посмотреть на велосипеды Как правильно лажать в архитектуре Потроллить и Поговорить

3

Page 4: Jeeconf 2015

4

Page 5: Jeeconf 2015

5

Page 6: Jeeconf 2015

6

Page 7: Jeeconf 2015

7

Page 8: Jeeconf 2015

Маленькое время ответа

Гибкие структуры данных

Уменьшение времени разработки

Пере-носимость

Масштабируемость решений

8

Page 9: Jeeconf 2015

9

Page 10: Jeeconf 2015

10

Page 11: Jeeconf 2015

Чем “плохи” существующие хранилища?

дорогие транзакции

фиксированые структуры данных

проблемы с кластеризацией

11

Page 12: Jeeconf 2015

Что такое FLAT FILES?

Одна из концепций хранения Типичный пример dBase || и другие Работа с файловой системой Гибкие структуры - protobuf, Thrift Простое портированиеМасштабируемость

12

Page 13: Jeeconf 2015

Что выбрать для проекта?

13

зависит от задачи и нужного профиля

зависит от соотношения чтений/записей

универсального совета не существует

зависит от объемов данных в момент времени

Page 14: Jeeconf 2015

{ "_id": "acc12345", "amount": 1000.0, "contact_info": { "name": "Peter", "address": { "country": "Russia", "city": "Novosibirsk" } }, "company_info": { "name": "Pont Inc", "address": { "country": "Russia", "city": "Novosibirsk" } }}

14

Page 15: Jeeconf 2015

{ "_id": "acc12345", "amount": 1000.0, "contact_info": "1", "company_info": "1"}

15

{ "id": "1", "name": "Peter", "address": { "country": "1", "city": "1" } }

{ "id": "1", "name": "Pont Inc", "address": { "country": "1", "city": "1" } }

{ "id": "1", “country": "Russia"}

{ "id": "1", "city": "Novosibirsk"}

Page 16: Jeeconf 2015

16

Page 17: Jeeconf 2015

изолированность слабая связанность легкая тестируемость переиспользование

17

Page 18: Jeeconf 2015

Что такое микросервис?WAR, EARJARPackageClass

18

Page 19: Jeeconf 2015

Что такое микросервис?WAR, EARJARPackageClass

19

Page 20: Jeeconf 2015

Что такое микросервис?WAR, EARJARPackageClass

20

Page 21: Jeeconf 2015

Что такое микросервис?WAR, EARJARPackageClass

21

Page 22: Jeeconf 2015

22

Page 23: Jeeconf 2015

23

Page 24: Jeeconf 2015

OMG: Oh, My God или Object Management Group?

24

Page 25: Jeeconf 2015

Что такое компонента?

CORBA

SOAPCOM

DCOM

SOA

EJB

Spring

25

Page 26: Jeeconf 2015

Components vs Objects Objects Components

метафоры реального мира абстракции для протоколов

акцент на представлении акцент на уменьшении связности

уровень дизайна кода уровень архитектуры

оверинжиниринг паттернами упрощение структуры

26

Page 27: Jeeconf 2015

А зачем мне это знать?

JMS Event Services

JPA Peristence Service

RMI IIOP

JNDI Naming Service

27

Page 28: Jeeconf 2015

Storage

“Плохая” монолитна структура

28

Page 29: Jeeconf 2015

Storage

“Правильная” структура с микросервисами

29

Page 30: Jeeconf 2015

Storage

“Правильная” структура с микросервисами

30

Page 31: Jeeconf 2015

И как быть?Мода – это удовлетворение амбиций инженеров

Инженерия – это решение задач подходящими инструментами

Собирайте решение из того, что точно работает

Перед ответом на вопрос, “КАК делать?”, поймите, “ЧТО, нужно сделать”

Универсальной таблетки не существует!

31

Page 32: Jeeconf 2015

Спасибо за внимание. Q/A.

32