Hébergement et déploiement (v2)

Mis à jour

Choix de la langue d'intégration

L'équipe d'ingénierie de Reincubate utilise principalement Python. Par conséquent, les exemples d'implémentation client les plus sophistiqués sont construits en Python, bien qu'il n'y ait aucune raison difficile d'utiliser un langage. L'API est utilisée par les clients exécutant .NET / C #, PHP, Python, Java et JavaScript / Node.js.

Connectivité et sélection du centre de données

L' infrastructure de l' API ricloud est hébergée par plusieurs fournisseurs aux États-Unis, dans l'Union européenne et au Canada, notamment Google Cloud Platform, Amazon Web Services et Microsoft Azure.

Lors de la consommation de données provenant d'un canal en production, le processus d'écoute sera responsable de l'écoute d'un feu de données, et nécessite par conséquent une connexion Internet fiable à large bande passante d' au moins 100 Mb / s. Des connexions plus lentes peuvent fonctionner, mais risquent de perdre des données, comme décrit dans aschannel .

Les clients susceptibles de consommer de grandes quantités de données doivent utiliser des partenaires d’hébergement pour cette partie de leur infrastructure, avec un peering de niveau 1 garantissant un accès fiable à large bande passante à ces hôtes. De même, ceci est conseillé aux clients utilisant Legacy ricloud 1.x.

Étant donné que les demandes adressées à asapi et asmaster sont généralement à faible bande passante et à faible volume, il n'y a pas d'exigences particulières pour l'hébergement des clients de ces composants.

Stratégies de haute disponibilité pour aschannel

Comme un seul processus d'écoute peut être associé à aschannel à la fois, les clients ayant besoin d'une haute disponibilité dans leur propre implémentation peuvent considérer le projet keepalived Open Source comme une haute disponibilité.

Utilisation de l'exemple de client en production

Dans certains cas d'utilisation, l'exemple de client ricloud-py peut être directement mis en production, ce qui évite aux clients l'intégration de la construction.

Lorsqu'elle est déployée en mode d'écoute, la bibliothèque nécessite une machine avec un stockage pour mettre en mémoire tampon le contenu reçu jusqu'à ce que l'application du client le récupère et le purge.

Plateformes supportées

Seule l'installation de base par défaut d'Ubuntu Server 16.04 LTS avec MySQL 5.7 est requise. Une fois installés, les packages requis peuvent être ajoutés avec la commande suivante:

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

Des plates-formes non supportées qui fonctionnent

  • La plupart des distributions Linux sur serveur et cloud
  • macOS 10.12 avec la distribution MySQL de Brew ( téléchargement )

Préparation du serveur pour la production

Ubuntu 16.04 a un certain nombre de valeurs par défaut qui peuvent limiter les fonctionnalités de l’auditeur dans un environnement de production.

Nombre maximum de fichiers ouverts

Par défaut, la limite de descripteurs de fichier ouverts est définie sur 171 614 et le nombre maximal de descripteurs de fichier par session est défini sur 1 024:

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

Afin d’optimiser la réception simultanée de nombreux fichiers, l’auditeur maintient un flux de fichiers ouvert pour chaque fichier en cours de fragmentation. Par conséquent, si plusieurs fichiers sont en cours de streaming et de fichiers en même temps, il est probable que la limite de 1 024 sera dépassée.

La limite de session peut être levée en créant un fichier nommé /etc/security/limits.d/ricloud-listener.conf avec le contenu suivant:

* hard nofile 10240
* soft nofile 10240

Une fois qu'une nouvelle session a été démarrée, ces nouvelles limites prendront effet. Sans avoir à redémarrer la session, la limite peut être modifiée à l'aide de la commande suivante:

$ ulimit -n 10240

Taille maximale des paquets MySQL

Par défaut, le plus gros paquet que MySQL gérera sur Ubuntu 16.04 fait environ 3,5 Mo:

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

Les gros corps d'alimentation peuvent dépasser cette taille lorsqu'ils sont insérés. Un grand nombre d'entrées de données HealthKit granulaires peuvent facilement exécuter plusieurs centaines de mégaoctets de JSON. Ceci sera indiqué par la ligne suivante dans le journal MySQL:

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

L'erreur suivante sera présente dans le 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')

Cela peut être résolu en réinitialisant max_allowed_packet , dont la taille maximale est de 1 Go. Cela peut être changé au moment de l'exécution avec ceci:

SET GLOBAL max_allowed_packet=1073741824;

Il peut être modifié de manière permanente en configurant le fichier my.cnf du serveur:

max_allowed_packet=1073741824

Taille maximale du fichier journal MySQL InnoDB

