Skip to content

Instantly share code, notes, and snippets.

@meteozond
Last active February 12, 2018 14:59
Show Gist options
  • Save meteozond/66f60544d98208424bdb to your computer and use it in GitHub Desktop.
Save meteozond/66f60544d98208424bdb to your computer and use it in GitHub Desktop.

Тестовое задание

Спроектировать и реализовать структуру классов, базу данных и api для управления объектами Дата-центров.

Сущности

  • Узел (дата-центр)
    • Название
    • Адрес
  • Этаж
  • Помещение
  • Ряд
  • Стойка
  • Корзина
  • Сервер
  • Тип сервера
  • Комплектующие

У всех сущностей обязательное поле - название.

Комплектующие

У всех комплектующих есть производитель, модель и серийный номер, все они разделены по типам:

  • CPU
    • сокет
  • HDD
    • типоразмер
    • объем
    • подключение
    • тип HDD/SDD/Hybdrid
  • RAM
    • объем
    • стандарт
  • RAID
    • тип подключения
  • NET
    • тип подключения

Типы серверов

Некоторые типы серверов размещаются в стойках, некоторые - в корзинах. У сереверов могут отличаться размеры в юнитах. У каждого типа есть определенные характеристики:

  • CPU
    • Количество
    • Сокет
  • RAM
    • Количество слотов
    • Стандарт
  • HDD (в одном сервере могут быть несколько разных типоразмеров HDD)
    • Количество слотов HDD
    • Типоразмер
    • Стандарт подключения

Серверы

С каждым сервером можно связать:

  • CPU
  • RAM
  • HDD
  • NET
  • RAID

С учетом типа сервера и стандарта подключения Могут иметь разную высоту в юнитах.

Корзины

Корзины - это тип компановки, позовляющий размещать большее число серверов в огриниченном числе юнитов стойки. Например благодаря вертикальному размещению в корзине высотой 4 юнита можно разместить 8 блейд-серверов. https://ru.wikipedia.org/wiki/%D0%91%D0%BB%D0%B5%D0%B9%D0%B4-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80 Корзины устанавливаются в юниты. В корзинах размещаются сервера. Могут иметь разную высоту в юнитах.

Кейсы доступные через API

  1. Компоненты:

1.1 Пользователь может управлять компонентами и их характеристиками (CRUD).

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

  1. Серверы:

2.1 Пользователь может добавить тип сервера указав сокет, слоты памяти типоразмер и стандарты подключения дисков. (CRUD)

2.2 Пользователь может добавить сервер определенного типа (CRUD).

2.3 Пользователь может добавлять совместимые компоненты к серверу (Добавление несовместимых компонентов вызывает ошибку).

2.4 Пользователь может просмотравать связанные с сервером компоненты.

  1. Размещение оборудования

3.1 Пользователь может выполнять CRUD операции с

3.1.1 узлами,

3.1.2 этажами,

3.1.3 помещениями,

3.1.4 рядами,

3.1.5 стойками

3.2 Пользователь может размещать корзины в юнитах

3.3 Пользователь может размещать сервера в

3.3.1 юнитах

3.3.2 корзинах

3.4 Пользователь может просмотривать список серверов определнного узла (включая blade)

3.5 Пользователь может просмотривать список стоек, имеющих свободные юниты

@kurtgn
Copy link

kurtgn commented May 15, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment