А если пользователю нужно сгенерить один и тот же хэндлер и для grpc и для http (например для фронта и для другого сервиса), получается ему нужно описать это в двух спеках и написать две реализации (и потом еще следить, чтобы они не разошлись)?
Пакет https://github.com/grpc-ecosystem/grpc-gateway тоже используем, и такая возможность http->grpc включается переменной окружения. Но всё же мы различаем взаимодействие внутреннее (gRPC) и внешнее (фронт, мобильное приложение, клиенты), которое у нас принято описывать по спецификации openapi. Поэтому такой прокси в основном у тестировщиков востребован.
Я понимаю, что это первая статья из цикла, но как будто маловато технических подробностей для затравки:
Да, технических подробностей пока будет немного. Сейчас мы хотели рассказать историю и обзор возможностей, но дальше, конечно, будем добавлять статьи с техникой.
Какой минимум времени уходит от вызова команды инита сервиса до деплоя в прод? С учетом подключения всей инфраструктуры (условный кубер, БД, логи, дашборды)
Первый наш эксперимент показал, что от создания сервиса, до выкатки ушло 4 минуты. Это было больше сделано для продвижения PaaS в компании, в реальности выходило чуть больше. Прошло время и сейчас среднее время это минут 15: добавилось много линтеров, проверки на безопасность, тесты и прочее.
Для gRPC и HTTP пользователь пишет разные спеки или какую-то одну?
Да, спеки разные (proto и openapi), т.к. HTTP это для доступа к сервису через Gateway API, а gRPC для внутреннего общения между сервисами.
Тут было интересно послушать какой стек выбрали для всего этого — от библиотек до бэкендов.
Да, посыл-то понятен, но т.к. пост без ссылок, то может показаться, что существующие решения не рассматривались :)
Кстати, у вас работает хорошо, кроме, пожалуй, этого «странного» эффекта с запаздывающим заголовком )
У плагина есть некоторые настройки. Вроде flickDirection и preventDefault должны решить проблему скролла. Точно не помню. Я как раз боролся ровно с обратной проблемой, чтобы вертикального скролла не было :)
> хотя, что интересно, в последнее время закрепился i7.
Думаю, что это объясняется просто: версия продукта в виде числа говорит само за себя — чем выше число, тем очевидно продукт новее/лучше/мощнее/etc. Если не использовать числа, то покупателю придется напрячься, чтобы понять в чем разница между Core Солнышко и Core Василек, и какая это разница?
(тут звук как при неправильном ответе ;))
Как может антивирус визжать от гнева или от вида вируса, он же как робокоп: холодные мозги, стальной хозблок и мощная пушка!
Не несите чушь. Вы хоть понимаете причины этого кризиса? Для начала попробуйте разобраться что такое фондовый рынок, банковская система и страхование, и что это всё значит для реальной экономики.
Пакет https://github.com/grpc-ecosystem/grpc-gateway тоже используем, и такая возможность http->grpc включается переменной окружения. Но всё же мы различаем взаимодействие внутреннее (gRPC) и внешнее (фронт, мобильное приложение, клиенты), которое у нас принято описывать по спецификации openapi. Поэтому такой прокси в основном у тестировщиков востребован.
Привет!
Да, технических подробностей пока будет немного. Сейчас мы хотели рассказать историю и обзор возможностей, но дальше, конечно, будем добавлять статьи с техникой.
Первый наш эксперимент показал, что от создания сервиса, до выкатки ушло 4 минуты. Это было больше сделано для продвижения PaaS в компании, в реальности выходило чуть больше. Прошло время и сейчас среднее время это минут 15: добавилось много линтеров, проверки на безопасность, тесты и прочее.
Да, спеки разные (proto и openapi), т.к. HTTP это для доступа к сервису через Gateway API, а gRPC для внутреннего общения между сервисами.
Для метрик: https://github.com/prometheus/client_golang, бэк https://victoriametrics.com/
Для логов: https://github.com/uber-go/zap, бэк ELK
Для tracing изначально использовали https://github.com/opentracing/opentracing-go, затем мигрировали на https://github.com/open-telemetry/opentelemetry-go. В данный момент в компании на прием спанов работают Jaeger и Sentry. Приложение на Go может отправлять в любой из них.
Тут можно много рассказать и показать, боюсь в комментарии много не раскрою, лучше отдельную статью сделаю.
Кстати, у вас работает хорошо, кроме, пожалуй, этого «странного» эффекта с запаздывающим заголовком )
Плагин для Zepto, выполняющий аналогичную функцию.
Думаю, что это объясняется просто: версия продукта в виде числа говорит само за себя — чем выше число, тем очевидно продукт новее/лучше/мощнее/etc. Если не использовать числа, то покупателю придется напрячься, чтобы понять в чем разница между Core Солнышко и Core Василек, и какая это разница?
Но мне кажется так лучше изучать код:
> puts RubyVM::InstructionSequence.compile(%{puts "Hello, YARV!"}).disasm
== disasm: <RubyVM::InstructionSequence:@>==========
0000 trace 1 ( 1)
0002 putnil
0003 putstring "Hello, YARV!"
0005 send :puts, 1, nil, 8, <ic:0>
0011 leave
Это что за страны с такими стандартами? В них запрещены гидро- и пневмоприводы ТС, усилители тормозов, EBD, BAS и т.п.?
Как может антивирус визжать от гнева или от вида вируса, он же как робокоп: холодные мозги, стальной хозблок и мощная пушка!
Попробуйте с rbc брать www.rbc.ru/out/802.csv
Я сравнивал с текущими.