О планетах, регионах, контейнерах, организациях, средах и виртуальных хостах

Локальная установка Edge Private Cloud или экземпляр Edge состоит из нескольких компонентов Edge, установленных на наборе серверных узлов. На изображении ниже показана взаимосвязь между планетой, регионами, капсулами, организациями, средами и виртуальными хостами, которые составляют экземпляр Edge:

В таблице ниже описаны эти отношения.

Компонент Содержит Связано с По умолчанию
Планета Один или несколько регионов –
Регион один или несколько контейнеров; "dc-1"
Пакет Один или несколько компонентов Edge "central"
"gateway"
"analytics"
Организация Одна или несколько сред Один или несколько контейнеров с процессорами сообщений и пользователь, выступающий в роли администратора организации. Нет
Среда Один или несколько виртуальных хостов. Один или несколько процессоров сообщений в контейнере, связанном с родительской организацией. Нет
Виртуальный хост Один или несколько псевдонимов хоста. Нет

Планеты

Планета представляет собой всю аппаратную и программную среду Edge и может содержать один или несколько регионов. В Edge планета – это логическая группа регионов. При установке Edge планета не создается и не настраивается.

О регионах

Регион – это группа из одного или нескольких контейнеров. По умолчанию при установке Edge установщик создает один регион с названием dc-1, содержащий три модуля, как показано в таблице ниже.

Регион Поды в регионе
"dc-1" "gateway", "central", "analytics"

На изображении ниже показаны регионы по умолчанию.

На этом изображении показано, как балансировщик нагрузки направляет трафик в модуль gateway. В контейнере gateway находятся компоненты Edge Router и Message Processor, которые обрабатывают запросы API. Если вы не определите несколько центров обработки данных, вам не нужно будет создавать дополнительные регионы.

В более сложных случаях можно создать два или более региона. Одна из причин создать несколько регионов – организовать машины по географическому принципу, чтобы сократить время передачи данных по сети. В этом случае вы размещаете конечные точки API так, чтобы они были географически близки к потребителям этих API.

В Edge каждый регион называется центром обработки данных. Центр обработки данных на востоке США может обрабатывать запросы, поступающие из Бостона (Массачусетс), а центр обработки данных в Сингапуре – запросы, поступающие с устройств или компьютеров в Азии.

Например, на изображении ниже показаны два региона, соответствующие двум центрам обработки данных:

О пакетах

Кластер – это группа из одного или нескольких компонентов Edge и хранилищ данных Cassandra. Компоненты Edge можно установить на одном узле, но чаще их устанавливают на разных узлах. Хранилище данных Cassandra – это репозиторий данных, используемый компонентами Edge в контейнере.

По умолчанию при установке Edge программа установки создает три модуля и связывает с каждым из них следующие компоненты Edge и хранилища данных Cassandra:

Пакет Компоненты Edge

Хранилища данных Cassandra

"gateway" Маршрутизатор, процессор сообщений cache-datastore
counter-datastore
dc-datastore
keyvaluemap-datastore
kms-datastore
"central" Сервер управления, Zookeeper, LDAP, интерфейс, Qpid application-datastore
apimodel-datastore
audit-datastore
auth-datastore
identityzone-datastore
edgenotification-datastore
management-server
scheduler-datastore
user-settings-datastore
"analytics" Postgres analytics-datastore reportcrud-datastore

Компоненты Edge и хранилища данных Cassandra в контейнере gateway необходимы для обработки API. Эти компоненты и хранилища данных должны быть запущены и работать, чтобы обрабатывать запросы API. Компоненты и хранилища данных в контейнерах central и analytics не требуются для обработки API, но добавляют в Edge дополнительные функции.

На изображении ниже показаны компоненты в каждом контейнере:

Вы можете добавить дополнительные модули Message Processor и Router к трем, которые создаются по умолчанию. Также можно добавить дополнительные компоненты Edge в существующий контейнер. Например, вы можете добавить дополнительные маршрутизаторы и процессоры сообщений в модуль gateway, чтобы справиться с возросшей нагрузкой трафика.

Обратите внимание, что в контейнере gateway содержатся компоненты Edge Router и Message Processor. Маршрутизаторы отправляют запросы только процессорам сообщений в том же контейнере, а не процессорам сообщений в других контейнерах.

