
Igor
08.09.2017
09:25:50
(не плохо бы третий пункт добавлять - для тех кто не пишет мик. серв, а нажать хочется)

Vlad
08.09.2017
09:26:37
Еще вариант с git сабмодулями добавить можно.

Eugene
08.09.2017
09:26:38
Потомуштогит

Nick
08.09.2017
09:27:36
сабмодули хоть както бы решили, но идея не могет в них, поэтмоу каждому свой проект и своя репа

Google

Del
08.09.2017
09:27:40

Anton
08.09.2017
09:31:47
Я вот думал что микросервисы - это уже про разные команды. И если изоляция происходит на уровне кода, в репозиториях, то у меня возникает вопрос, какие же задачи решают разработчики проекта микросервисным подходом? Или может быть нет там микросеовисов вовсе?

Aleksander
08.09.2017
09:32:25
У меня такие соображение: каждому микросервису, свой гит, чтобы удобно было смотреть изменения по нему, без всяких коммитов-шумов. Но, когда я работаю с несколькими из микросервисов, я их импорчу себе в проект, и работают с одним окном и n сервисов

Dmitry
08.09.2017
09:32:36
https://12factor.net/codebase

Митко Соловец?
08.09.2017
09:32:53

Aleksander
08.09.2017
09:32:58

Vlad
08.09.2017
09:33:05

Митко Соловец?
08.09.2017
09:33:19
читал такую мысль, что нет в микросервисах проектного подхода
типо админы, фронтендеры, бэкендеры и т.д.
а просто тасуют народ и каждый раз на новый сервис посылают
т.е. сегодня я с Антоном пилю один сервис, а завтра с Васей другой
на то он и микро

Denis
08.09.2017
09:34:19

Google

Anton
08.09.2017
09:34:31

Nick
08.09.2017
09:35:40
Я в идее их пользую.
Чета год назад, когда я пытался это использовать нихера нормально не работало, хотя уже точно и не упомнишь в чем пробелмы были

Aleksander
08.09.2017
09:36:13

Мытко
08.09.2017
09:36:21

Anton
08.09.2017
09:36:29

Мытко
08.09.2017
09:36:44
у юдасити есть курс по куберу и докеру и они об микросервисах тоже там рассказывают

Arsen
08.09.2017
09:36:44

Anton
08.09.2017
09:37:40

Митко Соловец?
08.09.2017
09:38:13
мне нравится, что когда проджект пер репо, джобы сиай для каждого проекта отдельно
тестируется тоже отдельно

Arsen
08.09.2017
09:38:33
ну в этом есть плюсы

Anton
08.09.2017
09:38:52

Митко Соловец?
08.09.2017
09:38:54
по сути сиай двухуровневый

Anton
08.09.2017
09:39:07

Митко Соловец?
08.09.2017
09:39:18
для поднятия всех компонент
даже вот в РП немного обсуждали это

Arsen
08.09.2017
09:39:40

Google

Anton
08.09.2017
09:39:41

Митко Соловец?
08.09.2017
09:39:46
когда я вопрос задал

Anton
08.09.2017
09:40:22

Митко Соловец?
08.09.2017
09:40:33
мое мнение - интеграционный

Aleksander
08.09.2017
09:40:41
я бы сделал отдельно модуль, с общими элементами для тестов. И в каждый микросервис пихал его как тест компайл, а дальше бы писал тесты

Митко Соловец?
08.09.2017
09:40:43
и можно юзать докер-контенеры для зависимых компонент
а поднимать в том репозитории, что оттестировать хочешь
системные прогоняются на всей системе вроде как, по крайней мере мне так ответили на стриме)
кстати, для следующего РП темы еще не подбирали?

Anton
08.09.2017
09:41:54

Митко Соловец?
08.09.2017
09:41:57
может обсудим вот это?
люди в команде у вас есть с такой экспертизой

Anton
08.09.2017
09:42:09

Митко Соловец?
08.09.2017
09:42:19
@gamussa что скажешь?

Мытко
08.09.2017
09:42:20
в чем тогда разница между интеграционными тестами и системными?

Daniel
08.09.2017
09:42:43

Митко Соловец?
08.09.2017
09:42:47

Aleksander
08.09.2017
09:42:51
А были ли РП про zookeeper или подобные вещи? Кто знает? =)

Митко Соловец?
08.09.2017
09:43:26
но грань очень тонкая и хотелось бы прояснения от сильных мира сего
поэтому @gamussa

Google

Митко Соловец?
08.09.2017
09:43:35
откликнись как будешь доступен

Anton
08.09.2017
09:44:39

Митко Соловец?
08.09.2017
09:45:06
Не было
Антон, ну или ты, пожалуйста, передай Виктору этот вопрос.

