
Александр
15.12.2017
12:14:14
когда пинаешь товарищей они начинают про groovy рассказывать

Yuri
15.12.2017
12:29:23
Народ, подскажите. хотим монолит на микросервисы разбить предполагаем использовать consul. норм решение не норм? если нет то что лучше заюзать ?

Denis
15.12.2017
12:29:39
Для чего норм решение?

Google

Yuri
15.12.2017
12:29:50

Denis
15.12.2017
12:30:02

Yuri
15.12.2017
12:30:03
для дискавери сервиса
нет, поэтому и спрашиваю )

Denis
15.12.2017
12:30:43
Что есть прям четкой понимание зачем нужны микросервисы, как они изолированый друг от друга и прочее. и что реально не построите микролит

Yuri
15.12.2017
12:31:58
ну мы понимаем, что сейчас вырисовывается кусок функциональности относительно изолированный от остальной части, подумали сделать его микросервисом. поняли что нужен дискавери сервис

Александр
15.12.2017
12:32:11
скалазы, подскажите простую либу для валидации
нужно входные параметры проверить на простые факты - строка\числа\шестнацетиричное число итд
можно руками но стало интересно есть ли либы для простых и сложных валидация

Андрей
15.12.2017
12:32:50
http://eed3si9n.com/learning-scalaz/Validation.html

Denis
15.12.2017
12:33:10

Alexey
15.12.2017
12:33:13
plain scala nishtyak

Yuri
15.12.2017
12:33:36

Google

Denis
15.12.2017
12:33:57
это не инфраструктура
я про всякие докеры и прочее

Yuri
15.12.2017
12:34:30
докеры и ранчер

Александр
15.12.2017
12:35:00

Denis
15.12.2017
12:35:19
У меня просто радикальная позиция что микросервисы не должны вообще общаться внутри системы и только обрабатывать запросы снаружи. Внутри они должны реагировать на события друг друга.
По этому если нужен сервис дискавери - то это может быть звоночек непродуманной архитектуры :)
Но я не буду в это углубляться :))

Daniel
15.12.2017
12:36:13

Alexey
15.12.2017
12:36:54
Ну так то regexp

Aleksei
15.12.2017
12:36:55

Grigory
15.12.2017
12:37:45

Yuri
15.12.2017
12:37:56

Alexey
15.12.2017
12:38:07

Denis
15.12.2017
12:38:14

Yuri
15.12.2017
12:38:56

Daniel
15.12.2017
12:39:04

Александр
15.12.2017
12:39:20

Alexey
15.12.2017
12:39:22

Denis
15.12.2017
12:39:25

Aleksei
15.12.2017
12:39:47

Google

Denis
15.12.2017
12:39:59
балансер Оо
ну да ингресс какой нибудь, который роутит на контейнеры нужные

Yuri
15.12.2017
12:40:11
балансер Оо
мне всегда казалось что балансер для другого :)

Denis
15.12.2017
12:40:13

Alexey
15.12.2017
12:40:22

Yuri
15.12.2017
12:41:56
Как скажешь
нет , просвятите. я не притендую на мега архитекта :) ингресс ссыль дайте плиз

Eugene
15.12.2017
12:42:37
прям канал про анимэ! а есть тут совмещатели скалы с го? я так, интересуюсь.

Aleksei
15.12.2017
12:43:06
Был же Денис )

Denis
15.12.2017
12:43:18
Сервис дискавери нужен как факт все равно, я не спорю. Твой балансер должен знать где запущены нужные сервисы. Если у вас docker swarm то там есть ингресс вроде

Yuri
15.12.2017
12:43:56

Андрей
15.12.2017
12:44:21

Eugene
15.12.2017
12:45:07
ноу, я правда интересуюсь - как вы переключаете контексты между вот всеми этими монадами и "страница кода - и в продакшн, и оно работает 24/7/365 и даже память не течет"

Yuri
15.12.2017
12:45:15

Eugene
15.12.2017
12:45:32
опять же, я нежню люблю скалу и за нее даже платят деньги, но вот с го какие-то странные отношения, прям love-hate

Андрей
15.12.2017
12:50:31
что не http://lmgtfy.com/?q=scala+validation ?
Советы от Скаланов; что делать если Вам нужна простая валидация?
это через край токсичности, так-то. Прям зелёная жижа переливается

Grigory
15.12.2017
12:51:19
тогда что влаидация на скале выдаст? скала не нужна и всякое в таком духе. а так мы хоть на путь истиный можем наставить

Aleksei
15.12.2017
12:52:16

Grigory
15.12.2017
12:52:30
тоже верно(

Google

Yuri
15.12.2017
13:10:06

Vadim
15.12.2017
13:11:10

Yuri
15.12.2017
13:11:42
а что сделать чтобы набить поменьше ? :)

Vadim
15.12.2017
13:17:14

Yuri
15.12.2017
13:18:22
ну вот мы с одного и начали

Admin
ERROR: S client not available

Denis
15.12.2017
13:19:37
Если у вас docker swarm то лучше юзеть hostname
Надо почитать как он работате, если правит IP tables на каждом воркере или типа того то норм вариант
Rancher - вроде тоже умеет что-то такое, не уверен
Делать сервис дискавери на уровне приложения мне кажется уже отшумевшим решением

Yuri
15.12.2017
13:30:08
или ссылочки на почитать дайте

Denis
15.12.2017
13:34:33
https://docs.docker.com/docker-cloud/apps/service-links/#dns-hostnames-vs-service-links

Yuri
15.12.2017
13:35:47
спс почитаю

Евгений
15.12.2017
13:36:40

Daniel
15.12.2017
13:38:29
Привет скаланы
есть значение типа Option[A] и есть функция (A) => Future[B]. Как бы мне их так хитро скомбинировать, чтобы получить функцию (Option[A]) => Future[Option[B]]?
Не так выразился, просто нужно их функции (A) => Future[B] получить (Option[A]) => Future[Option[B]]

Дмитрий
15.12.2017
13:42:12
aOpt.map(f(_)).getOrElse(Future.successfull(None)) ?

Alexey
15.12.2017
13:42:29

Denis
15.12.2017
13:42:31
option.traverse(f)

Google

Denis
15.12.2017
13:43:44
val f: A => Future[B]
val g: Option[A] => Future[Option[B]] = _.traverse(f)

Daniel
15.12.2017
13:44:22

Denis
15.12.2017
13:44:33

Андрей
15.12.2017
13:45:19
@pomadchin тоже в ништяки?

Daniel
15.12.2017
13:45:22

Denis
15.12.2017
13:46:38

Oleksandr
15.12.2017
13:46:50
как будто открывается портал в ад

Aleksey
15.12.2017
13:47:54
а без катов слабо?

Daniel
15.12.2017
13:59:03
а без катов слабо?
ну можно импорты поменять на
import scalaz.syntax.traverse.ToTraverseOps
import scalaz.std.scalaFuture.futureInstance
import scalaz.std.option.optionInstance

Denis
15.12.2017
14:21:43
https://twitter.com/paulbiggar/status/941365423731220480
Норм вброс

Alexey
15.12.2017
14:28:39

Eugene
15.12.2017
14:30:12
оч хорошо

Aleksey
15.12.2017
14:51:23

Oleg
15.12.2017
15:18:36