Чтобы посмотреть сведения о регистрации сервера в конце установки для каждого модуля, можно использовать следующий вызов API: Это полезный инструмент мониторинга.

curl -u adminEmail:pword http://ms_IP:8080/v1/servers?pod=podName

где ms_IP – IP-адрес или DNS-имя сервера управления, а podName – одно из следующих значений:

  • gateway
  • central
  • analytics

Например, для пода gateway:

curl -u adminEmail:pword http://ms_IP:8080/v1/servers?pod=gateway

Apigee возвращает выходные данные, похожие на следующие:

[ {
  "externalHostName" : "localhost",
  "externalIP" : "192.168.1.11",
  "internalHostName" : "localhost",
  "internalIP" : "192.168.1.11",
  "isUp" : true,
  "pod" : "gateway",
  "reachable" : true,
  "region" : "dc-1",
  "tags" : {
    "property" : [ {
      "name" : "jmx.rmi.port",
      "value" : "1101"
    }, ... ]
  },
  "type" : [ "message-processor" ],
  "uUID" : "276bc250-7dd0-46a5-a583-fd11eba786f8"
}, 
{
  "internalIP" : "192.168.1.11",
  "isUp" : true,
  "pod" : "gateway",
  "reachable" : true,
  "region" : "dc-1",
  "tags" : {
    "property" : [ ]
  },
  "type" : [ "dc-datastore", "management-server", "cache-datastore", "keyvaluemap-datastore", "counter-datastore", "kms-datastore" ],
  "uUID" : "13cee956-d3a7-4577-8f0f-1694564179e4"
},
{
  "externalHostName" : "localhost",
  "externalIP" : "192.168.1.11",
  "internalHostName" : "localhost",
  "internalIP" : "192.168.1.11",
  "isUp" : true,
  "pod" : "gateway",
  "reachable" : true,
  "region" : "dc-1",
  "tags" : {
    "property" : [ {
      "name" : "jmx.rmi.port",
      "value" : "1100"
    }, ... ]
  },
  "type" : [ "router" ],
  "uUID" : "de8a0200-e405-43a3-a5f9-eabafdd990e2"
} ]

Атрибут type содержит тип компонента. Обратите внимание, что в нем перечислены хранилища данных Cassandra, зарегистрированные в контейнере. Хотя узлы Cassandra установлены в контейнере gateway, вы увидите хранилища данных Cassandra, зарегистрированные во всех контейнерах.

Организации

Организация – это контейнер для всех объектов в аккаунте Apigee, включая API, продукты API, приложения и разработчиков. Организация связана с одним или несколькими сегментами, в каждом из которых должен быть хотя бы один обработчик сообщений.

В локальной установке Edge Private Cloud по умолчанию нет организаций. При создании организации необходимо указать два типа информации:

  1. Пользователь, выполняющий функции администратора организации. Затем этот пользователь может добавить в организацию других пользователей и назначить им роли.
  2. Контейнер gateway, в котором находятся процессоры сообщений.

Организация может содержать одну или несколько сред. При установке Edge по умолчанию вам будет предложено создать две среды: test и prod. Однако при необходимости вы можете создать дополнительные среды, например "Промежуточная", "Эксперименты" и т. д.

Организация определяет область действия некоторых функций Apigee. Например, данные из карты "ключ-значение" (KVM) доступны на уровне организации, то есть во всех средах. Другие возможности, например кеширование, ограничены определенной средой. Данные аналитики Apigee разделяются по сочетанию организации и среды.

Ниже перечислены основные объекты организации, в том числе определенные на глобальном уровне и на уровне среды:

О средах

Среда – это контекст выполнения API-прокси в организации. Чтобы получить доступ к прокси-серверу API, его необходимо развернуть в среде. Прокси API можно развернуть в одной или нескольких средах.

Организация может содержать несколько сред. Например, в организации можно определить среды "dev", "test" и "prod".

При создании среды вы связываете ее с одним или несколькими процессорами сообщений. Среда – это набор процессоров сообщений, на которых выполняются прокси API. Каждая среда может быть связана с одними и теми же или разными процессорами сообщений.

