Хостинг и развертывание (v2)

обновленный

Выбор языка интеграции

Инженерная команда Reincubate в основном использует Python. Следовательно, самые сложные примеры клиентских реализаций построены на Python, хотя нет веских оснований для использования языка. API используется клиентами, работающими с .NET / C #, PHP, Python, Java и JavaScript / Node.js.

Подключение и выбор центра обработки данных

Инфраструктура ricloud API поддерживается рядом поставщиков в США, ЕС и Канаде, включая Google Cloud Platform, Amazon Web Services и Microsoft Azure.

При использовании данных из aschannel в процессе производства процесс прослушивания будет отвечать за прослушивание пожарного потока данных и, следовательно, требует надежного высокоскоростного подключения к Интернету со скоростью не менее 100 Мбит / с. Более медленные соединения могут работать, но могут сбрасывать данные, как описано в aschannel .

Клиенты, которые могут потреблять большие объемы данных, должны использовать партнеров по хостингу для этой части своей инфраструктуры с пирингом уровня 1 для обеспечения надежного широкополосного доступа к этим хостам. Точно так же это рекомендуется для клиентов, использующих устаревшую версию 1.x.

Учитывая запросы к asapi и asmaster, как правило, с низкой пропускной способностью и малым объемом, нет особых требований для размещения клиентов этих компонентов.

Стратегии высокой доступности для aschannel

Как только один процесс слушатель может прикрепиться к aschannel в то время, клиенты , нуждающиеся в высокой доступности в их собственной реализации могли бы рассмотреть Open Source keepalived проект для обеспечения высокой доступности.

Использование образца клиента в производстве

В некоторых случаях пример клиента ricloud-py может быть запущен в производство, что избавит клиентов от интеграции.

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

Поддерживаемые платформы

Требуется только базовая установка Ubuntu Server 16.04 LTS по умолчанию с MySQL 5.7. После установки необходимые пакеты можно добавить с помощью следующей команды:

$ apt-get install python-pip libmysqlclient-dev mysql-server

Неподдерживаемые платформы, которые работают как известно

  • Большинство серверных и облачных дистрибутивов Linux
  • macOS 10.12 с дистрибутивом MySQL от Brew ( скачать )

Подготовка сервера к производству

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

Максимальное количество открытых файлов

По умолчанию ограничение на количество открытых файловых дескрипторов равно 171 614, а максимальное количество файловых дескрипторов на сеанс - 1024:

$ cat /proc/sys/fs/file-max
171614
$ ulimit -n
1024

Чтобы оптимизировать одновременный прием большого количества файлов, прослушиватель сохраняет поток файлов открытым для каждого фрагментируемого файла. Следовательно, если многие файлы передаются в потоковом режиме и разбиваются на фрагменты одновременно, вероятно, будет превышено ограничение в 1024.

Лимит сеанса можно снять, создав файл /etc/security/limits.d/ricloud-listener.conf со следующим содержимым:

* hard nofile 10240
* soft nofile 10240

После начала нового сеанса эти новые ограничения вступят в силу. Без перезапуска сеанса ограничение можно изменить с помощью следующей команды:

$ ulimit -n 10240

Максимальный размер пакета MySQL

По умолчанию самый большой пакет, который MySQL будет обрабатывать в Ubuntu 16.04, составляет около 3,5 МБ:

mysql> show global variables like 'max_allowed%';
+--------------------+----------+
| Variable_name      | Value    |
+--------------------+----------+
| max_allowed_packet | 33554432 |
+--------------------+----------+
1 row in set (0.11 sec)

Большие тела подачи могут переполнять этот размер, когда они вставлены. Множество гранулированных записей данных HealthKit может легко занимать несколько сотен мегабайт JSON. Это будет указано следующей строкой в журнале MySQL:

[Note] Aborted connection 277783 to db: 'ricloud' user: 'ricloud' host: 'localhost' (Got a packet bigger than 'max_allowed_packet' bytes)

Следующая ошибка будет присутствовать в ricloud.log :

2017-05-01 16:23:52,828 root CRITICAL <class '_mysql_exceptions.OperationalError'>: (2006, 'MySQL server has gone away')
OperationalError: (2006, 'MySQL server has gone away')

Это может быть решено путем сброса max_allowed_packet , который имеет максимальный размер 1 ГБ. Это может быть изменено во время выполнения с помощью этого:

SET GLOBAL max_allowed_packet=1073741824;

Его можно изменить навсегда, настроив файл my.cnf на сервере:

max_allowed_packet=1073741824

Максимальный размер файла журнала MySQL InnoDB

