КС:2015:Проект:ClusterManager
Содержание
[убрать]Что это за проект
Введение
Программное обеспечение позволяющее управлять процессами развертывания, запуска и мониторинга приложений на группе компьютеров.
Что требуется
Разработать серверную и клиентские части, которые:
1. Запускает заданные процессы на заданные членах кластера
2. Контролирует, что эти процессы успешно выполняются
3. Перезапустят упавшие процессы
4. В случае недоступности ноды запускает процессы с неё на других членах кластера
Чему вы научитесь (помимо разработки очередного велосипеда)
1. Работе с сетью
2. Основам построения распределенных приложений
3. Работе с файлами и процессами
Начальные требования
1. Умение разрабатывать программы на C++ или Python
Критерии оценивания
Первая контрольная точка (24 октября 2015 г.)
Необходимо иметь репозиторий с проектом, в который приглашен ментор. В репозитории должно быть:
- Файл README.md, который содержит описание проекта, написанный в расчета на "конечного пользователя". Это описание должно быть написано самостоятельно, а не скопировано из Wiki, и отражать Ваше понимание того, что нужно сделать.
- Реализованы как минимум следующие функции: сервер обрабатывает сообщения о статусе клиента, в ответ посылая информацию о процессе, который надо запустить.
- Для тех, кто пишет на C/C++ проектный файл CMakeLists.txt
Вторая контрольная точка (21 ноября 2015 г.)
Сервер и клиенты, запускающие процессы на заданных хостах и контролирующие их активность и перезапускающие в случае падения. Изменения состояний клиентов и сервера должны регистрироваться. Описание кластера задается в виде конфигурационного файла или файлов.
Итоговая оценка
- 4 балла. Требования на зачет в первом модуле и дополнительно реализованы
возможности: добавления в базу новых файлов, обновлений контрольных сумм старый и проверка по все базе.
- 6 баллов. В случае не доступности ноды процессы должные мигрировать на
другую ноду.
- 8 баллов. Балансировка нагрузки на кластере
- +2 балл. Автоматизированное развертывание ПО на кластере.
- +2 балла. Распределение процессов по кластеру в зависимости от
требований к памяти, CPU и диску.