@devops_ru

Страница 1945 из 4568
Alexander
02.01.2017
23:21:58
нет, если тебе нужны кубики - то тебе фласк, а не джанга
глупый спор, я пробовал вообще все фрейморки на питоне и выбрал то, что мне нравится, если ты сделал так же и считаешь, что фласк лучше и быстрее - ок)

Nikolay
02.01.2017
23:22:08
но, по моему опыту, орм джанги, например - неловкая поделка на фоне SQLAlchemy

а движок шаблонов - говно по сравнению с jinja2

Google
Roman
02.01.2017
23:22:48
это CRUD, где урлы - идентификаторы записей
а во-вторых, rest - это всегда медленно.

Alexander
02.01.2017
23:22:52
и если уж нужна SQLAlchemy - я бы выбрал Pyramid, а не Flask

Nikolay
02.01.2017
23:23:01
и если уж нужна SQLAlchemy - я бы выбрал Pyramid, а не Flask
это на здоровье, у flask просто инфраструктура получше

Alexey
02.01.2017
23:24:20
rest^Whttp
http1, http2 относительно быстро парсится ибо бинарный

Alexander
02.01.2017
23:24:43
я с этим не согласен но пофиг) ладно, давай на другую тему, не будите во мне Чистякова))

Pavel
02.01.2017
23:25:03
валидировать - jsonschema или wtforms
Rest это не json. И не данные из форм

Nikolay
02.01.2017
23:25:05
Rest это не json. И не данные из форм
это просто структурированное представление объекта, пофиг в каком формате

но на практике чаще всего json

Roman
02.01.2017
23:26:14
rest^Whttp
нет, дело не в http даже

Pavel
02.01.2017
23:27:00
это просто структурированное представление объекта, пофиг в каком формате
Ты утверждаешь, что jsonschema валидирует любой формат, так?

Roman
02.01.2017
23:27:09
http1, http2 относительно быстро парсится ибо бинарный
ну, http2 чуть ситуацию улучшает, да. но на линках с пакетлоссом там всё будет хуже даже.

Google
Nikolay
02.01.2017
23:27:22
но ты на практике вряд ли будешь не-json использовать, верно?

хоть REST сам и не о JSON конкретно

Roman
02.01.2017
23:28:54
Alexey
02.01.2017
23:28:55
мне кажется если сейчас делать API для клинетов не умеющих gRPC — то лучше делать это через https://github.com/grpc-ecosystem/grpc-gateway

Pavel
02.01.2017
23:29:27
но ты на практике вряд ли будешь не-json использовать, верно?
Ты инструмент под задачу выбираешь, или задачу под инструмент?

Nikolay
02.01.2017
23:31:14
Ты инструмент под задачу выбираешь, или задачу под инструмент?
инструмент под задачу, разумеется. Но мне сложно представить задачу реальную сейчас, где мне надо будет что-то, что не JSON или XML

Alexey
02.01.2017
23:31:21
ну, http2 чуть ситуацию улучшает, да. но на линках с пакетлоссом там всё будет хуже даже.
начитались тут презенташек от Fastly. Это далеко не полная правда. Их суждение было что h2 из-за того, что у него HOL-blocking хуже работает на lossy линках, потому, что CUBIC на них медленный. Тот же тест с TCP NV или TCP BBR даст совсем другие результаты. Не стоит доверять чужим данным не проверяя их.

ну, это для инвалидов )))
а есть варианты лучше?

Roman
02.01.2017
23:31:43
проблема rest в том, что хер там сделаешь батчинг. а если его сделать, то всё сводится к одному эндпоинту и уже никакой это не рест )

Nikolay
02.01.2017
23:34:10
Держи YAML, например
держу, но я ни разу не видел REST на YAML’е в жизни

и да, JSON - это тоже YAML

Alexey
02.01.2017
23:37:07
т.е. этот фрейминг реализует те же самые дейтаграммы что в ip, только с гарантиями доставки и очередности + сильная зависимость от соседних потоков.
не сильная. из-за наличия SACK и fast-retransmit, оно в большинстве случаев добавляет не больше одного rtt в случае даже сильного packetloss'а.

Roman
02.01.2017
23:37:20
в смысле? коллекция объектов - такой же объект
мм... смотри. я пример этот уже приводил и просто повторюсь: надо послать и убедиться в доставке 10к смс-сообщений через сервис, который умеет послать смс(вернув message id) и по этому message id сказать статус(доставлено/нет).

Google
Roman
02.01.2017
23:39:36
не сильная. из-за наличия SACK и fast-retransmit, оно в большинстве случаев добавляет не больше одного rtt в случае даже сильного packetloss'а.
ты исходишь из преположения, что мы вот перепослали и всё збс. в мобильной сети твой ack может проваляться несколько секунд где-то в буферах устройств на пути.

Nikolay
02.01.2017
23:39:48
ты берешь и сабмитишь коллекцию из 10 объектов PUT или POST запросом на урл, тебе в ответ приходит 10 тех же объектов с привязанными к ним тасками, у которых обновляется статус

Alexey
02.01.2017
23:41:28
опять же, я не говорю что мультиплексировать вещи внури tcp — это праям охуенная идея, я лишь говорю, что большинство этих проблем было решено командами из Гугла 5 лет назад. Когда они доготовят QUIC, то grpc наверняка плавно перейдёт на него