Мытко
08.09.2017
09:45:18
зачем
он тебе ответит позже

Митко Соловец?
08.09.2017
09:45:45
зачем
может он в телегу не заходит, на всякий случай

Anton
08.09.2017
09:46:16

Aleksander
08.09.2017
09:46:47
Не было
Жаль, у меня сейчас каша в голове. Изучаю zookeeper, пока все хорошо, но он сам по себе странноват.

Admin
ERROR: S client not available

Anton
08.09.2017
09:47:48
У нас вот интеграционные тесты лежат с кодом приложения. Системные тесты в отдельной репозитории, и поднимают все модули, не важно сколько их там тестируется. Мой вопрос про 2 из 5 был набросом :)

Мытко
08.09.2017
09:48:34
а интеграционные тесты к чему доступ имеют?

Anton
08.09.2017
09:48:42
В интеграционных тестах вполне нормально использовать моки на уровне системы. В системных тестах все компоненты настоящие

Alexey
08.09.2017
09:49:53

Anton
08.09.2017
09:49:56
Бывают исключения, конечно, когда.какойто сервис вообще внешний и обращение к нему стоит денег. Если такое автоматизировать на живую, может дорого обойтись :)

Мытко
08.09.2017
09:50:06
например, я хочу протестировать какой-то сервис в приложении, который работает с базой

Митко Соловец?
08.09.2017
09:50:12

Мытко
08.09.2017
09:50:14
у нас есть база в тестовом контуре

Aleksander
08.09.2017
09:50:15

Мытко
08.09.2017
09:51:38
где нужно мокать, а где нужно реально использовать реализации?
если это интеграционный тест

Google

Митко Соловец?
08.09.2017
09:52:07
вот поэтому я их хочу, чтобы РП новый на эту тему был

Мытко
08.09.2017
09:52:33
я бы книжку прочитал
лучше

Митко Соловец?
08.09.2017
09:52:49
окей, скинь мне книжку такую

Мытко
08.09.2017
09:53:56
https://www.amazon.com/Integration-Testing-Trenches-Nicolas-Frankel/dp/2955021431
вроде выглядит неплохой

Anton
08.09.2017
09:55:48
Николас хороший дядька, вредного не посоветует

Мытко
08.09.2017
09:56:11
с амазона заказать
или купить на торренте

Anton
08.09.2017
09:56:24

Igor
08.09.2017
09:56:53

Oleksandr
08.09.2017
10:00:01
@fundamentalparticle когда на сайте РП выложите 141 выпуск?


Alexey
08.09.2017
10:13:29
Народ, не упарывайтесь по тестам, там все просто. Лучше делите на группы по длительности:
[очень быстрые] - юнит, их должно быть много и от них зависит сборка пакета перед деплоем/покоммитная сборка. Они проверяют всю логику и ветвления, после этого логику тестировать уже не надо на уровне системных/интеграционных.
[быстрые] - интергационные, в них все внешние системы замоканы, но используются большие связные куски вашей системы. БД может быть embedded, поэтому они тоже довольно быстрые. Покоммитная сборка может от них не зависеть, но сборка билда/пакета должна. Они не должны тестировать логику, они тестируют связи компонентов.
[медленные] - системные, они используют реальные внешние системы (БД, зукипер, редис) и обычно запускаются против приложения, развернутого в dev или prestable контуре. Сборки от них не зависят, но когда они красные билд не едет в прод. Могут занимать и полчаса, но чем быстрее - тем лучше - меньше time to market. Их еще можно назвать регрессионными.
[очень медленные] - например smoke. Подтип системных, но когда даем запредельную нагрузку. Эти по желанию, если важно держать rps на заданном уровне и не подохнуть на пике.


Sergey
08.09.2017
10:39:49
smoke это не оч медленные
в каком случае пишете интеграционные и выше тесты?

Alexey
08.09.2017
10:43:02
Всегда, без них стрёмно

Sergey
08.09.2017
10:44:06
90% покрытие интеграционными? как поддерживаете все моки внешних систем и базы?

Alexey
08.09.2017
10:47:31
По coverage не скажу, это больше характеристика юнит тестов. Моки нечасто выходят из строя, когда выходят - ручками поддерживаем

Anatoliy
08.09.2017
10:49:38
Тоже вот стараемся писать на все что можно юниты и интеграционные, с тестами jms много заморочек было, если бы ещё во всех микросервисах проекта был spring boot, а то без mock bean и прочего сахара в интеграционных тестах - стремно иногда становится прям..
Ну сейчас ещё для тестов сопряжения нескольких микросервисов, есть мысль соседние сервисы в докер завернуть. Но это прям slowly tests.. Делать такое перед каждым пул-реквестом терпения не хватит.