Архитектура системы, необходимая для установки SaltStack Config, зависит от двух основных факторов: 1) метода установки, используемого для развертывания SaltStack Config, и 2) пропускной способности среды, т. е. объема работы, которую необходимо выполнить в системе с помощью SaltStack Config.

Перед началом работы

Чтобы правильно оценить потребности архитектуры системы, убедитесь сначала, что вы знакомы со следующими темами.

  • Два доступных метода установки для SaltStack Config
  • Четыре основных компонента архитектуры SaltStack SaltStack Config (RaaS, главный сервер Salt, PostgreSQL и Redis)

Общее описание этих тем и компонентов, включая общий обзор процесса установки, см. в Установка и настройка SaltStack Config. Инструкции по выбору сценария установки см. в Какой сценарий установки необходимо использовать?.

Примечание:

SaltStack Config выполняется в системе Salt, которая представляет собой систему управления автоматизацией и настройкой с открытым исходным кодом. Если вы плохо знакомы с основными терминами, используемыми в Salt (такими как главный сервер Salt и служебный сервер Salt), дополнительные сведения можно найти в разделе Архитектура системы Salt.

Определение архитектуры служебного сервера

В контексте системы SaltStack Config служебным сервером обычно называется узел в производственной среде, который подключен к системе SaltStack Config и управляется этой системой через один или несколько главных серверов Salt.

Система Salt предназначена для работы с любой операционной системой, которая может использоваться на служебном сервере. В дополнение к стандартным операционным системам (Linux, Windows, МАКОС) Salt предоставляет специализированное программное обеспечение служебных серверов (как правило, называемых «нативными служебными серверами») для операционных систем, уникальных для различных сетевых устройств, таких как Arista, Juniper, AIX и Solaris.

В этой таблице указаны минимальные требования к памяти для службы Salt Minion в различных операционных системах.

Операционная система Минимальные требования к памяти
Служебный сервер AIX ОЗУ 512 МБ
Служебный сервер MacOS ОЗУ 4 ГБ
Служебный сервер Linux ОЗУ 512 МБ
Служебный сервер Windows ОЗУ 4 ГБ
Другие сетевые устройства, включая служебные прокси-серверы ОЗУ 40 МБ для каждого управляемого устройства

Определение сценария установки

Инструкции по выбору сценария установки см. в Какой сценарий установки необходимо использовать?. Если вы не уверены, какой метод установки лучше использовать для вашей системы, рекомендуется применять стандартную установку. Метод установки с помощью Lifecycle Manager не рекомендуется применять для систем производственного уровня более чем с 1000 узлами.

Если выбрать сценарий установки с помощью Lifecycle Manager, будут необходимы только один узел, а также следующая архитектура системы:

Оборудование До 1000 узлов (служебных серверов)
Ядра 8 ядер ЦП
ОЗУ ОЗУ 16 ГБ
Дисковое пространство По крайней мере 40 ГБ свободной дисковой памяти

В остальной части этого руководства будут рассмотрены потребности архитектуры для сценария стандартной установки.

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

Несмотря на то что пропускную способность системы трудно определить до завершения установки, можно оценить свои потребности по числу служебных серверов (узлов) в системе, которыми будет управлять SaltStack Config. В последнем разделе этого руководства содержатся дополнительные измерения для определения пропускной способности системы.

По мере перевода все большего количества служебных серверов Salt под управление системы SaltStack Config архитектуру системы, возможно, придется масштабировать.

Оценка требуемого количества главных серверов Salt

В этой таблице указано рекомендуемое количество требуемых главных серверов Salt в зависимости от количества управляемых служебных серверов (узлов) Salt в системе.

Служебные серверы Главные серверы Salt (16 ЦП/16 ГБ)
5 000 1
10 000 2
15 000 3
20 000 4
25 000 5
30 000 6
35 000 7
40 000 8
45 000 9
50 000 10
55 000 11
60 000 12
65 000 13
70 000 14
75 000 15
80 000 16
85 000 17
90 000 18
95 000 19
100 000 20
Примечание:

В этом документе описывается локальная архитектура системы SaltStack Config. В настоящее время в системе SaltStack Config Cloud может работать только один главный сервер Salt, то есть может быть максимум 20 000 служебных серверов.

Оценка требуемого количества узлов RaaS

В этой таблице указано рекомендуемое количество узлов RaaS в зависимости от количества управляемых служебных серверов (узлов) Salt в системе.

Служебные серверы Узлы RaaS с 16 ЦП/16 ГБ Узлы RaaS с 32 ЦП/32 ГБ
5 000 1
10 000 1
15 000 1
20 000 1
25 000 2
30 000 2
35 000 2
40 000 2
45 000 1 1
50 000 1 1
55 000 1 1
60 000 1 1
65 000 2
70 000 2
75 000 2
80 000 2
85 000 1 2
90 000 1 2
95 000 1 2
100 000 1 2

Оценка требуемого количества узлов PostgreSQL

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

Служебные серверы Узлы PostgreSQL с 8 ЦП/8 ГБ Узлы PostgreSQL с 16 ЦП/16 ГБ Узлы PostgreSQL с 24 ЦП/24 ГБ Узлы PostgreSQL с 32 ЦП/32 ГБ
5 000 1
10 000 1
15 000 1
20 000 1
25 000 1
30 000 1
35 000 1
40 000 1
45 000 1
50 000 1
55 000 1
60 000 1
Служебные серверы Узлы PostgreSQL с 48 ЦП/48 ГБ Узлы PostgreSQL с 56 ЦП/56 ГБ Узлы PostgreSQL с 64 ЦП/64 ГБ
65 000 1
70 000 1
75 000 1
80 000 1
85 000 1
90 000 1
95 000 1
100 000 1

