TARMOLOV_WORK Telegram 83
Яндекс — это живой организм: появляются новые сервисы, закрываются старые, переписываются имеющиеся.

Инфраструктура — не исключение, и практически каждый год мы куда-то переезжаем ради светлого будущего.

Один раз я стал источником такого переезда для многих команд в Яндексе. Мне необходимо было закопать ряд старых API и перевести всех клиентов на новые версии.

Масштаб был следующий:
- 7 HTTP API
- 15к rps входящего трафика
- 150+ задач в трекере
- 1 год работы

Тогда я познакомился, наверное, с половиной Яндекса :)

В результате кропотливой работы у одного из API осталось всего два клиента.
Клиенты передавали специальный параметр key для своей идентификации.

Я решил явно ограничить доступ на уровне nginx, чтобы случайно не появился третий клиент:
if ($args !~ "key=(AF7SR0kBOFwIA6...rgAYKvhTSvW6lg==|AAhenE0BAAAA...BoBzqNuwHcQ==)(&|$)") {
...
}

Проверил на сервере. Работает. Прошел кодревью.
Со спокойной совестью начал раскатывать в продакшен.

Через несколько минут приходит wwax@ и вежливо спрашивает:
> Привет) Вы уже ручку закапываете? У нас очень плавно перестает отвечать ваш сервис.

Клиент стал получать примерно 1.3к rps ошибок со статусом 403.
В спешке откатили. Начали разбираться.

Оказалось, когда я копировал код с сервера, то случайно скопировал перенос строки.

Клиент отсылал нормальный ключ:
AAhenE0BAAAA...BoBzqNuwHcQ==

Мы ожидали на выход ключ с переносом строки:
AAhenE0BAAAA...\nBzqNuwHcQ==.

Даже на ревью две пары глаз не заметили лишнего переноса строки. Один лишний символ = инцидент. Такая вот факапочная арифметика.

Мораль: никогда не доверяйте себе на 100% и лучше лишний раз перестрахуйтесь при выкладке. Самоуверенность в любой момент может привести к печальным последствиям.

#байки #инциденты #инфраструктура



tgoop.com/tarmolov_work/83
Create:
Last Update:

Яндекс — это живой организм: появляются новые сервисы, закрываются старые, переписываются имеющиеся.

Инфраструктура — не исключение, и практически каждый год мы куда-то переезжаем ради светлого будущего.

Один раз я стал источником такого переезда для многих команд в Яндексе. Мне необходимо было закопать ряд старых API и перевести всех клиентов на новые версии.

Масштаб был следующий:
- 7 HTTP API
- 15к rps входящего трафика
- 150+ задач в трекере
- 1 год работы

Тогда я познакомился, наверное, с половиной Яндекса :)

В результате кропотливой работы у одного из API осталось всего два клиента.
Клиенты передавали специальный параметр key для своей идентификации.

Я решил явно ограничить доступ на уровне nginx, чтобы случайно не появился третий клиент:

if ($args !~ "key=(AF7SR0kBOFwIA6...rgAYKvhTSvW6lg==|AAhenE0BAAAA...BoBzqNuwHcQ==)(&|$)") {
...
}

Проверил на сервере. Работает. Прошел кодревью.
Со спокойной совестью начал раскатывать в продакшен.

Через несколько минут приходит wwax@ и вежливо спрашивает:
> Привет) Вы уже ручку закапываете? У нас очень плавно перестает отвечать ваш сервис.

Клиент стал получать примерно 1.3к rps ошибок со статусом 403.
В спешке откатили. Начали разбираться.

Оказалось, когда я копировал код с сервера, то случайно скопировал перенос строки.

Клиент отсылал нормальный ключ:
AAhenE0BAAAA...BoBzqNuwHcQ==

Мы ожидали на выход ключ с переносом строки:
AAhenE0BAAAA...\nBzqNuwHcQ==.

Даже на ревью две пары глаз не заметили лишнего переноса строки. Один лишний символ = инцидент. Такая вот факапочная арифметика.

Мораль: никогда не доверяйте себе на 100% и лучше лишний раз перестрахуйтесь при выкладке. Самоуверенность в любой момент может привести к печальным последствиям.

#байки #инциденты #инфраструктура

BY Тармолов про работу


Share with your friend now:
tgoop.com/tarmolov_work/83

View MORE
Open in Telegram


Telegram News

Date: |

In handing down the sentence yesterday, deputy judge Peter Hui Shiu-keung of the district court said that even if Ng did not post the messages, he cannot shirk responsibility as the owner and administrator of such a big group for allowing these messages that incite illegal behaviors to exist. How to create a business channel on Telegram? (Tutorial) The imprisonment came as Telegram said it was "surprised" by claims that privacy commissioner Ada Chung Lai-ling is seeking to block the messaging app due to doxxing content targeting police and politicians. Those being doxxed include outgoing Chief Executive Carrie Lam Cheng Yuet-ngor, Chung and police assistant commissioner Joe Chan Tung, who heads police's cyber security and technology crime bureau. To edit your name or bio, click the Menu icon and select “Manage Channel.”
from us


Telegram Тармолов про работу
FROM American