В 2002 году мы делали игру в британской компании которая имела филиал в беларуси. Один из наших моделлеров просто добавил логотип одного из кафе находящихся на легендарном Route 66 в америке. В игре мы ехали по Route 66 и ну логично было вставить что-то оттуда. Подумаешь какое-то кафе.. а оказалось что оно тоже настолько легендарное что нас вздрючили за это и компания заплатила те же 100 тысяч долларов тому кафе. Помню зарплаты у нас были по 300 долларов :) и это были оч хорошие зарплаты. В минске обычный работник на заводе или в магазине получал вроде 100 долларов, типа такая средняя хорошая зарплата была.
я как-то раз нашел ошибку, из-за которой пользователям начислялись на внутриигровой баланс лишние деньги, я чекнул по транзакциям, оказалось этому багу было уже несколько месяцев и успело начислиться примерно на 1млн долларов, это кончено не прямая потеря в один момент и не факт, что эти деньги как-то были переведены в реальные, но какая то часть денег была потеряна
Я понимаю, у всех бывают залеты, но синьор тем и отличается от джуна, что он сто раз перепроверит, убедится, что все отработает как задумано, подготовит откат изменений на случай если что-то пойдет не так. А деплоить что-то на прод на авось. Ну тогда можно джуна нанять. Он за меньшие деньги будет те же факапы совершать.Наверное, Михаил был в запаре, не хватило времени/сил. Бывает. Тут же еще проблема, что к одним клиентам попали данные других клиентов, насколько я понял. А это уже утечка информации.
Очень круто, что так просто рассказываете о свем косяке и относитесь к этому здраво, спасибо. Я не думаю, что вы это случайно, не осознано сделали, если честно, ну и что.. да, все устали от успешного успеха) Я люблю косяки, проблемы, трудности и стал так мыслить всего 1.5 года назад, когда мой маленький мирок рухнул. Мои косяки в проде лишь на мне и людей пользующихся моими прогами мало, сотнями, потому все проще и ругать меня не кому)))
Спасибо, что поделились своими факапами. Это жизнь все ошибаются, интересно было бы как начальство отреагировало на это? Лишило премии, дали выговор или пожурило?
Работаю на linux. И как-то была запара, вернувшись с обеда у меня несколько задач, которые нужно было выполнить в оставшееся рабочее время. Некоторые задачи имели длительные автоматические процессы(что-то загрузить, заархвировать и т.п.). Так что я делал несколько разлчных задач одновременно. Одной из задач оказаось развёртывание и тестирование нейросети. Но т.к. одновреенно выполнялос несколько задач, нейросеть случайно была развёрнута на продаакшн сервере одного из проектов, от чего этот продакшн сервер тоже устал и решил не просыпаться. В ближайшие 30 минут пришлось арендовать новый сервер с большими параметрами и бэкапать со старого всё. Ещё минут 10 ушло на поднятие проекта и выпиливание нейронки. Проблема возникла из-за невнимательности и перегруза задачами. В какой-то момент вместо локальной консоли я начал вводить команды в консоль сервера.
В плане расположения прода у вас идеальная ситуация, основные юзеры на другом краю земли и у вас есть целый рабочий день на релиз и тестирование - пока основая масса не проснется. Я бы вообще, запретил релизить под конец рабочего дня, только утром, и потом тестирование на проде. Сейчас, весь процесс разработки так устроен - что, если произошла ошибка - должны быть виноваты не только программист, но и 2-3 человека, как минимум QA - которые не должны были выпустить это на прод. По хорошему должен быть чек лист релиза, который проверяет основной функционал до выкладывания на прод и после выкладывания на прод.
Вот работаешь ты в компании где куча бюрократии. Что бы сделать релиз нужно кучу аппрувов, тестов и прочего. И если ты новичок, то воспринимаешь это как нечто плохое, не зная что именно такие ошибки и привели к бюрократии и сложным процессам релиза. Сейчас, после 10+ лет разработки, мне намного комфортнее работать с бюрократией, чем в стартапах с процессами типа из рабочего мака в прод релизить напрямую. Ну просто потому что я понимаю почему необходимо в какой то момент усложнять процессы, ставя барьеры для ошибок. Нанимать manual и automation QA, нанимать отдельных релиз инженеров, которые следят что бы релиз содержал только то что нужно и разрабы знают что делать если что то пойдёт не так. И кстати бюрократия не повод делать релизы раз в полгода. Вот я работал на работодателя у которого была мощная бюрократия, но при этом релизы раз в 2 недели очень большого монолита.
Я, когда пользовался алхимией, все, что сложнее одного селекта, писал на обычном sql через raw запрос. Даже если не накосячишь, читаемость такой лишней обертки сильно хуже.
Конореечный деплой вам нужен и фича флаги, чтобы выкатить первоначально изменения на 5% пользователей, посмотреть, что все хорошо, а потом выкатывать на остальных. + мониторить нужно это все. Насчет данных, а нельзя создать фейковые данные и проверить на них?
О отправка email ненужным адресатам, такое ощущение что через это проходил каждый 😂, сам так отправлял и не 1 раз, го каждый раз причины отправки были разные.
А почему не было ни одного слова про тесты? Как будто проблема именно в тестах, если бы тесты были бы, то такой проблемы бы не было (я про нормальные тесты, а не про тест в котором один документ, один пользователь и один email) Так же выглядит так что Миша не так хорошо знаком с SQLAlchemy и говорит про нее не очень хорошо Используя SQLAlchemy можно: - запрос передать как строку и выполнить его (плохой вариант, но вариант) - если написал запрос и лень писать тесты и вдобавок плохо знаком с инструментом (SQLAlchemy) - можно включить дебаг логи и посмотреть какой запрос выполнился (как я понял проблем с SQL у Миши нет и он бы сразу увидел ошибку)
1. У облачних провайдеров же есть Billing Alerts + можно дополнительно настроить мониторинг на cost surges 2. А что мешает нагрузить dev среду псевдоданными, по виду похожими на prod? Объём данных слишком большой?
@@onermaster если вся кодовая база на орм, то без нее сложно разобраться что там вообще на уровне базы) + если миграция изменит данные, то в скрипт не подтягивает эти правки
А теперь все кто топит за то, что ИИ заменит бекЭндеров. Попробуйте заставить ИИ выполнить это задание и при выполнении учесть все нюансы архитектуры 😂😂 Рыгнёт ваш ИИ😅😅
Он уже заменил. Пишет тесты, документацию, делает ревью, находит ошибки. Код тоже пишет кусочками, главное правильно подавать. Разработка на много быстрее идет с меньшим количеством людей, чем могло бы
Скорее всего кантора экономит бабло😊 если бы был отдельный, отдел тестирования, вряд ли такое бы могло произойти. Человек, который со стороны тестирует код, всегда найдет больше недочётов, чем тот кто этот код писал.
Откуда появилась мода говорить СИкуэл, если по факту читается как ЭСКУЭЛ! ЭСКУЭЛ правильно! А что касается темы видоса - обычно за такую оплошность увольняют сразу!
Кто там кого за такое увольняет? Очень часто говорят сиквел, вместо SQL. Это жаргонизм. Так же говорят стринга вместо стринг, Пальзак вместо пользователь да ещё много чего...
В 2002 году мы делали игру в британской компании которая имела филиал в беларуси. Один из наших моделлеров просто добавил логотип одного из кафе находящихся на легендарном Route 66 в америке. В игре мы ехали по Route 66 и ну логично было вставить что-то оттуда. Подумаешь какое-то кафе.. а оказалось что оно тоже настолько легендарное что нас вздрючили за это и компания заплатила те же 100 тысяч долларов тому кафе. Помню зарплаты у нас были по 300 долларов :) и это были оч хорошие зарплаты. В минске обычный работник на заводе или в магазине получал вроде 100 долларов, типа такая средняя хорошая зарплата была.
Спасибо, что делитесь факапами.
я как-то раз нашел ошибку, из-за которой пользователям начислялись на внутриигровой баланс лишние деньги, я чекнул по транзакциям, оказалось этому багу было уже несколько месяцев и успело начислиться примерно на 1млн долларов, это кончено не прямая потеря в один момент и не факт, что эти деньги как-то были переведены в реальные, но какая то часть денег была потеряна
Я понимаю, у всех бывают залеты, но синьор тем и отличается от джуна, что он сто раз перепроверит, убедится, что все отработает как задумано, подготовит откат изменений на случай если что-то пойдет не так. А деплоить что-то на прод на авось. Ну тогда можно джуна нанять. Он за меньшие деньги будет те же факапы совершать.Наверное, Михаил был в запаре, не хватило времени/сил. Бывает.
Тут же еще проблема, что к одним клиентам попали данные других клиентов, насколько я понял. А это уже утечка информации.
Очень круто, что так просто рассказываете о свем косяке и относитесь к этому здраво, спасибо. Я не думаю, что вы это случайно, не осознано сделали, если честно, ну и что.. да, все устали от успешного успеха)
Я люблю косяки, проблемы, трудности и стал так мыслить всего 1.5 года назад, когда мой маленький мирок рухнул. Мои косяки в проде лишь на мне и людей пользующихся моими прогами мало, сотнями, потому все проще и ругать меня не кому)))
Да, отдельное спасибо что делитесь такими историями!
А то все только и рассказывают какие они вумные- вумные , а про поучительные факапы - молчок)))
Уважение таким тестировщикам
Вначале интеграционной рекламы услышал стартаперы, как стендаперы
Спасибо, что поделились своими факапами. Это жизнь все ошибаются, интересно было бы как начальство отреагировало на это? Лишило премии, дали выговор или пожурило?
Спасибо, что поделился! Интересный кейс 🤔
Работаю на linux. И как-то была запара, вернувшись с обеда у меня несколько задач, которые нужно было выполнить в оставшееся рабочее время. Некоторые задачи имели длительные автоматические процессы(что-то загрузить, заархвировать и т.п.). Так что я делал несколько разлчных задач одновременно. Одной из задач оказаось развёртывание и тестирование нейросети. Но т.к. одновреенно выполнялос несколько задач, нейросеть случайно была развёрнута на продаакшн сервере одного из проектов, от чего этот продакшн сервер тоже устал и решил не просыпаться.
В ближайшие 30 минут пришлось арендовать новый сервер с большими параметрами и бэкапать со старого всё. Ещё минут 10 ушло на поднятие проекта и выпиливание нейронки.
Проблема возникла из-за невнимательности и перегруза задачами. В какой-то момент вместо локальной консоли я начал вводить команды в консоль сервера.
В плане расположения прода у вас идеальная ситуация, основные юзеры на другом краю земли и у вас есть целый рабочий день на релиз и тестирование - пока основая масса не проснется. Я бы вообще, запретил релизить под конец рабочего дня, только утром, и потом тестирование на проде. Сейчас, весь процесс разработки так устроен - что, если произошла ошибка - должны быть виноваты не только программист, но и 2-3 человека, как минимум QA - которые не должны были выпустить это на прод. По хорошему должен быть чек лист релиза, который проверяет основной функционал до выкладывания на прод и после выкладывания на прод.
Если бы только в sqlalchemy был метод execute в который можно было бы передать сырой запрос и параметры... Эх... плохая алхимия)))))
Можно скопировать прод базу на UAT и прогнать скрипт анонимизации - заменить чуствительную информацию (ФИО, e-mail) на тестовые данные
Вот работаешь ты в компании где куча бюрократии. Что бы сделать релиз нужно кучу аппрувов, тестов и прочего. И если ты новичок, то воспринимаешь это как нечто плохое, не зная что именно такие ошибки и привели к бюрократии и сложным процессам релиза. Сейчас, после 10+ лет разработки, мне намного комфортнее работать с бюрократией, чем в стартапах с процессами типа из рабочего мака в прод релизить напрямую. Ну просто потому что я понимаю почему необходимо в какой то момент усложнять процессы, ставя барьеры для ошибок. Нанимать manual и automation QA, нанимать отдельных релиз инженеров, которые следят что бы релиз содержал только то что нужно и разрабы знают что делать если что то пойдёт не так. И кстати бюрократия не повод делать релизы раз в полгода. Вот я работал на работодателя у которого была мощная бюрократия, но при этом релизы раз в 2 недели очень большого монолита.
Не экономьте на написании тест кейсов. Да, это стоит несколько часов разработки, но может сэкономить сотни тысяч.
Прогнал бы рекламную вставку через нейронку, чтобы выправить звук, с эхом слушать неприятно :(
Я, когда пользовался алхимией, все, что сложнее одного селекта, писал на обычном sql через raw запрос. Даже если не накосячишь, читаемость такой лишней обертки сильно хуже.
Конореечный деплой вам нужен и фича флаги, чтобы выкатить первоначально изменения на 5% пользователей, посмотреть, что все хорошо, а потом выкатывать на остальных. + мониторить нужно это все. Насчет данных, а нельзя создать фейковые данные и проверить на них?
со всеми бывают ошибки. я как-то базу на проде обновил одинаковыми записями. в самый разгар сезона сайт примерно час выдавал чушь, но все обошлось
О отправка email ненужным адресатам, такое ощущение что через это проходил каждый 😂, сам так отправлял и не 1 раз, го каждый раз причины отправки были разные.
А почему не было ни одного слова про тесты? Как будто проблема именно в тестах, если бы тесты были бы, то такой проблемы бы не было (я про нормальные тесты, а не про тест в котором один документ, один пользователь и один email)
Так же выглядит так что Миша не так хорошо знаком с SQLAlchemy и говорит про нее не очень хорошо
Используя SQLAlchemy можно:
- запрос передать как строку и выполнить его (плохой вариант, но вариант)
- если написал запрос и лень писать тесты и вдобавок плохо знаком с инструментом (SQLAlchemy) - можно включить дебаг логи и посмотреть какой запрос выполнился (как я понял проблем с SQL у Миши нет и он бы сразу увидел ошибку)
8:00 Довольно смело рассказывать о таком случае в своей жизни.
Спасибо огромное. действительно ценная информация, особенно для тех, кто спустя годы снова в фулстек переходит.
из 10 минутного видео почти 3 минуты реклама
1. У облачних провайдеров же есть Billing Alerts + можно дополнительно настроить мониторинг на cost surges
2. А что мешает нагрузить dev среду псевдоданными, по виду похожими на prod? Объём данных слишком большой?
Так вызывал бы отдельным SQL без ORM, SQLAlchemy позволяет это сделать
Тоже подумал об этом, отдельный файл скриптик асинхронный, нафих эти орм вообще..
@@onermaster если вся кодовая база на орм, то без нее сложно разобраться что там вообще на уровне базы) + если миграция изменит данные, то в скрипт не подтягивает эти правки
А в чем сложность понять, в файле models описаны все таблицы.. Про миграции не спорю - замкнутый круг.
Миша разучился писать заголовки - надо было написать "которая стоила 100 МИЛЛИАРДОВ долларов". А так даже слушать не стал.
Ну и зачем ты здесь в комментах такой токсичный нужен? Иди мути классные видосы с хорошими заголовками
А в ошибке ли проблема? Почему не юзать профайлер? А ну да, нада ж "быстро")
А теперь все кто топит за то, что ИИ заменит бекЭндеров.
Попробуйте заставить ИИ выполнить это задание и при выполнении учесть все нюансы архитектуры 😂😂
Рыгнёт ваш ИИ😅😅
Это пока что
Он уже заменил. Пишет тесты, документацию, делает ревью, находит ошибки. Код тоже пишет кусочками, главное правильно подавать. Разработка на много быстрее идет с меньшим количеством людей, чем могло бы
А в чем проблема данные с прода залить на стейдж? Юзера и чуств информация обезличиваются, и беспредель в условиях, близких к реальным
Like your freeBSD label
Баг на 100к это ещё не много. Я видал ошибки на 300к, и больше
А рассказать можешь? А он может
жестко)
О,twenty one pilots
Это у вас такой туман за окном?
да)
а тесты????? юнит, интеграционные, е2е
Скорее всего кантора экономит бабло😊 если бы был отдельный, отдел тестирования, вряд ли такое бы могло произойти.
Человек, который со стороны тестирует код, всегда найдет больше недочётов, чем тот кто этот код писал.
Извините, но это какой-то кринж. Или история выдуманная, или уровень разработки в компании - шаражкина контора
Откуда появилась мода говорить СИкуэл, если по факту читается как ЭСКУЭЛ! ЭСКУЭЛ правильно!
А что касается темы видоса - обычно за такую оплошность увольняют сразу!
Кто там кого за такое увольняет?
Очень часто говорят сиквел, вместо SQL.
Это жаргонизм.
Так же говорят стринга вместо стринг,
Пальзак вместо пользователь да ещё много чего...