игра брюс 2048
Главная / Программирование / Проектирование высоконагруженных систем / Тест 78

Проектирование высоконагруженных систем - тест 78

Упражнение 1:
Номер 1
Какие утверждения насчёт frontend и backend верны?

Ответ:

 (1) frontend это то что видит пользователь 

 (2) backend - это то что работает внутри системы 

 (3) frontend интернет проекта всегда доступен живым пользователям через веб-браузер 

 (4) часто backend сервера живут в внутренней сети, недоступной снаружи 


Номер 2
Какие из перечисленных серверов можно отнести к backend?

Ответ:

 (1) сервер базы данных базы данных 

 (2) веб-сервер 

 (3) почтовый smtp-сервер 

 (4) memcached сервер 

 (5) файловый сервер 


Номер 3
Какие утверждения насчёт доступа к серверам интернет-проекта верны?

Ответ:

 (1) при трёх-звенной архитектуре сервер приложений часто находится в внутренней сети проекта, недоступной снаружи 

 (2) frontend сервера закрываются снаружи от пользователей с помощью фэйрвола 

 (3) backend сервера закрываются часто снаружи, тем что располагаются в внутренней тестовой (т.е. с серыми адресами) сети 

 (4) memcached сервер должен быть доступен внешним пользователям проекта 


Упражнение 2:
Номер 1
По каким признакам имеет смысл разбивать frontend сервера на группы?

Ответ:

 (1) по функциям запросов 

 (2) по важности запросов 

 (3) по клиентам, в зависимость от количества запросов от клиента 

 (4) по используемым частям базы данных если используется шардинг 


Номер 2
Какие преимущества даёт разбиение frontend серверов в соответствии с обрабатываемымы запросами на группы?

Ответ:

 (1) задержка в обработке запросов одного типа не влияет на скорость обработки остальных запросов 

 (2) сбои одной части базы не влияют на другие запросы 

 (3) повторный запросы от пользователей выполняются быстрее 

 (4) есть возможность повысить надёжность обработки наиболее частых запросов 


Номер 3
В каких ситуациях оптимальнее будет разбить frontend сервера на группы по типам запросов?

Ответ:

 (1) при большом количестве пользователей 

 (2) при значительных различиях в производительности разных типов запросов 

 (3) при большом количестве frontend серверов 

 (4) если разные по степени важности запросы обрабатываются различными серверами backend-а  


Номер 4
Какие запросы нужно обрабатывать в первую очередь?

Ответ:

 (1) важные и простые 

 (2) важные и сложные 

 (3) не важные и сложные 

 (4) не важные и простые 


Упражнение 3:
Номер 1
Чем характеризуются сложные системы?

Ответ:

 (1) большим количеством компонент 

 (2) большим количеством связей между компонентами 

 (3) большим количеством пользователей 

 (4) необходимостью продолжения работы при выходе из строя одного или нескольких компонент 

 (5) большим количеством однотипных серверов 


Номер 2
Каким образом должны реагировать сложные системы на выход из строя программного или аппаратного компонента системы

Ответ:

 (1) сигнализировать администратору о неисправности и прекратить работу системы 

 (2) оставшиеся компоненты должны обеспечивать продолжение работы системы 

 (3) система пытается перезапустить программный компонент, прекративший работу 

 (4) при сбое программной компоненты исключается дальнейшее её использование до исправления ошибки 


Номер 3
Каким образом достигается надёжность сложных систем?

Ответ:

 (1) закладывается при проектировании системы 

 (2) горячее резервирование основных компонентов системы 

 (3) использование только высоконадёжного оборудования 

 (4) изоляция частей системы друг от друга 

 (5) использование транзакций в базах данных 


Упражнение 4:
Номер 1
Какой вариант выбора программных компонент является наиболее предпочтительным при разработке интернет проекта?

Ответ:

 (1) использование свободного программного обеспечения 

 (2) использование коробочного платного программного обеспечения 

 (3) разработка своего программного обеспечения 

 (4) доработка коробочного платного программного обеспечения 


Номер 2
Какие утверждения верны насчёт проблем с дефектами в ПО верны?

