Written by

Nous avons lan­cé la fonc­tion­na­li­té Services : vous pou­vez désor­mais exé­cu­ter des pro­grammes super­vi­sés 24/7 sur votre compte !

always­da­ta est une pla­te­forme Cloud avan­cée per­met­tant à ses uti­li­sa­teurs d’hé­ber­ger autant de sites et d’ap­pli­ca­tions web qu’ils le sou­haitent. La pla­te­forme intègre un large panel de fonc­tion­na­li­tés, depuis les lan­gages (PHP, Python, Node, Go, etc.) jus­qu’aux fonc­tion­na­li­tés orien­tées DevOps (accès SSH, tâches pla­ni­fiées, etc.). Toutes ces fonc­tion­na­li­tés sont libre­ment acces­sibles, et sont iso­lées via un méca­nisme de per­mis­sions : vous ne pou­vez pas exé­cu­ter un pro­gramme avec les pri­vi­lèges root car nous gérons l’en­semble du sys­tème et la sta­bi­li­té de la pla­te­forme1).

Vous per­mettre d’exé­cu­ter vos propres pro­grammes per­son­na­li­sés dans un mode 24/7, comme des pro­ces­sus démo­ni­sés, était un besoin impor­tant pour beau­coup de nos uti­li­sa­teurs. Les voici !

Au service de Sa Majesté

Nous avons donc intro­duit les Services, dis­po­nibles pour tous, uti­li­sa­teurs du Cloud comme de Catalyst. Il s’a­git de pro­grammes per­son­na­li­sés fonc­tion­nant en mode déta­ché, c’est-à-dire non inter­ac­tif : sans aucune action de l’u­ti­li­sa­teur. La plate-forme intègre déjà tout ce dont vous pou­vez avoir besoin comme dépen­dances pour ces pro­grammes (inter­pré­teurs, biblio­thèques, etc.).

Le grand avan­tage des ser­vices tient dans leur moni­to­ring : parce qu’ils sont conçus pour être exé­cu­tés en tant que pro­ces­sus en arrière-plan, le sys­tème sur­veille l’exé­cu­tion et le redé­marre dès qu’il s’ar­rête, garan­tis­sant que votre appli­ca­tion est tou­jours opé­ra­tion­nelle et dis­po­nible, sans aucune action de votre part. Ces pro­ces­sus dif­fèrent des pro­ces­sus Sites qui sont stop­pés par la plate-forme lors­qu’ils ne sont plus sol­li­ci­tés, et sont relan­cés à la demande par notre proxy. Les Services, eux, sont dis­po­nibles en conti­nu, et moni­to­rés dans ce sens.

Déclaration d’un service

Notre docu­men­ta­tion a été mise à jour pour ajou­ter la sec­tion Services et vous aider à les décla­rer dans votre inter­face d’administration.

Comme pour les Tâches pla­ni­fiées, vous devez indi­quer la com­mande à exé­cu­ter. C’est le seul para­mètre obli­ga­toire pour qu’un nou­veau Service soit prêt. La com­mande peut ou non être déjà pré­ins­tal­lée sur la plate-forme. Vous êtes libre d’a­jou­ter vos propres pro­grammes2) dans l’es­pace uti­li­sa­teur de votre compte.

Par défaut, votre Service s’exé­cute dans un pro­ces­sus iso­lé3) et n’est pas acces­sible de l’ex­té­rieur, sauf si vous l’ex­po­sez sur un port don­né4). Vous pou­vez cepen­dant sou­hai­ter pou­voir y accé­der dans cer­tains cas. Pour ce faire, confi­gu­rez votre pro­ces­sus de Service pour écou­ter sur l’a­dresse IPv6 :: et choi­sis­sez un port dis­po­nible dans la plage 8300-8499. Grâce à notre archi­tec­ture de conte­neu­ri­sa­tion, l’en­semble de ces ports est réser­vé à votre uti­li­sa­teur uni­que­ment, même pour la pla­te­forme Cloud. Attention cepen­dant : votre pro­ces­sus sera alors expo­sé publi­que­ment, charge à vous d’ac­ti­ver l’au­then­ti­fi­ca­tion sur le ser­vice si nécessaire.

Cas avancé : monitoring personnalisé

Vous pou­vez avoir par­fois besoin de redé­mar­rer l’exé­cu­tion de votre Service sur des cri­tères spé­ci­fiques plu­tôt que selon l’é­tat du processus.

Vous pou­vez donc spé­ci­fier une Commande de sur­veillance per­son­na­li­sée. Le pro­ces­sus de super­vi­sion du Service l’u­ti­li­se­ra pour déter­mi­ner si le pro­ces­sus asso­cié doit être redé­mar­ré ou non en fonc­tion de son code de retour.

Libérez le Kraken !

Utilisez votre propre gestionnaire de queue de messages

Dans les cas d’u­sage les plus popu­laires se trouve l’u­ti­li­sa­tion des ges­tion­naires de queues de mes­sages (voire des bro­kers asso­ciés). Pour les uti­li­sa­teurs de Catalyst, ces outils pou­vaient déjà fonc­tion­ner, leurs comptes étant dans des envi­ron­ne­ments dédiés.

