Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Правильная организация серверной инфраструктуры является очень важной составляющей эффективной работы бизнес-процессов в любой компании. При выборе архитектуры следует уделить время трем основным направлениям:
Распределение ролей. В зависимости от нагрузки и используемых серверных ролей, в компании они распределяются между серверами. Несколько ролей могут быть совмещены на одном сервере, также одна роль может распределяться на несколько серверов или же дублироваться (резервироваться).
Производительность. Важно выбрать правильное количество аппаратных ресурсов, чтобы их хватило для работы соответствующих серверных ролей.
Стоимость. При выборе комплектующих, нужно не только ориентироваться на то, чтобы не было больших излишков, так как это повышает затраты.
В данной статье мы рассмотрим оптимальные варианты корпоративной серверной инфраструктуры в зависимости от количества пользователей, исходя из нашего опыта. Эта информация будет полезна организациям, которые планируют создание новой ИТ-архитектуры или же усовершенствование текущей.
Вводные данные
Для проектирования типовых проектов инфраструктуры будем использовать следующие вводные:
Количество пользователей
Возьмем наиболее типовой размер компании - 50, 100 и 200 пользователей. Организации, в которых сотрудников меньше 50-ти, рассматривать не будем ввиду простоты такой инфраструктуры. Хотя, для таких компаний за основу можно взять архитектуру для 50-ти пользователей, но с меньшими ресурсами.
Объем данных
Для моделирования проектов инфраструктуры возьмем примерные объемы данных, которые характерны для организаций соответствующего размера. Чтобы подобрать оптимальную аппаратную часть, необходимо понимать сколько данных будет с высокой интенсивностью доступа к ним и сколько с низкой. Данные с низкой интенсивностью доступа - это статичные файлы, текстовые документы, таблицы, изображения. Данные с высокой интенсивностью - это базы данных, высоконагруженные приложения и файлы операционных систем при одновременной работе с ними большого количества пользователей.
Таблица 1. Объемы данных для проектирования
Количество пользователей | 50 | 100 | 200 |
Данные с низкой интенсивностью доступа, Гб | 800 | 1500 | 2500 |
Данные с высокой интенсивностью доступа, Гб | 200 | 350 | 600 |
Типовые серверные роли:
Сервер приложений (AS) - используется для работы основного рабочего приложения, это обычно 1С или другая учетная программа.
Сервер СУБД (DB) - сервер, на котором располагаются базы данных основного приложения. Используется программный продукт MS SQL или PostgreSQL.
Сервер терминалов (TS) - удаленный рабочий стол, на котором пользователи ведут работу с документами, также на нем установлены клиентские части всех приложений.
Веб Server (WS) - обеспечивает доступ к приложениям из интернет-браузера.
Файловый сервер (FS) - хранилище документов и файлов.
Контроллер домена (AD) - служебная роль, которая позволяет управлять и централизованно администрировать пользователей и ресурсы в корпоративной среде.
Рекомендуемые комплектующие, в зависимости от роли сервера
При выборе серверов для каждой из серверных ролей учитываются несколько основных факторов: процессор, диски, память.
Процессоры
Начнем с процессоров, при их выборе стоит обратить внимание на три основных характеристики:
Тактовая частота. Определяет скорость работы процессора и влияет на время выполнения операций. Высокая частота очень актуальна для сервера приложений и менее важна для остальных ролей. Программа будет работать быстрее на более дешевом процессоре, в котором меньше ядер, но выше частота, чем на дорогих многоядерных процессорах. Происходит это из-за того, что запросы в базе выполняются без распараллеливания между ядрами - один запрос выполняется только одним ядром.
Ядра. Количество ядер процессора важно для серверов, где идет работа большого количества пользователей, запускается много приложений, либо же приложения работают в несколько потоков. Чем больше пользователей работает на сервере, тем нужно больше ядер, если же пользователей небольшое количество, лучше пожертвовать количеством ядер в пользу более высокой частоты.
Масштабируемость. Есть процессоры, предназначенные для работы в однопроцессорных шасси, есть такие, что могут использоваться в двухпроцессорных и более платформах. При выборе нужно учитывать, будет ли система масштабироваться и на сколько.
Примеры линеек процессоров и конкретных моделей для работы каждой из серверных ролей указаны в таблица ниже:
Таблица 2. Рекомендуемые процессоры
Серверная роль | Линейки процессоров | Пример моделей |
Сервер приложений | Intel Xeon E-22XX (Coffee Lake) Intel Xeon Gold 52XX (Cascade Lake) Intel Xeon Gold 62XX (Cascade Lake) Intel Xeon Gold 63XX (Ice Lake) Intel Xeon Gold 64XX (Sapphire Rapids) | E-2234 4C 3.6-4.8 Ghz E-2246G 6C 3.6-4.8 Ghz E-2286G 6C 4.0-4.9 Ghz Gold 5222 4C 3.8-3.9 Ghz Gold 6244 8C 3.6-4.4 Ghz Gold 6256 12C 3.6-4.5 Ghz Gold 6444Y 16C 3.6-4.0 Ghz |
Сервер СУБД | Intel Xeon E-22XX (Coffee Lake) Intel Xeon Silver 42XX (Cascade Lake) Intel Xeon Gold 61XX (Sky Lake) Intel Xeon Gold 62XX (Cascade Lake) | E-2236 6c 3.4-4.8 Ghz Silver 4215R 8с 3.2-4.0 Ghz Gold 6146 12c 3.2-4.2 Ghz Gold 6246R 16c 3.4-4.1 Ghz |
Сервер терминалов | Intel Xeon Bronze 32XX (Cascade Lake) Intel Xeon Silver 42XX (Cascade Lake) Intel Xeon Silver 43XX (Ice Lake) | Bronze 3206R 8c 1.8 Ghz Silver 4309Y 8c 2.8-3.6 Ghz Silver 4210R 10c 2.4-3.2 Ghz Silver 4314 16c 2.4-3.4 Ghz |
Файл сервер | Intel Xeon E5-26XX | E5-2620v4 8c 2.1-3.0 Ghz E5-2650v4 12c 2.2-2.9 Ghz |
Веб сервер | Intel Xeon Bronze 32XX (Cascade Lake) | Bronze 3204 6c 1.9 Ghz Bronze 3206R 8c 1.9 Ghz |
Контроллер домена | Любая серия | Любая модель |
Диски
Выбор правильной дисковой подсистемы также крайне важен для соблюдения баланса затраты-производительность. В данный момент на практике используется 3 вида дисков:
HDD SATA - жесткие диски с интерфейсом SATA и скоростью вращения шпинделя 7200 оборотов\мин. Стоит выбирать серверные линейки - такие диски проходили тестирование на работоспособность в серверных системах и рассчитаны на стабильную работу в режиме 24/7.
SSD - твердотельные диски, не имеющие в своем составе движущихся частей. Такая технология позволяет производить считывание и запись значительно быстрее, чем HDD.
SSD NVMe (Non-Volatile Memory Express) - это интерфейс шины PCIe и драйвер, который использует преимущества увеличенной полосы пропускания. NVMe также напрямую связывается с центральным процессором, обеспечивая наиболее высокую скорость обработки информации.
Типов дисков значительно больше, но они или устарели такие как SCSI, или их использование нецелесообразно. Например, существует тип скоростных дисков HDD SAS со скоростью вращения 10-15К, но в данный момент использование SSD является более эффективным как с точки зрения производительности, так и с точки зрения эффективности.
Наиболее важная характеристика, которую стоит учитывать при выборе дисков - количество IOPS (Input/Output Operations Per Second). Это метрика, измеряющая скорость ввода/вывода данных на диск, чем выше показатель - тем быстрее диск обрабатывает обращения к нему. Характеристика очень важна для высоконагруженных приложений и баз данных и практически не играет роли для статических данных.
В таблице ниже приведены примеры использования классов дисков в разрезе серверных ролей:
Таблица 3. Рекомендуемые типы дисков
Типы дисков | Количество IOPs | Примеры линеек | Серверные роли |
HDD SATA | 50 - 200 | WD Gold Series WD Ultrastar Series | Файловый сервер Контролер Домена |
SSD | 20K-200K | Intel D3-S4520 Series Intel D3-S4620 Series | Веб сервер Сервер терминалов Сервер приложений |
SSD NVMe | 500K-1500K | Intel Optane DC P5800 Series Intel DC P4510 / 4610 Series Intel D5-P55XX / 56XX Series Intel D7-P55XX / 56XX Series | Сервер СУБД Сервер терминалов (100+ пользователей) Сервер приложений (100+ пользователей) |
Логическая схема ролей при использовании аппаратных серверов
Проектирование архитектуры
Для проектирования архитектуры с использованием аппаратных серверов рассмотрим два варианта работы: работа с использованием тонкого клиента через web, а также работа полноценного клиента приложения (толстого клиента) расположенного на удаленном рабочем столе. Ниже на рисунках показаны серверные роли из размещение на серверах и взаимодействие:
Рекомендуемые серверные ресурсы
Таблица 4. Рекомендуемые ресурсы при работе через Web
Сервер | Процессоры | ОЗУ | Быстрые диски | Обычные диски |
50 пользователей | ||||
AS | Intel Xeon E-22XX | 64 ГБ | 400 ГБ SSD | 2 ТБ HDD |
100 пользователей | ||||
AS | Intel Xeon Gold 61XX | 64 ГБ | 400 ГБ SSD | 0 |
DB | Intel Xeon Silver 42XX | 96 ГБ | 800 ГБ NVMe | 2 ТБ HDD |
200 пользователей | ||||
AS | Intel Xeon Gold 61XX | 64 ГБ | 400 ГБ NVMe | 0 |
AS2 | Intel Xeon Gold 61XX | 64 ГБ | 400 ГБ NVMe | 0 |
DB | 2 x Intel Xeon Silver 42XX | 128 ГБ | 1,2 ТБ NVMe | 4 ТБ HDD |
Таблица 5. Рекомендуемые ресурсы при работе по RDP
Сервер | Процессоры | ОЗУ | Быстрые диски | Обычные диски |
50 пользователей | ||||
AS | Intel Xeon Gold 52XX | 64 ГБ | 400 ГБ SSD | 0 |
TS | Intel Xeon Bronze 32XX | 72 ГБ | 400 ГБ SSD | 2 ТБ HDD |
100 пользователей | ||||
AS | 2 x Intel Xeon Gold 52XX | 128 ГБ | 800 ГБ NVMe | 0 |
TS | 2 x Intel Xeon Silver 42XX | 192 ГБ | 800 ГБ SSD | 2 ТБ HDD |
200 пользователей | ||||
AS | 2 xIntel Xeon Gold 62XX | 128 ГБ | 400 ГБ NVMe | 0 |
DB | 2 xIntel Xeon Gold 61XX | 128 ГБ | 1,2 ТБ NVMe | 0 |
TS | 2 xIntel Xeon Silver 43XX | 256 ГБ | 800 ГБ NVMe | 4 ТБ HDD |
Логическая схема ролей при использовании облачных серверов
Аналогично рассмотрим архитектуру серверов, но уже при размещении в облаке:
Анализ ресурсов для реализации всех вариантов архитектуры, в разрезе использования RDP и Web-подключения
Теперь распишем ресурсы для каждого из серверов, указанных на схемах выше.
Таблица 6. Рекомендуемые ресурсы при работе по Web
Сервер | Процессоры | ОЗУ | Быстрые диски | Обычные диски |
50 пользователей | ||||
AS | 12 ядер 3,6 Ггц | 56 Гб | SSD 300 Гб | SATA 900 ГБ |
100 пользователей | ||||
AS | 12 ядер 3,6 Ггц | 48 Гб | SSD 100 Гб | 0 |
DB | 12 ядер 3,2 Ггц | 64 Гб | NVMe 500 Гб | SATA 1600 ГБ |
200 пользователей | ||||
AS | 12 ядер 3,6 Ггц | 48 Гб | NVMe 100 Гб | SATA 0 ГБ |
AS2 | 12 ядер 3,6 Ггц | 48 Гб | NVMe 100 Гб | SATA 0 ГБ |
DB | 12 ядер 3,2 Ггц | 96 Гб | NVMe 800 Гб | SATA 2800 ГБ |
Таблица 7. Рекомендуемые ресурсы при работе по RDP
Название сервера | Процессоры | Оперативная память | Быстрые диски | Обычные диски |
50 пользователей | ||||
AS | 8 ядер 3,6 Ггц | 48 Гб | SSD 100 Гб | 0 |
TS | 12 ядер 2,8 Ггц | 64 Гб | SSD 200 Гб | SATA 900 ГБ |
100 пользователей | ||||
AS | 8 ядер 3,6 Ггц | 64 Гб | SSD 100 Гб | 0 |
AS2 | 8 ядер 3,6 Ггц | 64 Гб | SSD 100 Гб | 0 |
DB | 16 ядер 3,2 Ггц | 72 Гб | NVMe 500 Гб | 0 |
TS | 16 ядер 2,8 Ггц | 96 Гб | SSD 200 Гб | 0 |
TS2 | 16 ядер 2,8 Ггц | 96 Гб | SSD 200 Гб | 0 |
FS | 4 ядра 2,0 Ггц | 16 Гб | 0 | SATA 1600 ГБ |
AD | 2 ядра 2,0 Ггц | 4 Гб | 0 | SATA 60 ГБ |
AD2 | 2 ядра 2,0 Ггц | 4 Гб | 0 | SATA 60 ГБ |
200 пользователей | ||||
AS | 16 ядер 3,6 Ггц | 96 Гб | NVMe 100 Гб | 0 |
AS2 | 16 ядер 3,6 Ггц | 96 Гб | NVMe 100 Гб | 0 |
DB | 24 ядра 3,2 Ггц | 128 Гб | NVMe 800 Гб | 0 |
DB2 | 24 ядра 3,2 Ггц | 128 Гб | NVMe 800 Гб | 0 |
TS | 16 ядер 2,8 Ггц | 128 Гб | SSD 200 Гб | 0 |
TS2 | 16 ядер 2,8 Ггц | 128 Гб | SSD 200 Гб | 0 |
TS3 | 16 ядер 2,8 Ггц | 128 Гб | SSD 200 Гб | 0 |
FS | 4 ядра 2,0 Ггц | 16 Гб | 0 | SATA 2800 ГБ |
AD | 2 ядра 2,0 Ггц | 4 Гб | 0 | SATA 60 ГБ |
AD2 | 2 ядра 2,0 Ггц | 4 Гб | 0 | SATA 60 ГБ |
Вывод
Из информации, приведенной выше, можем сделать такие выводы:
С точки зрения построения серверной инфраструктуры, значительно удобнее делать это на виртуальных машинах, поскольку можем выделить ресурсов ровно столько, сколько нужно сейчас и не нести лишние затраты на резерв. Также в этом случае есть возможность не совмещать роли, а делать их отдельно, что повышает стабильность всей инфраструктуры.
Отказоустойчивость также при использовании облака значительно выше, так как оно не подвержено сбоям, связанным с аппаратной частью и резервирование ролей выполняется значительно проще и дешевле.
Производительность выше при использовании аппаратных серверов, это обусловлено потерями при использовании виртуализации. Аппаратный сервер всегда будет мощнее облака с аналогичными характеристиками.
При наличии бюджета хорошим вариантом построения инфраструктуры является гибридное облако. В этом случае роли, не требующие высокой производительности, виртуализируются, а нагруженные серверные роли, такие как СУБД или сервер приложений, размещаются на аппаратных серверах и резервируются в облаке.