Ответ:

 (1) самодельное ПО имеет минимум ошибок по сравнению с Open Source ПО 

 (2) коробочное ПО имеет минимум ошибок, которые в случае обнаружения всегда будут исправлены производителем 

 (3) исправления ошибок свободного ПО могут быть найдены в новых версиях ПО 

 (4) исправления ошибок свободного ПО могут быть выполнены своими силами 

 (5) всегда можно получить исходные коды коробочного ПО для исправления ошибок своими силами 


Номер 3
Какие утверждения насчёт используемых в проекте баз данных верны?

Ответ:

 (1) использование самописных баз данных часто бывает очень удобно 

 (2) использование коммерческих баз данных значительно упрощает поддержку проекта 

 (3) наиболее часто в интернет проектах используются свободно распространяемые сервера баз данных 

 (4) часто практикуется использование разных баз данных в одном проекте 


Упражнение 5:
Номер 1
Какие факторы следует учитывать при выборе технологии?

Ответ:

 (1) навыки и опыт команды разработчиков 

 (2) требования к надёжности и производительности проекта 

 (3) простота решения 

 (4) требования к качеству кода проекта 

 (5) распространённость технологии 


Номер 2
На что необходимо обратить внимание если для проекта выбирается одна из новейших технологий?

Ответ:

 (1) если есть возможность использования более устоявшейся технологии, то это надо сделать 

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

 (3) нет необходимости иметь достаточно специалистов, имеющих навыки работы с этой технологии, достаточно иметь возможности обучения ей 

 (4) технология должна быть хорошо поддерживаема и сейчас и в будущем 


Номер 3
Какие утверждения насчёт выбора языка программирования верны?

Ответ:

 (1) необходимо учитывать наличие в команде и на рынке разработчиков на этом языке 

 (2) скриптовые языки позволяют писать быстро код 

 (3) скриптовые языки позволяют писать быстрый код 

 (4) код на скриптовых языках обычно менее безопасный, чем на компилируемых 

 (5) по возможность лучше минимизировать количество используемых языков 


Упражнение 6:
Номер 1
Какой из распространённых скриптовых языков являются устаревшими и обычно не используются в новых проектах?

Ответ:

 (1) Perl 

 (2) Python 

 (3) javaScript 

 (4) bash 


Номер 2
Какие утверждения насчёт используемых баз данных верны?

Ответ:

 (1) postgress можно использовать при наличии навыков работы с ним 

 (2) MySQL редко используется в интернет проектах 

 (3) in-memory базы данных предназначены для кэширования результатов запросов 

 (4) часто базой postgress дополняют решение, выполненное на базе MySQL 


Номер 3
Каковы утверждения насчёт языка С++ верны?

Ответ:

 (1) достаточно часто используется для интернет-проектов 

 (2) часто не обеспечивает необходимого быстродействия, приходится заменять другими языками 

 (3) необходимо понимать, как эффективно писать на С++ 

 (4) при возникновении ошибок, отладка обычно проще, чем для других высокоуровневых языков 

 (5) может обеспечить низкое потребление памяти 


Упражнение 7:
Номер 1
Какие варианты повышения производительности следует рассмотреть в первую очередь если быстродействия системы становиться недостаточно?

Ответ:

 (1) обновить устаревшее оборудование 

 (2) поискать неэффективные использование алгоритмов и заменить алгоритмы на более эффективные 

 (3) переписать всё систему на более производительные языки программирования 

 (4) распараллелить обработку сложных и тяжёлых запросов на несколько серверов 


Номер 2
Какие утверждения насчёт переписывания кода в узких местах проекта верны?

Ответ:

 (1) переписывание на С, кода написанного на С++, может дать значительный эффект 

 (2) переписывание скриптового кода, обсчитывающего большие объёмы данных на C или C++ значительно ускоряет обработку этих данных 

 (3) большинство скриптовых языков не имеет возможность подключения библиотек написанных на C/C++ 

 (4) для переписывания на С/С++ обработки отдельных запросов целиком необходимо что бы инфраструктура проекта поддерживала такой вариант архитектуры 


Номер 3
Какие утверждения о концепции Graceful degradation верны?

Ответ:

 (1) не нужно тратить ресурсы на разнообразные обработки ошибочных ситуаций 

 (2) можно игнорировать ошибки в доступе к второстепенным данным 

 (3) вместо не доступных из-за сбоя второстепенных данных лучше показывать что-нибудь другое 

 (4) нельзя показывать страницу если получены не все находящиеся на ней данные 


