LINUX.ORG.RU

Микросервисы на Java (взял интервью у Владимира Плизги из ЦФТ)

 ,


2

5

Ссылка: https://habrahabr.ru/company/jugru/blog/349954/

Абстракт: ЦФТ - это старая финтех организация, продуктами которой пользуется половина банков России. В ней завелась команда, пилящая многолетний монолит на микросервисы. Статья интересна тем, кто считает, что микросервисы - для хипсторов, а нормальный ынтерпрайз уж как-нибудь без них проживёт.

Содержание:

  • Зачем нужны микросервисы;
  • Как с ними жить (судьба REST и SOAP, statefull vs. stateless, переход от монолита к микросервисам, совместимость с legacy и многое другое);
  • Микросервисные технологии (Spring Cloud Netflix, Zuul, ...), какие с ними проблемы, что нужно допиливать;
  • Документация: на русском или английском? Написание и генерация документации (Swagger, SpringMVC, SpringFox). Архитектурные диаграммы — нужны ли, в чем рисовать, как хранить;
  • Мониторинг, восстановление от сбоев;
  • Ну и самое главное: стоит ли игра свеч?

Перемещено tailgunner из development

Перемещено jollheef из talks

★★★★☆
Ответ на: комментарий от anonymous

нет. просто банят тех, кто обзывается, отстаивая свою тз.

А видишь, как только перебанили обзывающихся лисперов, так сразу все эти блаженные анонiмусы, Яры и Java-маректологи повылезали на свет.

anonymous
()
Ответ на: комментарий от anonymous

тем не менее это не мешает некоторым обзываться Лол :-)

но меня тенденция тоже не радует. лор уже не тот. срачи не такие технически фундаментальные как бы. с++ vs С уже подзадолбали, а тредов про жс всё больше и больше Лол :-)

anonymous
()
Ответ на: комментарий от anonymous

с++ vs С

Вроде давно уже небыло

Deleted
()
Ответ на: комментарий от I-Love-Microsoft

В большую кучу говна приходится нырять с головой, а в маленькую можно просто руками залезть. В идеале старую можно вообще смыть и сделать новую.

crutch_master ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Что безрадостно то? Прикинь каково это: с головой в говно каждый день нырять, а потом выяснить, что можно этого не делать.
Ну да, всё дерьмо, в любом случае. Работа такая.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Допустим, я за. Как заставить остальных делать так же хорошо? Я не ради того чтобы спорить, а просто мысль выходного дня

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Это не нужно. Можно просто сесть рядом и пилить своё добро, а для большой кучи сделать какой-нибудь класс переходник. Таким образом можно рыться в своём добре и не нырять в общее. Когда остальным надоест, они тоже всю эту кучу растащат на мелкие задачи.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 2)
Ответ на: комментарий от crutch_master

Вот я так делал и делаю. Всё что я пишу - это законченные модульные классы, которые легко переносить между проектами. У меня Qt, поэтому pri-файлы. На Python cамо собой тоже модули.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Ты не понял суть микросервиса. Это не просто какой-то модуль. Чтобы отлаживать законченные модульные классы следующему разработчику надо будет изрядно поплясать с окружением. С микросервисами ничего такого не надо делать, запустил и дёргай его. И не важно на чём он там у тебя написан, хоть на vb или паскале. Микросервис изолирован лучше, чем просто модуль на чём-нибудь, следующему программисту нужно только знать его api и всё, в говнокод можно не погружаться без надобности, а при необходимости можно всё выбросить и переписать. Попробуй провернуть тоже с модулем, когда вся система уже завязана на каком-нибудь пистоне.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 2)
Ответ на: комментарий от crutch_master

Микросервис изолирован лучше, чем просто модуль на чём-нибудь, следующему программисту нужно только знать его api и всё

Чем его «изоляция» лучше? Пока что всё, что ты сказал, относится к нормально спроектированному модулю (классу).

когда вся система уже завязана на каком-нибудь пистоне.

Что такое «завязана на пистоне»?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Пока что всё, что ты сказал, относится к нормально спроектированному модулю (классу).

