Мерль
Жаль, я такой лайтиде предложил, а его пять секунд попинали и забыли
Омень
A.
Я на него глянул, закрыл, и с радостью глянул на саблайм
A.
Мне саблайм вообще всё заменяет
Oleg
A.
Здесь вроде было
A.
Слепить надо через @vote опрос
Мерль
Похоже у меня одного такие специфичные вкусы
A.
[Из песочницы] Пишем backend на go с минимальными усилиями при помощи GoJs
https://habrahabr.ru/post/301762/
Slava
мне нужны контрибьютеры
A.
дыа
Мерль
Slava
сюда, например https://github.com/bot-api/telegram
Мерль
Мерль
Oleg
Oleg
Ребята, кто что думает про микросервисы?
Oleg
Именн атомизация на функции, а не SOA, как всегда было раньше
Oleg
Уже второй проект встречаю где микросервисов под 30 штук, мне кажется это overkill
Oleg
Мерль
Ребята, кто что думает про микросервисы?
ИМХО идея здравая (в смысле, тупенькие простенькие кирпичики всегда приятнее, чем здоровенная бандура ф-ля-давайте-напишем-что-то-вроде-ядра)
С другой стороны хорошо-бы без фанатизма, типа когда у нас есть микросервис, который правильно расставляет отступы в документе
Oleg
Мерль
Где граница?
Когда микросервисов в проекте больше, чем разработчиков :3
Marsel
имхо стороны потенциально большой проект будет "проще" писать со временем, в теории. ну т.е. с ростом кодовой базы будет меньше борьбы со старым кодом, время на разработку по идее не должно увеличиваться пропорционально усложнению ядра.
Oleg
Oleg
Marsel
ну да )
Igor
Oleg
Пр таком подходе есть проблема с отладкой и согласованностью версий апи(библию микросервисов не читал пока)
Igor
В этом то вся пока и проблема для меня. Слишком много вариантов.
Oleg
Marsel
недавно на хабре была хорошая аналогия с О большой. т.е. можно например кодовую базу и работу с ней оценивать по методу оценки алгоритмов. ну т.е. если ядро постоянно усложняется - то имеет смысл задуматься о микросервисах. с другой стороны если ядро постоянно усложняется, то вероятно дело уже в людях, и может им уже не помогут микросервисы :)
Slava
монолит наше всё
Marsel
ну т.е. вероятно оценка необходимости по О большой может помочь, в теории )
Oleg
Marsel
ну я про сам подход, на самом деле. можно процессы оценивать схожим образом и уже от этого плясать
Igor
Oleg
Как быть с реестром этих сервисов, логг рованием, health check?
Marsel
Marsel
ну микросервисы это логистика в первую очередь. помню видел выступление системного архитектора с варгейминга, он там немного рассказывал как у них работают со всеми сервисами: расписание релизов, четкие требования, дедлайны. но это в сложном случае. частично совсем простейшие микросервисы могут быть менее критичными в плане сложности, с другой стороны чем проще, тем больше кол-во микросервисов. тут видимо уже архитектор должен решить сам, что ему сейчас нужно. ну и вновь возвращаемся к здравому смыслу.
Oleg
Если дать каждому по одному микросервису, все встает на свои места :)
Oleg
Пишешь на чем хочешь, поддерживаешь свой код как нужно и тд и тп
Мерль
Дай человеку монолит, и у него будет работы на год.
Дай человеку микросервис, и у него будет работа на всю жизнь
Igor
Oleg
Что проще поддерживать? Ведь это самый важный показатель качества по
Marsel
https://www.manning.com/books/the-tao-of-microservices
вроде хвалят уже после вступления. сам еще не добрался.
Мерль
Oleg
Igor
Вообще, я уже с год вынашиваю микросервисную архитектуру на NATS, но пока не было необходимости. Есть и обертки-генераторы с Thrift, и балансировка, дискавери. Версионировать можно по топикам.
Oleg
Свобода от легаси
Предполагается что один человек никогда себе же не оставляет легаси, так а делает все правильно с первого раза :D
Oleg
Igor
Свобода от легаси
Ну на практике это работает, раз Uber переписал разом сервис с Node на Go и счастливы.
Oleg
Именно! Ключевое слово сервис
Oleg
А не микросервис
Igor
Обертки — да, лишнее. А сервис-дискавери вещь нужная. NATS в этом плане дает примерно то же что Kubernetes, причём одним бинарником на Go.
Oleg
Igor
NATS? Не, это кластерная мессаджинг-система. Там есть очереди, но они скорее с клиентской стороны.
Igor
Ими как раз балансировать можно.
Igor
Грубо — просто транспорт. Шлешь нагрузку в топик, а дальше кому придет уже не твоя проблема.
Oleg
Ну это и есть основной юзкейс очереди же
Oleg
Мне кажется, если все таки решили использовать микросервисы, то первая и важнейшая задача - подготовка и настройка инфраструктуры
Oleg
А какой именно инструмент, наверное не очень сильно важно
Igor
Ну это тонкая грань. Если использовать очередь для роутинга, то это все же оверкил. Messaging system (message bus) объединяет сервисы, работает транспортом. Там нет персистентности, at least once delivery и т.д.
Slava
у нас тупой http
Slava
между сервисами
Slava
без всяких очередей
Igor
Все как у людей. :) А service-discovery, версионирование?
Slava
rpc поверх http
Oleg
без всяких очередей
Как авторизация сервисов происходит? Просто в подсети без авторизации или есть слой на уровне приложения?
Slava
авторизация?
Slava
зачем?