Чтобы создать среду, укажите два параметра:

  1. Организация, содержащая среду.
  2. Message Processor, которые обрабатывают запросы прокси-сервера API к среде. Эти процессоры сообщений должны находиться в контейнере, связанном с родительской организацией среды.
    По умолчанию при создании среды Edge связывает с ней все доступные процессоры сообщений в контейнере gateway. Вы также можете указать подмножество доступных процессоров сообщений, чтобы разные процессоры обрабатывали запросы к разным средам.

Message Processor можно связать с несколькими средами. Например, в вашей установке Edge есть два процессора сообщений: A и B. Затем вы создаете в организации три среды: dev, test и prod:

  • Для среды разработки вы связываете Message Processor А, поскольку не ожидаете большого объема трафика.
  • Для тестовой среды вы связываете Message Processor Б, поскольку не ожидаете большого объема трафика.
  • Для рабочей среды вы связываете оба процессора сообщений (А и Б), чтобы обрабатывать объем данных на уровне производства.

Процессоры сообщений, назначенные среде, могут быть из одного или нескольких сегментов, охватывающих несколько регионов и центров обработки данных. Например, вы определяете среду "global" в своей организации, которая включает процессоры сообщений из трех регионов, то есть трех разных центров обработки данных: США, Японии и Германии.

При развертывании прокси-сервера API в среде global он будет выполняться на Message Processor во всех трех центрах обработки данных. Трафик API, поступающий на маршрутизатор в любом из этих центров обработки данных, будет направляться только процессорам сообщений в этом центре обработки данных, поскольку маршрутизаторы направляют трафик только процессорам сообщений в том же сегменте.

О виртуальных хостах

Виртуальный хост определяет порт на маршрутизаторе Edge, на котором представлен прокси-сервер API, и, как следствие, URL, который приложения используют для доступа к прокси-серверу API. Для каждой среды необходимо определить хотя бы одного виртуального хоста.

Убедитесь, что номер порта, указанный виртуальным хостом, открыт на узле маршрутизатора. После этого вы сможете получить доступ к прокси-серверу API, отправив запрос по следующим URL:

http://routerIP:port/proxy-base-path/resource-name
https://routerIP:port/proxy-base-path/resource-name

Где:

  • http или https: если виртуальный хост настроен на поддержку TLS/SSL, используйте HTTPS. Если виртуальный хост не поддерживает TLS/SSL, используйте HTTP.
  • routerIP:port – IP-адрес и номер порта виртуального хоста.
  • proxy-base-path и resource-name определяются при создании прокси-сервера API.

Как правило, вы не публикуете свои API для клиентов с IP-адресом и номером порта. Вместо этого вы определяете запись DNS для маршрутизатора и порта. Пример:

http://myAPI.myCo.com/proxy-base-path/resource-name
https://myAPI.myCo.com/proxy-base-path/resource-name

Кроме того, необходимо создать псевдоним хоста для виртуального хоста, который соответствует доменному имени записи DNS. В приведенном выше примере вы бы указали псевдоним хоста myAPI.myCo.com. Если у вас нет записи DNS, задайте псевдоним хоста в виде IP-адреса маршрутизатора и порта виртуального хоста, как показано в примере routerIP:port.

Подробнее о виртуальных хостах…

Как создать первую организацию, среду и виртуальный хост

После завершения установки Edge обычно выполняется процесс инициализации, в ходе которого создаются организация, среда и виртуальный хост. Чтобы выполнить регистрацию, выполните следующую команду на узле сервера управления Edge:

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

Эта команда принимает в качестве входных данных файл конфигурации, в котором определены пользователь, организация, среда и виртуальный хост.

Например, вы создаете:

  • Пользователь, которого вы выберете в качестве администратора организации.
  • Организация example
  • Среда в организации с названием prod, связанная со всеми процессорами сообщений в модуле gateway.
  • Виртуальный хост в среде с именем default, который разрешает доступ по протоколу HTTP через порт 9001.
  • Псевдоним хоста для виртуального хоста

После выполнения скрипта вы сможете получить доступ к API, используя URL в следующем формате:

http://routerIP:9001/proxy-base-path/resource-name

Позже вы сможете добавить любое количество организаций, сред и виртуальных хостов.

Подробнее о том, как зарегистрировать организацию…