Re[53]: Идемпотентность POST - хорошая ли практика?
От: maxkar  
Дата: 08.10.22 12:34
Оценка:
Здравствуйте, ·, Вы писали:

·>Дай доступ. ... Терабайты съэкономишь.

Ой! Какой ужас, терабайты! Давайте посчитаем, сколько они стоят. Например, aws ec2 transfer. Самый дорогой — это первые 10Тб, отправленные в интернет. Стоит это 0.09 USD/GB. Т.е. 90 USD/TB. Это где-то 1.5-2 человекочаса. Если вдруг терабайт заголовков позволяет сэкономить 2 часа (суммарно) на координации, переключениях контекста и прочем обслуживании, мы остаемся в плюсе! Данный доступ — это плохое решение. Вместо того, чтобы иметь одну систему мониторинга (для своих сервисов) команда теперь будет вынуждена ходить в несколько различных — свою и каждой зависимости. На ровном месте мы чуть-чуть экономим на заголовках и создаем проблемы администрирования и координации!

Кроме того. Есть еще один замечательный момент. Заголовок с содержимым выглядит примерно так: "X-API-Warnings: W084,W092,W103". Округляя, 100 байт. В килобайте — 10 заголовков. В терабайте 10^10. (мега, гига, тера — 3*3 порядка). Допустим, команда все три месяца ничего не делала и перешла на новый API в последний момент. Т.е. 10^10 ответов было отправлено за 3 месяца. Это дает 10^10 / 3 / 30 / 24 / 60 / 60 = 1286 сообщений в секунду. Что-то мне кажется не очень выгодным тратить время команды, поддерживающей такую нагрузку, на административные задачи и координацию. Я думаю, разработчики будут гораздо более полезны на технических задачах и задачах бизнеса.

Что еще. Если у нас терабайты дополнительных заголовков, то логи не работают. Потому что логов тоже терабайты. Ну ладно, по сети они передаются сжатыми. Но обработка и хранение? Я пока не встречал ни одного предложения по обработке логов, где 1ТБ стоил бы всего 90 USD. Так что остаются только метрики. Для этого нам нужно идентифицировать клиентов. Здравствуйте, заголовки. И я уже упоминал сценарий, где несколько deployment unit являются частью одного сервиса и используют одни и те же credentials. Коллега тут предложил использовать "User-Agent". Ну т.е. заголовок. В каждом запросе (API Warnings ходят только там, где есть предупреждения). И по размеру обычно гораздо больше, чем те же коды предупреждений. И кто из нас экономит траффик?

Ну и потом, гоняться по разным Jira и системам за командами — то еще удовольствие. Ведь нужно не только поставить тикет. Нужно, чтобы его заметили нужные люди (я себе настраиваю так, чтобы digest новых тикетов отправлялся на почту каждый день, но далеко не все так делают). Нужно, чтобы не забыли. Особенно если сейчас они заняты другим. А вот постоянно горящая лампочка check engine api usage — хорошая напоминалка. И если команда пользователей делает лампочку сама, с большой вероятностью она окажется на приборной панели (на виду) а не где-нибудь под капотом (там, куда никто из команды не заходит).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.