Механизм хранения MySQL InnoDB имеет ограничение, согласно которому размер элементов, вставляемых в таблицу, не может превышать 10% от размера журнала повторов. Ошибка, которую может вызвать это ограничение, выглядит так:

(1118, 'The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.')

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

Конфигурация как услуга

Настройка прослушивателя для запуска в качестве службы в Ubuntu 16.04 проста.

Добавьте следующее в новый файл в /etc/systemd/system/ricloud-listener.service :

[Unit]
Description=ricloud listener
After=network-online.target

[Service]
WorkingDirectory=/var/www-hosts
ExecStart=/usr/bin/python -m ricloud --listen
Restart=always
KillSignal=SIGQUIT
Type=simple
StandardError=syslog
NotifyAccess=all
User=www-data
Group=www-data

[Install]
WantedBy=multi-user.target

Убедитесь, что папка /var/www-hosts/logs существует и доступна для записи пользователю www-data . Конечно, любая папка или пользователь может быть настроен для этого. Затем перезапустите службу system.d и запустите новую ricloud-listener .

$ sudo mkdir -p /var/www-hosts/logs
$ sudo chown -R www-data:www-data /var/www-hosts
$ sudo systemctl daemon-reload
$ sudo systemctl start ricloud-listener

Межсетевой экран примера клиента

прибывающий

  • Для нормальной работы входящий интернет-трафик не требуется.
  • При использовании в режиме прослушивателя для настройки клиента может потребоваться входящий трафик локальной сети по TCP/3306 для локального экземпляра MySQL и другие порты для общего доступа к файловой системе.

Исходящий

  • Библиотека ricloud отправляет исходящие запросы по TCP/443 на три имени хоста при получении данных: asmaster.reincubate.com , asapi.reincubate.com и aschannel.reincubate.com .
  • При необходимости трафик к asmaster и asapi можно безопасно проксировать , но важно учитывать требования, касающиеся подключения . Прокси- канал не рекомендуется.

Использование настольных компонентов в производстве

Поддерживаемые платформы

Компонент asrelay с белой меткой работает в Windows 7 и более поздних версиях (7, 8, 8.1, 10 и т. Д.) И macOS 10.11 и выше.

Код для подписи

Чтобы создать надежную белую сборку компонента рабочего стола, требуются сертификаты подписи кода. Microsoft публикует информацию об этом, а Apple предоставляет сертификаты в рамках своей программы для разработчиков .

Установление доверия браузера

Браузеры используют разные методы для применения базового уровня защиты при загрузке. Современные браузеры по умолчанию не доверяют неизвестным файлам. Chrome отображает сообщение о загрузке, в котором говорится: «Этот тип файлов может нанести вред вашему компьютеру. В любом случае вы хотите сохранить binary.exe?». Браузер Microsoft Edge открывает окно «Windows Smartscreen». Браузеры используют ряд различных критериев при понимании того, стоит ли предупреждать: они будут смотреть на домен, природу файла и, прежде всего, видели ли они его достаточно много раз, прежде чем понять, безопасно ли это.

Если нужно было загрузить пользовательское приложение Reincubate, предупреждение не будет отображаться, поскольку оно хорошо известно браузерам.

В случае клиента asrelay он не распространяется публично как есть: он получает белый ярлык и подписывается с помощью ключа подписи кода клиента. Браузеры доверяют ключу и домену подписи кода Reincubate, но, как правило, они не распознают asrelay, поскольку он не разглашается .

Когда asrelay настроен с именем клиента и подписью кода, он будет рассматриваться как новое приложение (у него не будет сертификата Reincubate) и будет запускаться без репутации, поэтому он будет отмечен браузерами при загрузке. Чтобы стать доверенным, новая программа должна узнать многие компьютеры как можно скорее. Как правило, при внесении существенных изменений в фактор доверия можно довольно быстро обойти эти экраны с помощью нескольких дней загрузки и установки.

Как мы можем помочь?

Наша служба поддержки здесь, чтобы помочь!

Наш офис работает с понедельника по пятницу с 9:00 до 17:00 по Гринвичу. Время в настоящее время 5:18 ПП с GMT.

Мы стремимся отвечать на все сообщения в течение одного рабочего дня.

Перейти в раздел поддержки › Связаться с командой предприятия ›
Наша отличная команда поддержки

© 2008 - 2019 Reincubate Ltd. Все права защищены. Зарегистрировано в Англии и Уэльсе #5189175, VAT GB151788978. Reincubate® является зарегистрированным товарным знаком. Защита & Условия. Мы рекомендуем 2FA. Построен с в Лондоне.