Roman
02.01.2017
23:41:48
если же ты про buffer bloat, то BQL, TSQ, FQ и pacing эти проблемы решают
ну и на всякие промежуточные устройства ты не сильно повлияешь. rtt в 10 секунд можно запросто словить в мобильной сети в момент перегруза.

Nikolay
02.01.2017
23:41:49
но это из задачи надо исходить, опять же

если у тебя больше разных типов объектов и действий с ними - тогда REST есть REST

Alexey
02.01.2017
23:42:44
это только linux.
на серверсайде всегда линукс, а с повсеместным андройдом, половина high packetloss клинетских девайсов тоже под ним

Alexey
02.01.2017
23:46:10
это не правда, для BBR, CDG, и New Vegas

Roman
02.01.2017
23:46:17
Alexey
02.01.2017
23:46:37
да, многие так делают, но это не свойство протокола

Google
Alexey
02.01.2017
23:46:53
это свойство конкретных имплементаций

Roman
02.01.2017
23:47:20
это не правда, для BBR, CDG, и New Vegas
дадада. но cdg крайне странно себя повёл, когда я его включил на наших серверах.

Alexey
02.01.2017
23:48:08
потому что его нельзя в продакшн, ибо он написан PhD для PhD. Его CUBIC задавит в интернете.

Roman
02.01.2017
23:49:10
потому что его нельзя в продакшн, ибо он написан PhD для PhD. Его CUBIC задавит в интернете.
ну, проблема с fairness - это мелочи по сравнению с тем, что многие клиенты просто тупо отвалились

скатились к каким-то жутким нескольким кб/с

Alexey
02.01.2017
23:49:50
это крайний случай не-fairness - starvation

Pavel
02.01.2017
23:49:53
держу, но я ни разу не видел REST на YAML’е в жизни
Допустим, YAML не потребуется парсить. А как ты будешь парсить XML с помощью jsonschema?

Nikolay
02.01.2017
23:50:26
а REST может определять тип, с которым работать, по заголовку в запросе клиента

а что тебе не нравится?

Pavel
02.01.2017
23:50:59
Для валидатора потребуется еще раз описать правила?

а что тебе не нравится?
Первый типичный кейс, а уже надо ставить какой-нибудь валидатор xml

Roman
02.01.2017
23:52:42
Pavel
02.01.2017
23:52:53
Дальше я бы тебя спросил про кеширование, про etag, про интеграцию с sqlalchemy

Roman
02.01.2017
23:53:59
это крайний случай не-fairness - starvation
так там не было дефицита полосы. и это странно.

Alexey
02.01.2017
23:55:26
Люди, одумайтесь, не пишите вы это говно в ручную, возьмите ваш внутренний типизированный бинарный RPC, и генерите автоматом стабы для api-gateway'я который вам будет преобразовывать входящий JSON обратно в thrift/protobuf/etc и дальше отсылать по вашему внутреннему RPC. Нафиг вам 2 разные системы? Вот простой пример прямо от GCP: https://cloud.google.com/service-management/reference/rpc/google.api#http

Alexey
02.01.2017
23:56:59
так там не было дефицита полосы. и это странно.
он мог быть на любом из роутеров между сервером и клиентом. Плюс, учитывая что оно никогда не тестировалось за пределах лаб, не исключено, что там ещё и море багов

Google
Alexey
03.01.2017
00:00:11
в Go/C++/Rust у нас тоже эти вещи проверяет компилятор, в Python protobuf stub'ы аннотированы mypy. Это не спицифично для какого либо языка, это можно сделать везде.

Alexey
03.01.2017
00:08:07
Речь про внешнюю была вроде :)
Для внешней балансировки DNS — это пиздец. У нас был случай когда какие-то принтеры резолвили dropbox.com только на старте. Пришлось год ждать пока они все поребутаются, чтобы выкинуть старый IP. Да что далеко ходить, куча провайдеров по миру имеют говноадминов, которые настроили bind игнорировать любой TTL меньше месяца. Мы так на www месяц ждали чтобы со старого IP безопастно уехать.

(про DDoS я вообще молчу, если у вас есть куча "слабых" unicast IP'шников - заддоить очень просто)

Pavel
03.01.2017
00:18:27
Сформулируй, что хотел сказать-то

Alex
03.01.2017
00:23:49
Леголас фигню пороть не будет

Uncel
03.01.2017
00:28:14
https://arxiv.org/pdf/1611.05428.pdf

Nikolay
03.01.2017
00:52:31
Вы сейчас через эту реальную задачу общаетесь)
ты хочешь сказать, что внутри телеграма REST?

Дмитрий
03.01.2017
00:52:40
Но бинарный полиморфный язык телеграма это уже слегка перебор, конечно

Nikolay
03.01.2017
00:53:19
не, бинарных протоколов много разных

мы именно про REST

Roman
03.01.2017
01:26:55
мы именно про REST
Я уже писал: рест очень быстро вырождается в единственный эндпоинт

Nikolay
03.01.2017
01:27:35
когда вырождается, когда нет

для CRUD - REST, для запуска удаленных процедур - RPC, на деле обычно комбинация из обоих подходов

Nikolay
03.01.2017
01:32:22
Ну так ещё вопрос в оверхеде
оверхеда так или иначе не избежать

Или вот надо тебе поллить 10к обьектов
и? делаешь коллекцию из 10к объектов объектом с таской с 10к статусов

Страница 1945 из 4568