Size: a a a

DevOps Jobs - работа и аналитика

2020 May 24

GG

George Gaál in DevOps Jobs - работа и аналитика
Опоздание - штраф... Как в этом. В екб
источник

GG

George Gaál in DevOps Jobs - работа и аналитика
С золотыми потолками
источник

AS

Alexander Shinkarenk... in DevOps Jobs - работа и аналитика
Опять же слышал от вайтишников что им нравится нормальное отношение со стороны начальства
источник

ВГ

Владимир Гурьянов... in DevOps Jobs - работа и аналитика
Alexander Shinkarenko
Опять же слышал от вайтишников что им нравится нормальное отношение со стороны начальства
А есть те, кому это не нравится?)
источник

GG

George Gaál in DevOps Jobs - работа и аналитика
Владимир Гурьянов
А есть те, кому это не нравится?)
Доброе утро
источник

СХ

Старый Хрыч... in DevOps Jobs - работа и аналитика
George Gaál
@erzentd ну-ка, расскажи - им в Битриксе по приходу на работу не надо отмечаться? А тасок в джире наверняка больше, чем один человек за рабдень может унести ?
да, либо в битриксе либо в джире, особенно прикольно когда тест план становится у мануальщика 500+ пунктов а время на его выполнение не увеличивают с тех пор как он стал 100
источник

GG

George Gaál in DevOps Jobs - работа и аналитика
Asgoret
Nearby events
26.02.2020, Moscow, Highway to HEL
15.05.2020, Ekaterinburg dump
Пофикси пин
источник

GG

George Gaál in DevOps Jobs - работа и аналитика
Февраль уже давно закончился
источник

AS

Alexander Shinkarenk... in DevOps Jobs - работа и аналитика
Владимир Гурьянов
А есть те, кому это не нравится?)
Я про то, что не в ИТ людей несильно ценят.
источник

GG

George Gaál in DevOps Jobs - работа и аналитика
Старый Хрыч
да, либо в битриксе либо в джире, особенно прикольно когда тест план становится у мануальщика 500+ пунктов а время на его выполнение не увеличивают с тех пор как он стал 100
Тест план не фейлится, если время вышло? Есть идейка, надо как в форт бойард делать ))
источник

СХ

Старый Хрыч... in DevOps Jobs - работа и аналитика
Alexander Shinkarenko
Я про то, что не в ИТ людей несильно ценят.
мануал тестеров тоже не ценят, как и простых админов
источник

AS

Alexander Shinkarenk... in DevOps Jobs - работа и аналитика
Ну если ты не любовница гендира )
источник

GG

George Gaál in DevOps Jobs - работа и аналитика
Alexander Shinkarenko
Ну если ты не любовница гендира )
Но тогда ты не мануальный тестировщик
источник

GG

George Gaál in DevOps Jobs - работа и аналитика
Лол
источник

GG

George Gaál in DevOps Jobs - работа и аналитика
Разве что м.т. не в айти, кек
источник

MK

Mikhail Krivoshein in DevOps Jobs - работа и аналитика
George Gaál
​​Мы в iGooods лежали почти полдня. Стыдно! Зря я угорал вчера над утконосом, что они упали. Поделюсь честно, от чего мы лежали. Это подробный постмортем аварии с техническими подробностями, мама, извини.



Из-за коронавируса к нам начали приходить в 2-3 раза больше клиентов, чем обычно. Плюс у нас на днях запускается два новых партнерства — с Joom и с магазинами Лента. Серверы работали на 40-60 процентах емкости и мы решили «добавить железа». В 6 вечера мы налили пару новых машин в кластер приложений, в час ночи по Москве — перетащили базу на новую, ультра мощную тачку. Обе операции — необычные для iGooods, множество вещей делалось руками. Ошибка №0 — мы сделали 2 крупных изменения близко друг с другом

В 7 утра по Москве, сервер базы данных начал плавиться от нагрузки в процессор. Это компьютер с 70 ядрами, но базе нужно было минимум 300. Запросов было вроде бы не сильно больше, чем обычно, но занимали они всё больше времени. Люди просыпались у себя дома и начинали делать заказы — сервера умирали, сайт не открывался, приложения выдавали ошибки. Самое опасное — курьеры и сборщики заказов выходили на работу и не могли работать.

