Written by

Nous avons lancé la fonctionnalité Services : vous pouvez désormais exécuter des programmes supervisés 24/7 sur votre compte !

alwaysdata est une plateforme Cloud avancée permettant à ses utilisateurs d’héberger autant de sites et d’applications web qu’ils le souhaitent. La plateforme intègre un large panel de fonctionnalités, depuis les langages (PHP, Python, Node, Go, etc.) jusqu’aux fonctionnalités orientées DevOps (accès SSH, tâches planifiées, etc.). Toutes ces fonctionnalités sont librement accessibles, et sont isolées via un mécanisme de permissions : vous ne pouvez pas exécuter un programme avec les privilèges root car nous gérons l’ensemble du système et la stabilité de la plateforme1).

Vous permettre d’exécuter vos propres programmes personnalisés dans un mode 24/7, comme des processus démonisés, était un besoin important pour beaucoup de nos utilisateurs. Les voici !

Au service de Sa Majesté

Nous avons donc introduit les Services, disponibles pour tous, utilisateurs du Cloud comme de Catalyst. Il s’agit de programmes personnalisés fonctionnant en mode détaché, c’est-à-dire non interactif : sans aucune action de l’utilisateur. La plate-forme intègre déjà tout ce dont vous pouvez avoir besoin comme dépendances pour ces programmes (interpréteurs, bibliothèques, etc.).

Le grand avantage des services tient dans leur monitoring : parce qu’ils sont conçus pour être exécutés en tant que processus en arrière-plan, le système surveille l’exécution et le redémarre dès qu’il s’arrête, garantissant que votre application est toujours opérationnelle et disponible, sans aucune action de votre part. Ces processus diffèrent des processus Sites qui sont stoppés par la plate-forme lorsqu’ils ne sont plus sollicités, et sont relancés à la demande par notre proxy. Les Services, eux, sont disponibles en continu, et monitorés dans ce sens.

Déclaration d’un service

Notre documentation a été mise à jour pour ajouter la section Services et vous aider à les déclarer dans votre interface d’administration.

Comme pour les Tâches planifiées, vous devez indiquer la commande à exécuter. C’est le seul paramètre obligatoire pour qu’un nouveau Service soit prêt. La commande peut ou non être déjà préinstallée sur la plate-forme. Vous êtes libre d’ajouter vos propres programmes2) dans l’espace utilisateur de votre compte.

Par défaut, votre Service s’exécute dans un processus isolé3) et n’est pas accessible de l’extérieur, sauf si vous l’exposez sur un port donné4). Vous pouvez cependant souhaiter pouvoir y accéder dans certains cas. Pour ce faire, configurez votre processus de Service pour écouter sur l’adresse IPv6 :: et choisissez un port disponible dans la plage 8300-8499. Grâce à notre architecture de conteneurisation, l’ensemble de ces ports est réservé à votre utilisateur uniquement, même pour la plateforme Cloud. Attention cependant : votre processus sera alors exposé publiquement, charge à vous d’activer l’authentification sur le service si nécessaire.

Cas avancé : monitoring personnalisé

Vous pouvez avoir parfois besoin de redémarrer l’exécution de votre Service sur des critères spécifiques plutôt que selon l’état du processus.

Vous pouvez donc spécifier une Commande de surveillance personnalisée. Le processus de supervision du Service l’utilisera pour déterminer si le processus associé doit être redémarré ou non en fonction de son code de retour.

Libérez le Kraken !

Utilisez votre propre gestionnaire de queue de messages

Dans les cas d’usage les plus populaires se trouve l’utilisation des gestionnaires de queues de messages (voire des brokers associés). Pour les utilisateurs de Catalyst, ces outils pouvaient déjà fonctionner, leurs comptes étant dans des environnements dédiés.

En revanche, les utilisateurs Cloud ne pouvaient y avoir accès : comme ils partagent des ressources matérielles, nous ne disposions pas de l’infrastructure permettant d’exécuter facilement des processus 24/7, notamment pour des raisons de sécurité d’accès. Désormais, grâce aux Services, chaque utilisateur peut exécuter sa propre instance et y accéder, y compris sur un port dédié appartenant uniquement à l’utilisateur en cours d’exécution ! Simple et efficace.

Parce que notre plateforme Cloud est particulièrement appréciée des Pythonistas, vous serez heureux d’apprendre que l’exécution d’un processus Celery (associé à RabbitMQ, déjà disponible, voire à une instance Redis exécuté comme Service également) est devenue aussi simple que de déclarer un Site ! Et comme Celery est un gestionnaire de tâches largement utilisé, vous n’êtes pas seulement limité à Python. Vous pouvez l’utiliser avec vos applications Node.js, Ruby, ou même PHP les plus populaires !

Améliorez vos perfs

Les applications Web peuvent être très consommatrices lorsque vous devez calculer des réponses complexes à certaines requêtes, comme avec des APIs ou les solutions de Cloud personnel.

Des solutions de mise en cache sont souvent utilisées pour accélérer ces applications. Certaines étaient déjà disponibles, comme du Memory Caching utilisant APCu. Pour des stratégies plus avancées, vous pouvez vous appuyer sur des systèmes de cache serveur. Memcached est l’un d’entre eux, et une solution largement adoptée, disponible pour tous les langages web.

Pour faire tourner votre propre instance de Memcached, il suffit de l’exécuter en tant que Service en le rattachant à un port disponible dans la plage 8300-8499. Votre instance Memcached privée sera disponible pour vos applications web à l’adresse service-[account].alwaysdata.net:[port] !

Communiquez avec votre équipe

Besoin d’auto-héberger une solution pour rester en contact avec votre équipe ou vos proches ? Mattermost est une alternative libre, open-source et gratuite, aux outils comme Slack ou Discord. En tant que système de messagerie, un serveur Mattermost nécessite d’être continuellement accessible.

Avec les Services, vous pouvez désormais héberger facilement une instance Mattermost et qui sera monitorée par la plate-forme, assurant ainsi sa disponibilité 24/7 !

Observabilité pour toutes vos applications

L’observabilité est la clé de voûte des stratégies d’amélioration des performances. Les applications web ne font pas exception. La solution la plus réputée pour mesurer, détecter et prévenir les interruptions de services est Datadog, parfaitement taillée pour l’écosystème Web.

L’exécution de l’agent Datadog sur votre serveur peut nécessiter des privilèges avancés que vous ne possédez pas sur le Cloud alwaysdata. Maintenant, vous pouvez l’exécuter simplement en suivant la documentation Datadog Basic Agent Usage sans besoin de privilèges avancés. Exécutez le processus de démarrage de l’agent en tant que Service, et commencez à collecter des métriques sur vos applications !

Les exemples ci-dessus ne sont qu’une petite partie des possibilités infinies offertes par les Services ! Vous pouvez aussi utiliser un bouncer IRC comme ZNC, des bots de messagerie comme Telegram BotFather, ou un serveur X virtuel comme xvfb pour interagir avec des solutions dépendant du rendu graphique comme QGIS Server.


Ouvrez un compte gratuit sur la plateforme et commencez dès maintenant à exécuter vos propres Services privés !

Nous sommes également curieux de savoir ce que vous souhaitez exécuter dans ce mode. Faites-le nous savoir dans les commentaires !

Notes

Notes
1Jetez un coup d’œil à SaaS, PaaS, IaaS, quelles sont les différences pour plus de détails sur ce sujet.
2Compatible x86_64.
3Comme l’ensemble des processus exécutés par votre utilisateur
4Dans le cas des utilisateurs Catalyst