Номер 4
Какие данные можно перестать показывать на Web-странице в рамках концепции Graceful degradation?

Ответ:

 (1) статистику 

 (2) количество писем 

 (3) новости на странице новостей 

 (4) рекламные блоки 

 (5) лайки 


Упражнение 8:
Номер 1
Как лучше обрабатывать ошибки, возникающие в вашем приложении, при обращении к внешним сервисам?

Ответ:

 (1) сразу сообщить об ошибке пользователю 

 (2) попытаться обратиться к внешнему сервису несколько раз 

 (3) попытаться обратиться к другому экземпляру внешнего сервиса, если такое возможно 

 (4) ограничиться записью сообщения об ошибке в лог 

 (5) не нужно обрабатывать ошибки внешних сервисов, а надо показывать пользователю полученный от внешнего сервиса ошибочный ответ 


Номер 2
Какие варианты показа данных возможны в случае если ваше приложение не может корректно получить данные по запросу пользователя?

Ответ:

 (1) показать сообщение "Internal Server Error" 

 (2) показать заглушку 

 (3) показать старое значение из кэша 

 (4) показать пользователю развёрнутый стек возникновения ошибки 

 (5) показать пустое место вместо данных 


Номер 3
Каковы основные цели обработки ошибок в веб-приложении?

Ответ:

 (1) не расстроить пользователя 

 (2) добиться не повторения ошибок в будущем 

 (3) дать возможность пользователю понимать и хоть как-то контролировать ситуацию 

 (4) вывести как можно больше отладочной информации в лог 

 (5) добиться того что бы пользователь не ушёл 


Упражнение 9:
Номер 1
В каких случаях необходимо использовать отложенную обработку?

Ответ:

 (1) операции, не связанные с действиями пользователя 

 (2) отдача больших объемов статических данных 

 (3) выполнение тяжёлых операций в период малой нагрузки 

 (4) взаимодействие с нестабильными сервисами 

 (5) взаимодействие с базами данных 


Номер 2
В чём заключается отложенная обработка?

Ответ:

 (1) сервис ставит запрос в очередь на обработку и посылает ответ что всё хорошо 

 (2) когда появляется возможность обработки запроса, он обрабатывается 

 (3) в случае удачной обработки, формируется http ответ на присланный пользователем первоначальный http запрос 

 (4) в случае неудачной обработки пользователю посылается уведомление 


Номер 3
Какие преимущества даёт отложенная обработка?

Ответ:

 (1) расширяются возможности обработки ошибок 

 (2) снижается средние значения загрузки сети 

 (3) снижаются пиковые нагрузки 

 (4) снимаются ограничения по времени обработки пользовательского запроса 

 (5) уменьшается время задержки результата 


Упражнение 10:
Номер 1
Какие утверждения насчёт мониторинга и логирования верны?

Ответ:

 (1) достаточно мониторинга функционирования системы в целом 

 (2) необходимо отслеживать свободное место на диске 

 (3) необходимо отслеживать загрузку сетевого канала 

 (4) нет смысла отслеживать работу системы в целом, необходимо отслеживать отдельно каждый компонент системы 

 (5) необходимо отслеживать критические ошибки системы 


Номер 2
Какие утверждения насчёт выкатывания новых версий верны?

Ответ:

 (1) обычно удобно использовать длинные итерации разработки с последующим большим временим тестирования 

 (2) необходимо предусматривать возможность отката изменений (отключения нового функционала) 

 (3) удобнее использовать разработческие ветки для нового функционала и делать merge в основную ветку только уже готовый функционал 

 (4) новый функционал как платных, так и бесплатных сервисов перед выдачей пользователям, должен быть тщательно протестирован на стенде, включая полное регрессионное и нагрузочное тестирование 


Номер 3
Какие утверждения насчёт целей и трюков слежения за производительностью верны?

Ответ:

 (1) мониторинг производительности позволяет отследить последствия выкатывания новой версии сервиса 

 (2) искусственная перегрузка frontend-а с помощью настроек балансировщика позволяет выявить проблемы с производительностью базы данных 

 (3) искусственное повышение нагрузки на отдельный frontend с помощью настроек балансировщика позволяет выявить пределы возможной нагрузки front-end-а 

 (4) копией реальной нагрузки всегда можно воспроизвести проблемы производительность системы 




Главная / Программирование / Проектирование высоконагруженных систем / Тест 78