En revanche, les uti­li­sa­teurs Cloud ne pou­vaient y avoir accès : comme ils par­tagent des res­sources maté­rielles, nous ne dis­po­sions pas de l’in­fra­struc­ture per­met­tant d’exé­cu­ter faci­le­ment des pro­ces­sus 24/7, notam­ment pour des rai­sons de sécu­ri­té d’ac­cès. Désormais, grâce aux Services, chaque uti­li­sa­teur peut exé­cu­ter sa propre ins­tance et y accé­der, y com­pris sur un port dédié appar­te­nant uni­que­ment à l’u­ti­li­sa­teur en cours d’exé­cu­tion ! Simple et efficace.

Parce que notre pla­te­forme Cloud est par­ti­cu­liè­re­ment appré­ciée des Pythonistas, vous serez heu­reux d’ap­prendre que l’exé­cu­tion d’un pro­ces­sus Celery (asso­cié à RabbitMQ, déjà dis­po­nible, voire à une ins­tance Redis exé­cu­té comme Service éga­le­ment) est deve­nue aus­si simple que de décla­rer un Site ! Et comme Celery est un ges­tion­naire de tâches lar­ge­ment uti­li­sé, vous n’êtes pas seule­ment limi­té à Python. Vous pou­vez l’u­ti­li­ser avec vos appli­ca­tions Node.js, Ruby, ou même PHP les plus populaires !

Améliorez vos perfs

Les appli­ca­tions Web peuvent être très consom­ma­trices lorsque vous devez cal­cu­ler des réponses com­plexes à cer­taines requêtes, comme avec des APIs ou les solu­tions de Cloud personnel.

Des solu­tions de mise en cache sont sou­vent uti­li­sées pour accé­lé­rer ces appli­ca­tions. Certaines étaient déjà dis­po­nibles, comme du Memory Caching uti­li­sant APCu. Pour des stra­té­gies plus avan­cées, vous pou­vez vous appuyer sur des sys­tèmes de cache ser­veur. Memcached est l’un d’entre eux, et une solu­tion lar­ge­ment adop­tée, dis­po­nible pour tous les lan­gages web.

Pour faire tour­ner votre propre ins­tance de Memcached, il suf­fit de l’exé­cu­ter en tant que Service en le rat­ta­chant à un port dis­po­nible dans la plage 8300-8499. Votre ins­tance Memcached pri­vée sera dis­po­nible pour vos appli­ca­tions web à l’a­dresse service-[account].alwaysdata.net:[port] !

Communiquez avec votre équipe

Besoin d’au­to-héber­ger une solu­tion pour res­ter en contact avec votre équipe ou vos proches ? Mattermost est une alter­na­tive libre, open-source et gra­tuite, aux outils comme Slack ou Discord. En tant que sys­tème de mes­sa­ge­rie, un ser­veur Mattermost néces­site d’être conti­nuel­le­ment accessible.

Avec les Services, vous pou­vez désor­mais héber­ger faci­le­ment une ins­tance Mattermost et qui sera moni­to­rée par la plate-forme, assu­rant ain­si sa dis­po­ni­bi­li­té 24/7 !

Observabilité pour toutes vos applications

L’observabilité est la clé de voûte des stra­té­gies d’a­mé­lio­ra­tion des per­for­mances. Les appli­ca­tions web ne font pas excep­tion. La solu­tion la plus répu­tée pour mesu­rer, détec­ter et pré­ve­nir les inter­rup­tions de ser­vices est Datadog, par­fai­te­ment taillée pour l’é­co­sys­tème Web.

L’exécution de l’agent Datadog sur votre ser­veur peut néces­si­ter des pri­vi­lèges avan­cés que vous ne pos­sé­dez pas sur le Cloud always­da­ta. Maintenant, vous pou­vez l’exé­cu­ter sim­ple­ment en sui­vant la docu­men­ta­tion Datadog Basic Agent Usage sans besoin de pri­vi­lèges avan­cés. Exécutez le pro­ces­sus de démar­rage de l’agent en tant que Service, et com­men­cez à col­lec­ter des métriques sur vos applications !

Les exemples ci-des­sus ne sont qu’une petite par­tie des pos­si­bi­li­tés infi­nies offertes par les Services ! Vous pou­vez aus­si uti­li­ser un boun­cer IRC comme ZNC, des bots de mes­sa­ge­rie comme Telegram BotFather, ou un ser­veur X vir­tuel comme xvfb pour inter­agir avec des solu­tions dépen­dant du ren­du gra­phique comme QGIS Server.


Ouvrez un compte gra­tuit sur la pla­te­forme et com­men­cez dès main­te­nant à exé­cu­ter vos propres Services privés !

Nous sommes éga­le­ment curieux de savoir ce que vous sou­hai­tez exé­cu­ter dans ce mode. Faites-le nous savoir dans les commentaires !

Notes

Notes
1 Jetez un coup d’œil à SaaS, PaaS, IaaS, quelles sont les dif­fé­rences pour plus de détails sur ce sujet.
2 Compatible x86_64.
3 Comme l’en­semble des pro­ces­sus exé­cu­tés par votre utilisateur
4 Dans le cas des uti­li­sa­teurs Catalyst