Re[4]: Docker - для релиза или для разработки?
От: Cyberax Марс  
Дата: 10.05.20 01:07
Оценка:
Здравствуйте, artelk, Вы писали:

G>>>А вот в чем профит от "микросервисов" — я до сих пор не понял и даже внятных примеров нет.

Б>>Профит микросервисов в их независимости друг от друга:
A>Полная независимость возможна только если сервисы друг друга не вызывают.
"Независимость" подразумевает, что у сервиса есть API. А вот как он реализуется — клиентов не интересует.
Sapienti sat!
Re[4]: Docker - для релиза или для разработки?
От: SkyDance Земля  
Дата: 10.05.20 04:46
Оценка: +2
N>Скажем, у Скайденса на банковском счету вдруг стало 0 денег, счет за комунальные услуги пришел в двойном размере, а магазинная касса занимается приписками в чеках.

В том и дело, что у Скайденса из Новой Зеландии станет 0 денег, а у остальных будет как было. У Васи в Нью-Васюках снимут коммунальные услуги два раза. У Пети из Питтсбурга припишут в кассе.

Так понятнее стало? Да, где-то что-то всегда сломано. Но только где-то и что-то, а не сразу и у всех. "Большие данные" (С)

N>Вопрос в ответственном отношении к работе.


Бизнес — это про деньги, а не про ответственное отношение.

N>Хотя, для детских проектов с тремя пользователями сойдет.


Не угадал.
Наоборот.
Как раз где три пользователя — там все будет сразу видно и заметно. Такой подход (перманентные частичные отказы) работает только на миллионах и миллиардах. Тогда всегда можно перевести стрелки "у вас интернет плохой". А если три пользователя, и у одного не работает, — это сразу треть (!) всех пользователей, серьезный отказ.
Re[8]: Docker - для релиза или для разработки?
От: SkyDance Земля  
Дата: 10.05.20 04:48
Оценка:
G>Разбивать свое приложение на компоненты и деплоить их в контейнерах — не ясно зачем.

Потому что так дешевле, и проще распределить зоны ответственности (читай, pager duty).
Re[4]: Docker - для релиза или для разработки?
От: SkyDance Земля  
Дата: 10.05.20 04:48
Оценка:
G>А что мешает добиться того же в обычной программе? Речь тоько об ингорировании ошибок вызовов некоторых функций.

В "обычной программе" придется разбираться, у кого что падает. А тут сразу видно.
Re[6]: Docker - для релиза или для разработки?
От: SkyDance Земля  
Дата: 10.05.20 04:49
Оценка:
G>А что мешает делать тоже самое с монолитным приложением? В чем смысл именно микросервисов?

Проще ткнуть пальцем "у вас сломалось". И если "у них сломалось", чинят "они". Не будят по ночам тех, у кого не ломалось.
Re[5]: Вот оно что
От: Sheridan Россия  
Дата: 10.05.20 08:07
Оценка: :))
Здравствуйте, SkyDance, Вы писали:

N>>Вопрос в ответственном отношении к работе.

SD>Бизнес — это про деньги, а не про ответственное отношение.
Кек, у меня многие вопросы исчезли. Вот оно что оказывается. Тяп-ляп-лишь-бы-работало оказывается это ожидаемый бизнесом результат. А люди то не виноваты, они просто делают то что им приказывают владельцы бизнеса.
Matrix has you...
Re[5]: Docker - для релиза или для разработки?
От: Sheridan Россия  
Дата: 10.05.20 08:09
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>В "обычной программе" придется разбираться, у кого что падает. А тут сразу видно.

Всегда сочувствую тем, кому запрещают логи писать и метрики расставлять.
Matrix has you...
Re[5]: Docker - для релиза или для разработки?
От: artelk  
Дата: 10.05.20 14:15
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, artelk, Вы писали:


Б>>>Профит микросервисов в их независимости друг от друга:

A>>Полная независимость возможна только если сервисы друг друга не вызывают.
C>"Независимость" подразумевает, что у сервиса есть API. А вот как он реализуется — клиентов не интересует.
У классов есть API, а как он реализуется — клиентов не интересует.
У библиотек функций есть API, а как он реализуется — клиентов не интересует.
В чем преимущество у микросервисов в данном контексте?
Может в том, что параметры функций\методов передаются по значению, т.е. неявно глубоко клонируются при передаче?
Этого же можно добится и без выноса кода в отдельный процесс — либо через сериализацию+десериализацию (то, что сейчас используется в при вызове удаленного сервиса, но без собственно отправки сообщения по сети), либо путем написания генератора декораторов интерфейсов, которые клонируют параметры и возвращаемые значения каждого метода интерфейса. И в Java и в .Net такой генератор пишется на раз и переиспользуется везде где надо, если надо.
Re[5]: Выражу согласие с ганжой
От: Wolverrum Ниоткуда  
Дата: 10.05.20 15:07
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Это пока у тебе запросы скромные — 128 Гб и 32 ядра. А если больше, то становится выгоднее взять несколько серверов вместо супермощного.


Нуууу... У нас запросы 3Тб и не-считал-сколько-ядров. Тем не менее разрабы идут по пути минимизации сетевого трафиика, переключаясь на внутрихостовые протоколы взаимодействия. Потому что МЕДЛЕННО.

Мантры "микосервисы"/"мастубирование" на них как-то не действуют
Отредактировано 10.05.2020 15:08 Wolverrum . Предыдущая версия .
Re[6]: Docker - для релиза или для разработки?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 10.05.20 16:03
Оценка:
Здравствуйте, artelk, Вы писали:

A>В чем преимущество у микросервисов в данном контексте?


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

В остальном только недостатки.
Re[6]: Docker - для релиза или для разработки?
От: Cyberax Марс  
Дата: 10.05.20 16:06
Оценка:
Здравствуйте, artelk, Вы писали:

C>>"Независимость" подразумевает, что у сервиса есть API. А вот как он реализуется — клиентов не интересует.

A>У классов есть API, а как он реализуется — клиентов не интересует.
A>У библиотек функций есть API, а как он реализуется — клиентов не интересует.
A>В чем преимущество у микросервисов в данном контексте?
Библиотека классов будет на том же самом языке, что и пользователи этих классов. Для сервисов это совсем необязательно.

Далее, в большинстве приложений системы сборки позволяют иметь только одну версию библиотек. Так что если какая-то команда хочет использовать более новую версию зависимости (скажем, взять новую версию OpenSSL), то это будет влиять на все остальные команды. В результате, по мере роста проекта такие обновления становятся всё более болезненными. В случае с API всё просто.

Ну и напоследок, в случае с API обычно легко контролировать кто и как его использует, в отличие от библиотеки классов в монолитном приложении.
Sapienti sat!
Re[7]: Docker - для релиза или для разработки?
От: Sheridan Россия  
Дата: 11.05.20 08:08
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Далее, в большинстве приложений системы сборки позволяют иметь только одну версию библиотек. Так что если какая-то команда хочет использовать более новую версию зависимости (скажем, взять новую версию OpenSSL), то это будет влиять на все остальные команды. В результате, по мере роста проекта такие обновления становятся всё более болезненными. В случае с API всё просто.

Правильно ли я понял что срач разводится в микросервисах проще и быстрее, чем в монолите?
Matrix has you...
Re[7]: Docker - для релиза или для разработки?
От: artelk  
Дата: 11.05.20 12:59
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, artelk, Вы писали:


A>>В чем преимущество у микросервисов в данном контексте?


G>На самом деле выше уже был дан единственный верный ответ. Микросервисы нужны чтобы максимально разграничить ответственность команд.

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

G>Правда в подавляющем большинстве случаев это не нужно.