Оценка требуемого количества узлов Redis

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

Служебные серверы Узлы Redis с 4 ЦП/4 ГБ Узлы Redis с 8 ЦП/8 ГБ Узлы Redis с 12 ЦП/12 ГБ
5 000 1
10 000 1
15 000 1
20 000 1
25 000 1
30 000 1
35 000 1
40 000 1
45 000 1
50 000 1
55 000 1
60 000 1
Служебные серверы Узлы Redis с 16 ЦП/16 ГБ Узлы Redis с 20 ЦП/20 ГБ
65 000 1
70 000 1
75 000 1
80 000 1
85 000 1
90 000 1
95 000 1
100 000 1

Оптимизация архитектуры после установки на основе пропускной способности

После завершения установки SaltStack Config можно использовать показатели мониторинга системы для более качественного определения пропускной способности системы и потребностей ее архитектуры.

При определении области мониторинга необходимо учитывать следующие факторы.

  • Объем трафика в системе событий. Система событий (также иногда называемая «шиной событий») используется для передачи данных между процессами как главным сервером Salt, так и служебными серверами Salt. Если шина событий перегружена, попробуйте увеличить размер выделенной памяти.
  • Возвращаемые результаты заданий в час. В системе SaltStack Config термин «задания» используется для всех команд, задач и операций, выполняемых системой SaltStack Config. Каждое задание отправляет свои выходные данные в SaltStack Config для создания отчетов и сбора данных. Количество возвращаемых результатов заданий, генерируемых системой в заданный час, может влиять на потребности архитектуры.
  • Объем данных хранилища pillar. Данные хранилища pillar представляют собой данные, которые должны храниться на главном сервере Salt. Хранилище pillar используется прежде всего для хранения секретных или других конфиденциальных данных, например данных учетных записей, криптографических ключей и паролей. В хранилище pillar также могут храниться несекретные данные, которые нежелательно размещать непосредственно в файлах состояний, например данные о конфигурации. Объем данных, которые хранятся на главном сервере Salt (и к которым позже при необходимости могут обращаться служебные серверы), может влиять на потребности памяти и хранилища данных.
  • Количество настраиваемых параметров grain. Параметры grain используются в Salt для указания целевых служебных серверов для выполнения конкретного задания или команды. Параметры grain относятся к основным данным и характеристикам каждого служебного сервера. Salt поставляется с большим количеством предварительно созданных параметров grain. Для выбора целевых служебных серверов можно, например, использовать их операционные системы, имя домена, IP-адрес, ядро, память и многие другие свойства системы. Также можно создать настраиваемые параметры grain, чтобы отличать одну группу служебных серверов от другой с учетом уникальной целевой характеристики, которая вам требуется в системе. Количество создаваемых настраиваемых параметров grain может влиять на потребности архитектуры.
  • Количество маячков и реакторов. Система маячков представляет собой средство мониторинга, которое может прослушивать различные системные процессы на служебных серверах Salt. Маячки могут запускать реакторы, которые впоследствии могут участвовать во внесении изменений или устранении проблем. Например, если истек срок ожидания ответа от той или иной службы, реактор может перезапустить эту службу. В случае совместного применения с реакторами маячки могут создавать автоматические предварительно записанные ответы на проблемы, связанные с инфраструктурой и приложениями. Реакторы расширяют возможности Salt благодаря реализации автоматических ответов при использовании предварительно записанных состояний исправления. Если в системе есть маячки и реакторы, которые регулярно активируются, это может привести к необходимости масштабировать архитектуру системы.
  • Требуемая емкость диска. Возможно придется увеличивать емкость диска с учетом количества управляемых служебных серверов и объема данных, которые необходимо сохранить в хранилище (этот объем может изменяться из года в год). Например, если имеется система с высокой пропускной способностью и она применяется в отрасли с жестким административным регулированием, где данные необходимо хранить в течение 7–8 лет, может быть необходимо использовать диски и хранилища повышенной емкости.
  • Географическое расположение и расстояние между компонентами. Если между главным сервером Salt и сервером, на котором работает система SaltStack Config (RaaS), существует задержка в 65 мс или даже больше, могут возникать проблемы. К счастью, система Salt не сильно зависит от задержки между служебным сервером Salt и главным сервером Salt. При размещении этих компонентов следует помнить, что главный сервер рекомендуется размещать рядом с RaaS, а служебный сервер на удалении.
  • Критически важные бизнес-операции. При оценке степени важности системы SaltStack Config для среды определите, насколько серьезное влияние сможет оказать на ваш бизнес выход системы SaltStack Config из строя. Если система выйдет из строя на один или несколько часов, приведет ли это к серьезным проблемам? Если да, возможно, в архитектуре системы SaltStack Config будет нужно реализовать функцию высокой доступности.

В зависимости от этих факторов, оцените возможность постоянного масштабирования ресурсов и мониторинга проблем, влияющих на производительность системы. Например, увеличение объема выделенной памяти на 4 ГБ ОЗУ с 4 ЦП.

На следующем рисунке приведен пример архитектуры системы SaltStack Config с высокой доступностью.

На схеме показана система высокой доступности. Пользовательский интерфейс vRA подключается к серверу RaaS, который управляет несколькими главными серверами Salt, к каждому из которых относится несколько служебных серверов.

Как показано на этом рисунке, несколько систем высокой доступности подключены к нескольким главным серверам Salt. Системы высокой доступности также часто обеспечивают резервирование для базы данных PostgreSQL и баз данных Redis, чтобы обеспечить возможность их аварийного переключения друг на друга. Следует отметить, что текущие решения высокой доступности для баз данных PostgreSQL и Redis поддерживают только аварийное переключение вручную.