В 2015-2016 гг. команда TS Soft в рамках работ над проектами Министерства образования РФ разработала специальную устойчивую к высоким нагрузкам систему для учеников школ России.

При требовании к обеспечению нагрузки в 4 тыс. обращений в секунду, команде TS Soft удалось добиться уровня допустимой нагрузки в пике до 10 тыс. обращений в секунду.

Вакансии в разработке высоконагруженных приложений.


Ссылка: http://check.ege.edu.ru.

Период работы:

  • 2015-2016 гг.

Количество участников в команде: 5 человек (менеджер-аналитик проекта, 3 разработчика, 1 инженер по качеству)

Стек примененных технологий:

  • сервер: ADO.NET, StackExchange.Redis для обращения к кэшу Redis, ASP.NET MVC 5, ASP.NET Web Api 2 c json-сериализатором ServiceStack.Text как движки web-части, WCF-сервисы загрузки данных, Ninject, NLog, MSTest, с NDbUnit для наполнения БД и Moq для мокирования, и Quartz.NET для запуска задач по расписанию.
  • клиент: jQuery, DataTables, MustacheJS, CSS-препроцессор LESS, сборка — gulp, browserify.

В 2016 году в промышленную эксплуатацию была введена система под рабочим названием «Проверка результатов ЕГЭ».

Единый государственный экзамен (ЕГЭ) — это всем известная на сегодня форма государственной итоговой аттестации по образовательным программам среднего общего образования, т.е. фактически это выпускные экзамены во всех средних школах России.

ЕГЭ проводится по 14 общеобразовательным предметам:

  • русский язык;
  • математика (базовая и профильная);
  • физика;
  • химия;
  • история;
  • обществознание;
  • информатика и информационно-коммуникационные технологии (ИКТ);
  • биология;
  • география;
  • иностранные языки (английский, немецкий, французский и испанский языки);
  • литература.

Сотни тысяч учеников сдают ЕГЭ по итогам учебного года. Например, в 2016 году ЕГЭ сдавали более 650 тыс. учеников, а в 2017 году ЕГЭ будут сдавать 747 тыс. человек.

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

Исходя из этого основными требованиями к системе были:

— простой дизайн — во-первых, клиентская часть приложения не должна была стать «тормозом» приложения, во-вторых, необходимо было обеспечить быстрое понимание ученика о том, что и куда вводить, чтобы получить результаты;

— простая логика — необходимо было обеспечить необходимость ввода только тех данных, которые минимально нужны для идентификации ученика;

устойчивость к высокой нагрузке — главное требование, поскольку сразу после экзамена приложение получает нагрузку в тысячи обращений в секунду. Заказчиком было определено требование об устойчивости к нагрузкам минимум в 4 тыс. обращений в секунду, но при этом была поставлена задача по возможности сделать запас. Нагрузочное тестирование проводилось с использованием Яндекс.Танк. Нашей команде удалось добиться устойчивости, которая при нагрузочном тестировании на одном сервере выдержала 10 тыс. обращений в секунду, и предоставить Заказчику отчет по распределению нагрузки. Также в рамках решения задачи была настроена веб-ферма для балансировки нагрузки.

Хочешь делать такие проекты? Приходи в TS Soft.

Почитать о других проектах TS Soft можно в блоге в разделе Проекты. Чтобы не пропустить новые статьи на тему разработки или о проектах компании, рекомендуем подписаться.