Le moteur de stockage MySQL InnoDB est soumis à une restriction selon laquelle la taille des éléments insérés dans la table ne peut pas dépasser 10% de la taille du journal de reprise. L'erreur que cette restriction peut provoquer ressemble à ceci:

(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.')

Comme le suggère l'erreur, le correctif consiste à augmenter la taille du paramètre innodb_log_file_size à une valeur appropriée. Les restrictions sur la valeur de ce paramètre peuvent être trouvées ici .

Configuration en tant que service

Configurer l'écouteur pour qu'il s'exécute en tant que service sur Ubuntu 16.04 est simple.

Ajoutez ce qui suit dans un nouveau fichier /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

Vérifiez que le dossier /var/www-hosts/logs existe et qu'il est accessible en écriture à l'utilisateur www-data . Bien entendu, n'importe quel dossier ou utilisateur peut être configuré pour cela. Ensuite, redémarrez le service system.d et démarrez le nouveau service 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

Pare-feu de l'exemple de client

Entrant

  • Aucun accès au trafic Internet entrant n'est requis pour un fonctionnement normal.
  • Lorsqu'il est utilisé en mode écouteur, la configuration d'un client peut nécessiter un trafic LAN entrant sur TCP/3306 pour l'instance MySQL locale et d'autres ports pour tout partage de système de fichiers.

Sortant

  • La bibliothèque ricloud effectue des requêtes sortantes sur TCP/443 vers les trois noms d’hôte lors de la récupération des données: asmaster.reincubate.com , asapi.reincubate.com et aschannel.reincubate.com .
  • Le trafic vers asmaster et asapi peut être proxy en toute sécurité si nécessaire, mais il est important de noter les exigences en matière de connectivité . La procuration par canal n'est pas recommandée.

Utilisation de composants de bureau en production

Plateformes supportées

Le composant asrelay marqué en blanc fonctionne sous Windows 7 et versions ultérieures (7, 8, 8.1, 10, etc.) et macOS 10.11 et versions ultérieures .

Signature de code

Afin de créer une version en blanc de confiance du composant de bureau, des certificats de signature de code sont requis. Microsoft publie des informations à ce sujet et Apple fournit des certificats dans le cadre de son programme de développement .

Établir la confiance du navigateur

Les navigateurs utilisent différentes techniques pour appliquer un niveau de protection de base autour des téléchargements. Les navigateurs modernes ne font pas confiance aux fichiers inconnus par défaut. Dans les téléchargements, Google Chrome affiche un message indiquant "Ce type de fichier peut endommager votre ordinateur. Voulez-vous conserver le fichier binary.exe de toute façon?". Le navigateur Edge de Microsoft affiche un volet "Windows Smartscreen". Les navigateurs utilisent un certain nombre de critères différents pour savoir s’il faut avertir: ils examineront le domaine, la nature du fichier et, surtout, s’ils l’ont vu suffisamment de fois auparavant pour savoir s’il est sans danger.

Si vous deviez télécharger l' application grand public de Reincubate, aucun avertissement ne sera affiché car il est bien connu des navigateurs.

Dans le cas du client asrelay, il n'est pas distribué publiquement en l'état: il est marqué en blanc et signé avec la clé de signature du code du client. Les navigateurs font confiance à la clé et au domaine de signature de code de Reincubate, mais ils ont tendance à ne pas reconnaître le relais car il n'est pas diffusé au public.

Lorsque asrelay est personnalisé avec le nom du client et la signature du code, il sera traité comme une nouvelle application (il n'aura pas le certificat de Reincubate) et commencera sans réputation. Il sera donc signalé par les navigateurs au téléchargement. Pour pouvoir faire confiance, le nouveau programme doit connaître un grand nombre d'ordinateurs dès que possible. En règle générale, lorsque vous apportez une modification importante à un facteur de confiance, vous pouvez vous débarrasser de ces écrans assez rapidement en quelques jours de téléchargements et d'installations.

Comment pouvons nous aider?

Notre équipe de support est là pour vous aider!

Nos bureaux sont ouverts du lundi au vendredi, de 9 h à 17 h GMT. L’heure est actuellement 7:50 Après-midi GMT.

Notre objectif est de répondre à tous les messages en un jour ouvrable.

Aller à la section support › Contacter l'équipe de l'entreprise ›
Notre superbe équipe de support

© 2008 - 2019 Reincubate Ltd. Tous droits réservés. Enregistré en Angleterre et au Pays de Galles #5189175, VAT GB151788978. Reincubate® est une marque déposée. Confidentialité et modalités. Nous recommandons l'authentification multi-facteurs. Construit avec à Londres.