G>В остальном только недостатки.
Re[3]: Docker - для релиза или для разработки?
От: mogadanez Чехия  
Дата: 11.05.20 14:17
Оценка: +1
Здравствуйте, Sheridan, Вы писали:

G>>Установка сложного приложения без докера выглядит так: ...

G>>Установка с докером — передать образ и запустить пару команд в командной строке. Всю работу по конфигурации берет на себя разработчик.
S>ansible-playbook playbook-deploy.yaml и оно может даже само выкачать всё нужное.

только какая то старая версия может пропасть с серверов, тогда надо делать ее копии у себя и тд
Re[4]: Docker - для релиза или для разработки?
От: Sheridan Россия  
Дата: 11.05.20 14:46
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>только какая то старая версия может пропасть с серверов, тогда надо делать ее копии у себя и тд

Не распарсил... Старая версия чего? Куда пропасть? Зачем сохранить?
Matrix has you...
Re[5]: Docker - для релиза или для разработки?
От: mogadanez Чехия  
Дата: 11.05.20 15:55
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Не распарсил... Старая версия чего? Куда пропасть? Зачем сохранить?


1) Устновить nodejs\веб-сервер\еще какую-нибудь-фигню версии 15.43.442, именно такой, потому что на другом не тестировалось и корректность работы не гарантируется.
2) Поднять базу на mongodb 12.697 и кэш на редис на 3.974, именно на таких, потому что на других не тестировалось и работоспособность не гарантируется.


S>ansible-playbook playbook-deploy.yaml и оно может даже само выкачать всё нужное.

Re[6]: Docker - для релиза или для разработки?
От: Sheridan Россия  
Дата: 11.05.20 16:00
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>

M>1) Устновить nodejs\веб-сервер\еще какую-нибудь-фигню версии 15.43.442, именно такой, потому что на другом не тестировалось и корректность работы не гарантируется.
M>2) Поднять базу на mongodb 12.697 и кэш на редис на 3.974, именно на таких, потому что на других не тестировалось и работоспособность не гарантируется.

В чём именно проблема?

M>

S>>ansible-playbook playbook-deploy.yaml и оно может даже само выкачать всё нужное.

А, тебе слова не понравились. А почему ты решил что "выкачать всё нужное" означает "выкачать самые последние версии всего подряд"?
ansible это описание деплоя, код. Как напишешь — так и будет.
Matrix has you...
Re[8]: Docker - для релиза или для разработки?
От: Cyberax Марс  
Дата: 11.05.20 16:51
Оценка: +1
Здравствуйте, Sheridan, Вы писали:

C>>Далее, в большинстве приложений системы сборки позволяют иметь только одну версию библиотек. Так что если какая-то команда хочет использовать более новую версию зависимости (скажем, взять новую версию OpenSSL), то это будет влиять на все остальные команды. В результате, по мере роста проекта такие обновления становятся всё более болезненными. В случае с API всё просто.

S>Правильно ли я понял что срач разводится в микросервисах проще и быстрее, чем в монолите?
Нет, микросервисы не проще и не быстрее монолита. Они позволяют масштабироваться для очень больших проектов, над которыми работает сотни человек.
Sapienti sat!
Re[7]: Docker - для релиза или для разработки?
От: Mamut Швеция http://dmitriid.com
Дата: 11.05.20 16:54
Оценка:
C>Ну и напоследок, в случае с API обычно легко контролировать кто и как его использует

Мммм. Ну, это не совсем так.


dmitriid.comGitHubLinkedIn
Re[8]: Docker - для релиза или для разработки?
От: Cyberax Марс  
Дата: 11.05.20 17:01
Оценка:
Здравствуйте, Mamut, Вы писали:

C>>Ну и напоследок, в случае с API обычно легко контролировать кто и как его использует

M>Мммм. Ну, это не совсем так.
Зависит от реализации. В Амазоне для использования API обычно требовалось, чтобы команда добавила разрешения для конкретных клиентов.
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.