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