1. Действия при OutOfMemory. Сервис перезагружается каждые несколько часов
2. ЦПУ улетел вверх. Твои действия.
3. Приходил запрос от саппорта. Клиент жалуется, что у него тормозит конкретная страница. Как будешь начинать копать задачу и куда будешь двигаться.
4. Есть микросервис. Есть ендпоинт. Ендпоинт не укладывается по времени работы на какой то ступени нагрузочного тестирования. Нужно ускорить его работу. Как приступить к этой задаче? Предположим у нас нет БД. Какие болевые точки могут быть?
5. Есть java сервер. Сервер завис. Как подойти к этой проблеме?
6. Микросервис уходит в рестарт по памяти. Твои дейстия? OutOfMemoryException
7. Авторизация. Есть запрос. Как бэкэнд может узнать, какой пользователь делает запрос: из браузера или API? Как информация об авторизации, сессии передается в запросе? В каком заголовке эта инфа может передаваться?
8. В проде все было хорошо. И вдруг бэкэнд стал отвечать с длительностью 1.5 сек. Решили добавить кэш, добавили, а время ответа возрасло до 1.6 сек. Почему такое могло случиться?
9. Деплоим версию сервиса (делаем выкатку на прод). Сервис поднимается, но спустя 20-60 сек падает по ошибке “Не хватает памяти OOM (Out of memory)”. Kuber убивает старый под, поднимает новый под, снова сервис поднимает. Но снова сервис падает, и снова. Куда бы ты посмотрел? Что бы сделал?
10. Есть микросервис, который сохраняет файлы в S3. Есть API загрузки файла. Какой-то микросервис дергает этот метод, передает файл, и микросервис, который сохраняет файл падает по OutOfMemoryError. Что будешь делать? Падает микросервис до сохранения файла на S3
11. Написали код, код возможно будет меняться. Есть риск возникновения ошибки при изменении кода. Какую стратегию тестирования выбрать?
12. Java сервер. Работал работал и завис. Как нам разобраться, что пошло не так?
13. Надо протестировать какой то объект. В него инжектится другой объект. На другой объект кидаем мок. Как проверить вызывается ли объект?
14. Мы сидим в k8s и никто не даст нам снять heap dump. Что делать? Есть Grafana. На какие метрики будем обращать внимание?
15. Написали сервис, в нем есть (а?)синхронный запрос. Flux, GraphQL. К нам в сервис приходит сущность. Мы должны записать ее в БД и сверить expected и received сущности. Тебе надо написать тест этого сравнения. Как будешь делать?
16. Идёт загрузка клиентов, большое количество данных. Нам хочется, чтобы грузилось 5-10 тысяч записей в секунду. Это данные передают пакетами. Они могут быть в базе данных, а могут и не быть. Какой быстрый алгоритм Вы бы организовали для добавление/обновление данных?
17. Есть приложение по заказу такси. Пользователь едет в метро, связь работает не очень хорошо. Он нажимает кнопку Заказать машину, а в ответ прилетает ошибка, второй раз нажимает - тоже ошибка. В третий раз нажимает - успех. Выходит из метро, его ждут 3 машины. Как такое могло произойти? Что надо переделать в приложении, чтобы избежать такой ситуации?
18. What happens if you create a changeset that runs on the development environment, but then you realize there’s a typo in a column name? How would you fix it?
19. Есть наш сервис. Мы из него делаем HTTP запрос во внешний источник (ВИ) в диком интернете. Каждый запрос во ВИ для нас платный. В логах видим, что от ВИ периодически приходят ошибки в течение определенного времени. Потом восстанавливается, потом снова ошибки. Может связано с часами пиковых нагрузок. Как избежать переплат? Мы переживем без ответа от ВИ, но хотелось бы получать ответ от него
20. Представьте, что вы fullstack разработчик и кто-то за Вас написал одностраничное приложение (бэк и фронт). У нас есть несколько графиков – это векторная графика, некий “пирог” для отображения данных и некая заключительная таблица, которая показывает полную информацию по всем данным, которые у нас есть. Они отображают действия на странице. Произошел большой наплыв активности, аналитика заполнилась и таблицы стали весить по 500 мегабайт, стало все зависать. Как оптимизировать запрос получения данных аналитики?
21. Мы хотим реализовать класс, который пишет логи. Он должен выдерживать большую нагрузку, допустим, 5000 записей в секунду. Хочу иметь возможность для каждого экземпляра логгера указывать имя файла, куда будут писаться логи. Как будем реализовывать? У нас есть метод, который принимает строку и пишет ее в файл. А если у Вас будет дикая запись днем, а ночью не наберется и 50 для чанка? Тогда эти элементы останутся висеть, пока не соберется чанк?
22. Вот к тебе пришли тестировщики и сказали, что нагрузочное тестирование провалилось. С чего ты начинаешь работать?
23. Есть веб сервис написанный на Java. Сервис отдает расписание чего нибудь. Допустим футбольные матчи. При частои обращении пользователя сервис начинает деградировать. Какие твои шаги решения?
24. Интеграционный тест. В проде есть огромный справочник. Ты хочешь в тестах использовать часть данных из справочника на проде. При прогонке тестов этот справочник должен быть внутри БД. Как бы реализовал? Чем больше вариантов решения, тем лучше
25. Пришли DevOps, говорят, на проме OutOfMemory. Как будешь диагностировать, смотреть? Есть Grafana или другой аггрегатор метрик. На какие метрики можно обратить внимание? Дамп с прома в банке снять нельзя
26. Есть тест на сервис. В случае тестирования сервисного слоя не так важно, что вернется, важно понимать, что бизнес-логика отработала корректно. Как понять?
27. Датчики очень часто заливают данные в таблицу. Таблица индексируется, из-за этого тормозит, какие-то датчики могут не залиться. Как можно решить проблему?
28. Ваша задача сделать REST API. С помощью каких инструментов будете его проверять?
29. Вам нужно протестировать взаимодействие двух сервисов. Один эталонный, второй вы разрабатываете. Какой подход к тестированию выбрать?
30. У нас есть сервис с двумя репликами. В какой то момент пользователей стало много и нагрузка на сервисы стала возрастать. Что нужно сделать, чтобы выдержать эту нагрузку?
31. У нас есть форма, через которую заводим пользователей в систему. Оператор нажимает на кнопку добавить пользователя и нечаянно нажимает два раза. Как на беке отобразиться эта ситуация? Как исправить проблему?
32. У тебя произошел SteckOverFlow или OutOfMemory. Представим, что у тебя продакшен сервис. Эти ошибка происходят в проде. Твои действия?
33. Система работает 24/7, нельзя ее останавливать. Микросервисы. 5 подов поднято (экземпляров одного сервиса). Они работают с одной БД. Поступила задача переименовать колонку в БД. Как можно выстроить процесс без остановки приложения?
34. На продакшене упало в логах OutOfMemory, но приложение продолжило работу дальше. Что будем делать?
35. Приложение работает штатно, но упал прод с OutOfMemory. Поняли, что из за реализации на двух коллекциях. Элементы монотонно возрастающие и х2 по памяти. Что будем делать?