Для того, чтобы у тебя этот самый модуль заработал, тебе надо засунуть его в какое-нибудь тестовое приложение, сделать заглушки для всего, что нужно, создать тестовые структуры - т.е. нужно вникать во внутреннее устройство системы. Микросервису достаточно только скормить исходные данные и посмотреть что он кому отправляет. И потом, внутри микросервис может быть написан как угодно дерьмово и это вообще не будет никого волновать, пока не придётся лезть внутрь.

Что такое «завязана на пистоне»?

Ну пишите вы всё, на каком-нибудь пхп и всё приходится писать только на пхп без вариантов. Потому что там модули, на пхп для общего функционала и всё это гвоздями уже 10 лет как прибито к пхп, т.к. никто никогда не думал приделать сбоку какую-нибудь яву.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Пока что всё, что ты сказал, относится к нормально спроектированному модулю (классу).

Для того, чтобы у тебя этот самый модуль заработал, тебе надо засунуть его в какое-нибудь тестовое приложение, сделать заглушки для всего, что нужно, создать тестовые структуры - т.е. нужно вникать во внутреннее устройство системы.

Это вусё надо для _использования_ модуля? Тогда это плохой модуль.

Что такое «завязана на пистоне»?
Ну пишите вы всё, на каком-нибудь пхп и всё приходится писать только на пхп без вариантов

А. То есть определяющее свойство микросервиса - то, что он работает по HTTP или какому-то варианту RPC?

tailgunner ★★★★★
()
Ответ на: комментарий от stevejobs

о же и с микросервисами. Поэтому компанию нужно бить на монолитные команды (Microsoft проводила исследование, получилось 20 человек максимум). И микросервисы тоже придётся делить!

ну, охренеть теперь! никто и не думал!

именно поэтому так интересно общаться с людмьи, которые «в самом начале пути» и свято верят, что сейчас всё попилят на микросервисы и заживут хорошо

вот с попильщиками пообщаться - самое то!

conalex ★★★
()
Ответ на: комментарий от tailgunner

Это вусё надо для _использования_ модуля? Тогда это плохой модуль.

Чем плохой? У тебя есть модуль, который тупо складывает 2 числа, например. Чтобы его использовать, тебе как минимум надо знать что в него передавать, что он возвращает (int, float, etc) и надо вкорячить его в какое-нибудь тестовое приложение. То есть по-любому надо что-то скомпилять/написать, просто чтобы его потыкать.

А. То есть определяющее свойство микросервиса - то, что он работает по HTTP или какому-то варианту RPC?

Работать может хоть через стандартные потоки, суть в том, что это отдельный маленький демон. То есть абстракция на уровне процесса, а не модуля для чего-нибудь или библиотеки. Это как пайпы, только постоянно запущенные и со связями через какой-нибудь MQ.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Чем плохой?

Вот этим:

crutch_master> нужно вникать во внутреннее устройство

У тебя есть модуль, который тупо складывает 2 числа, например. Чтобы его использовать, тебе как минимум надо знать что в него передавать, что он возвращает (int, float, etc)

А для микросервиса не надо знать, что в него передавать? Не надо знать, что он возвращает? Как его вообще использовать, если этого не знать?

То есть определяющее свойство микросервиса - то, что он работает по HTTP или какому-то варианту RPC?

Работать может хоть через стандартные потоки

Это и есть RPC.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

А для микросервиса не надо знать, что в него передавать? Не надо знать, что он возвращает? Как его вообще использовать, если этого не знать?

В смысле тебе надо знать структуры того яп, на котором этот модуль написан и если тебе что-то надо, тебе надо знать яп и всю кухню с ним связанную. Для того, чтобы использовать bc тебе не надо знать си или на чём он там написан, компилять что-то к нему итд. Ты просто берешь и делаешь echo "2+2" | bc. Или curl. Можно же взять libcurl и написать велосипед на си, а можно просто вызвать curl linux.org.ru

crutch_master ★★★★★
()

Спасибо!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.