Мы, конечно, думали, что сможем быстро починить проблему. Через час стало понятно, что нужно хотя бы временное решение. Мы выключили все пользовательские интерфейсы iGooods, оставив рабочей только админку и внутренние приложения курьеров и пикеров (сборщиков заказов). Ошибка №1 — в случае аварии не нужно пытаться «сделать хорошо», нужно определить критичные сервисы и восстановить их первым делом.

Мы решили, что проблема в новой базе данных. Мало ли, конфигурация, железо, да хоть драйверы. Попытались вернуться на старый сервер. Мы не сохранили WAL логи между переездами, так что вместо 3 минут эта операция заняла 40 минут — пришлось перегнать всю базу данных между серверами. Мы планировали откат для приложений, но не для переноса базы — он нам казался довольно безопасной операцией. Ошибка №2 — мы решили, что «уж тут-то не взорвется», на самом деле вместе с любым изменением нужно продумывать пути отката.

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

В конце концов, Женя случайно заметили ошибку, что наше rails приложение не может записать в redis-кеш. BINGO! Вот тут всё наконец-то встало на свои места. В нашем приложении есть много страниц, которые собираются очень долго. Все они кешируются rails'ами в redis. И вот этот редис кеш у нас отвалился на запись на части серверов приложений из-за кривых настроек окружения (душераздирающие подробности приложены картинкой). Кеш протухал постепенно и с каждой потерянной записью все больше тяжелых запросов грузили Postgres. Ошибки №3, 4 и 5: настройка тачек производится руками, не кодом; логи переполнены, так что сложно заметить новую ошибку; не все важные сервисы (redis, rails cache) включены в мониторинг.

Как вы можете видеть, всё довольно банально. Будь у нас настроена нормальная рабочая среда — не было бы такой аварии.

Итак, чего нам не хватило и что мы приведем в порядок:
- инфраструктура в коде (полный ansible вместо хождения руками на серверы);
- хороший, чистый мониторинг всех ключевых метрик приложения,  APM — за день до аварии мы включили Datadog, но ещё не было нормальных дэшбордов и исторических данных;
- сообщения об ошибках (у нас bugsnag) засраны нерелевантными сообщеними — их нужно почистить.

Мы с Федей обозначили проблемы в первые же дни, но не успели решить их — были вещи поважнее. Знал бы прикуп — жил бы в Сочи.

Если у вас похожая ситуация — рекомендую навести порядок заранее, не ждать форс-мажора.

Ну и делать много сложных правок вместе — чревато. Стоило разнести перенос базы и деплой новых машин на день — тогда бы мы не потратили так много времени на ложный след тормозной базы.

Fin.
Прикол. Даже я с моим минимальным опытом в DevOps вижу, что делать так, как они делали, не нужно...

А мусор в логах - это типичная проблема для команд, где редко меняется состав. В итоге "старички" знают правильные ключевые слова для grep, а новые сотрудники ничего не понимают.
источник

GG

George Gaál in DevOps Jobs - работа и аналитика
Mikhail Krivoshein
Прикол. Даже я с моим минимальным опытом в DevOps вижу, что делать так, как они делали, не нужно...

А мусор в логах - это типичная проблема для команд, где редко меняется состав. В итоге "старички" знают правильные ключевые слова для grep, а новые сотрудники ничего не понимают.
Ты уже суперстар и мудр
источник

AS

Alexander Shinkarenk... in DevOps Jobs - работа и аналитика
Mikhail Krivoshein
Прикол. Даже я с моим минимальным опытом в DevOps вижу, что делать так, как они делали, не нужно...

А мусор в логах - это типичная проблема для команд, где редко меняется состав. В итоге "старички" знают правильные ключевые слова для grep, а новые сотрудники ничего не понимают.
Да этих ребят спас бы healthcheck, который ходил в кэш. Пока такого нет уже ничего не поможет
источник

MK

Mikhail Krivoshein in DevOps Jobs - работа и аналитика
George Gaál
плохо, когда капча только одна
У Alibaba Cloud очень стильная captcha. Только как её можно на свой сайт приделать и можно ли я пока не понял.
источник

GG

George Gaál in DevOps Jobs - работа и аналитика
А ещё паттерн circuit breaker
источник