TGViewer
Happy Devops — сообщество адекватных инженеров Happy Devops — сообщество адекватных инженеров @happy_devops · 1.8K subscribers
Post #75 976
Про факап на $100K

На интервью я люблю спрашивать про факапы, очень нравится мне слушать такие истории. Кстати, если человек говорит, что фейлов у него в карьере не было, то либо мало работал, либо что-то скрывает. Мне скрывать нечего, косяков я напорол достаточно😃 И вот сегодня расскажу вам историю, как я наказал родную компанию на 100 тысяч долларов

Работал я какое-то время назад в компании, которая занималась монетизацией мобильного трафика. И вот, в какой-то момент времени мы купили китайскую компанию поменьше и ее инфраструктуру надо было интегрировать к нам. А особенностью было то, что компания эта существовала довольно давно и у нее был договор с пачкой мелких китайских вендоров, что их (купленной китайской компании) рекламный SDK был на телефоны этих мелких вендоров предустановлен.

Ну и конечно же шло время, обновлялся андроид, версии SDK обновлялись вслед за ним, а поддержкой этих нонейм-девайсов никто и не морочился. В их ценовой категории дешевле было выпустить новый, чем страдать с поддержкой старого. Но эти девайсы все еще оставались онлайн и генерировали безумное количество паразитного, никому не нужного трафика, который приземлялся на эндпоинты этой купленной китайской компании.

Ну а особенности китайского софтописательства заключались в том, что они пытались сохранить некое подобие обратной совместимости и для новых версий SDK использовали (🤪) теже самые эндпоинты и как-то очень хитровыделанно фильтровали это на балансерах, нормальный трафик пропускали внутрь, а по паразитному отдавали код 400 и благополучно отваливались. Документации на все это естественно не было.

Я еще подивился, что у них схема такая необычная, что весь траф проходит сквозь шесть балансеров на каком-то азиатском хостинге и заворачивается в GCP. В процессе общения (кто общался с китайцами на английском, тот меня поймет) я так толком и не понял для чего это и решил разобраться потом, поджимало время.

Хостились мы тогда у замечательных ребят servers.com, я все это добро затащил у нам в контур, поставил под мониторинг и забыл. Через полтора месяца пишет мне СТО мессагу вида: "Андрей, у нас срочный созвон, через полчаса жду тебя в зуме". Прихожу я в зум, а там несколько директоров и CFO с очень странным выражением лица показывает счет от провайдера на 98 с чем-то тысяч баксов и очень недобро смотрит на меня, спрашивая "откуда все это?". Обычный счет на инфру был в районе ~15К в месяц (точно уже не помню) и я прилично охуел.

Пошли разбираться, быстро нашли причину, я понял основания для балансеров на азиатском хостинге (бесплатный трафик конечно же), быстренько соорудил что-то подобное на каком-то уже европейском хостинге без оплаты за трафик и расходы нормализовались.

Но 100 штук-то были уже потрачены. Я сразу сказал (и не соврал ни на секунду), что компенсировать я это не могу, даже если продам себя по частям, а пожить мне бы все-таки еще хотелось. Так что готов ко всему, выкидывайте меня как щенка нашкодившего если хотите, все было сделано по невнимательности и без злого умысла.

На что мне был дан ответ, что "мое обучение уже обошлось компании в 100 килобаксов и выкидывать меня, по меньшей мере, неразумно" (ну как в известной истории с гитлабом, последствия для инженера были такие же). Вот приятно все-таки работать с умными взрослыми людьми.

В итоге я поднапрягся, пару месяцев работал без выходных и с овертаймами, но таки смог оптимизировать расходы по инфре примерно процентов на 20 и нарисовал график, где мой факап постепенно гасится за счет сэкономленного бабла. В итоге даж премию получил, потому как после погашения моего проеба за счет экономии пошла чистая прибыль.

Вот такая вот история. Вы можете справедливо заметить, что сокращение костов и так являлось моей задачей (я работал в должности Head of Infra) и будете правы. Но в свое оправдание я скажу, что ценник всех устраивал, все было нормально оптимизировано, и за косты мне никто ничего не говорил. Я же проделал очень большую работу с закапыванием в код, кучей коммуникаций с разработчиками и приведения в порядок легаси в одно лицо.

Такая вот история🙂
GitLab Postmortem of database outage of January 31 Postmortem on the database outage of January 31 2017 with the lessons we learned.
  • 👍 19
More from @happy_devops
  1. Nov 28, 2025⚡ Совместный карьерный митап от Звук и self, сообщества для поддержки айтишников. Как стро…
  2. May 29, 2025🔥 База знаний тимлида: как въехать в процессы быстро и безболезненно! Подкаст Виктор Коре…
  3. Apr 16, 2025Дорогие друзья, уже на следующей неделе, 23 апреля в Амфитеатре Санкт-Петербургского конгр…
  4. Mar 28, 2025Eventual Consistency: когда доступность важнее мгновенной согласованности Eventual consist…
  5. Mar 26, 2025Гонка за новым функционалом не должна превращать систему в «хрупкого гиганта». SRE-практик…
  6. Mar 19, 2025Strong Consistency: между производительностью и надежностью данных Strong consistency — кл…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →