{"id":3566,"date":"2021-04-08T15:49:54","date_gmt":"2021-04-08T13:49:54","guid":{"rendered":"https:\/\/blog.alwaysdata.com\/?p=3566"},"modified":"2021-04-08T15:49:56","modified_gmt":"2021-04-08T13:49:56","slug":"services-kill-the-daemons","status":"publish","type":"post","link":"https:\/\/blog.alwaysdata.com\/fr\/2021\/04\/08\/services-kill-the-daemons\/","title":{"rendered":"Services&nbsp;: <em>Kill the Daemons<\/em>&nbsp;!"},"content":{"rendered":"\n<p>Nous avons lanc\u00e9 la fonctionnalit\u00e9 <em>Services<\/em>&nbsp;: vous pouvez d\u00e9sormais ex\u00e9cuter des programmes supervis\u00e9s 24\/7 sur votre compte&nbsp;!<\/p>\n\n\n<figure class=\"embed-media__giphy\" style=\"width:65%; padding-bottom:calc(65% * (175 + 12) \/ (250 + 12))\">\n    <video id=\"giphy-${token}\" autoplay loop muted playsinline>\n        <source src=\"https:\/\/media.giphy.com\/media\/h2yOdJzwHaCnS\/giphy.mp4\" type=\"video\/mp4\">\n        <img decoding=\"async\" src=\"https:\/\/media.giphy.com\/media\/h2yOdJzwHaCnS\/giphy.gif\" alt=\" @Giphy\">\n    <\/video>\n<\/figure>\n\n\n\n<p><strong>alwaysdata<\/strong> est une plateforme <em>Cloud<\/em> avanc\u00e9e permettant \u00e0&nbsp;ses utilisateurs d\u2019h\u00e9berger autant de sites et d\u2019applications web qu\u2019ils le souhaitent. La plateforme int\u00e8gre un large panel de fonctionnalit\u00e9s, depuis les langages (PHP, Python, Node, Go, etc.) jusqu\u2019aux fonctionnalit\u00e9s orient\u00e9es <em>DevOps<\/em> (acc\u00e8s SSH, t\u00e2ches planifi\u00e9es, etc.). Toutes ces fonctionnalit\u00e9s sont librement accessibles, et <a href=\"https:\/\/www.alwaysdata.com\/fr\/infrastructure\/stack\/\">sont isol\u00e9es via un m\u00e9canisme de permissions<\/a>&nbsp;: vous ne pouvez pas ex\u00e9cuter un programme avec les privil\u00e8ges <code>root<\/code> car <em>nous<\/em> g\u00e9rons l\u2019ensemble du syst\u00e8me et la stabilit\u00e9 de la plateforme<span class=\"footnote_referrer\"><a role=\"button\" tabindex=\"0\" onclick=\"footnote_moveToReference_3566_1('footnote_plugin_reference_3566_1_1');\" onkeypress=\"footnote_moveToReference_3566_1('footnote_plugin_reference_3566_1_1');\"><sup id=\"footnote_plugin_tooltip_3566_1_1\" class=\"footnote_plugin_tooltip_text\">1)<\/sup><\/a><span id=\"footnote_plugin_tooltip_text_3566_1_1\" class=\"footnote_tooltip\"><\/span><\/span>.<\/p>\n\n\n\n<p>Vous permettre d\u2019ex\u00e9cuter vos propres programmes personnalis\u00e9s dans un mode 24\/7, comme des processus d\u00e9monis\u00e9s, \u00e9tait un besoin important pour beaucoup de nos utilisateurs. Les&nbsp;voici&nbsp;!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"au-service-de-sa-majest\u00e9\">Au service de Sa Majest\u00e9<\/h2>\n\n\n\n<p>Nous avons donc introduit les <em>Services<\/em>, disponibles pour tous, utilisateurs du <a href=\"https:\/\/www.alwaysdata.com\/fr\/tarifs\/\">Cloud<\/a> comme de <a href=\"https:\/\/www.alwaysdata.com\/fr\/catalyst\/\">Catalyst<\/a>. Il s\u2019agit de programmes personnalis\u00e9s fonctionnant en mode d\u00e9tach\u00e9, c\u2019est-\u00e0-dire non interactif&nbsp;: sans aucune action de l\u2019utilisateur. La plate-forme int\u00e8gre d\u00e9j\u00e0 tout ce dont vous pouvez avoir besoin comme d\u00e9pendances pour ces programmes (interpr\u00e9teurs, biblioth\u00e8ques, etc.).<\/p>\n\n\n\n<p>Le grand avantage des services tient dans leur <em>monitoring<\/em>&nbsp;: parce qu\u2019ils sont con\u00e7us pour \u00eatre ex\u00e9cut\u00e9s en tant que processus en arri\u00e8re-plan, le syst\u00e8me surveille l\u2019ex\u00e9cution et le red\u00e9marre d\u00e8s qu\u2019il s\u2019arr\u00eate, garantissant que votre application est toujours op\u00e9rationnelle et disponible, sans aucune action de votre part. Ces processus diff\u00e8rent des processus <em>Sites<\/em> qui sont stopp\u00e9s par la plate-forme lorsqu\u2019ils ne sont plus sollicit\u00e9s, et sont relanc\u00e9s \u00e0&nbsp;la demande par notre <em>proxy<\/em>. Les <em>Services<\/em>, eux, sont disponibles en continu, et monitor\u00e9s dans ce&nbsp;sens.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"d\u00e9claration-dun-service\">D\u00e9claration d\u2019un service<\/h3>\n\n\n\n<p>Notre documentation a&nbsp;\u00e9t\u00e9 mise \u00e0&nbsp;jour pour <a href=\"https:\/\/help.alwaysdata.com\/fr\/services\/\">ajouter la section <em>Services<\/em><\/a> et vous aider \u00e0&nbsp;les d\u00e9clarer dans votre interface d\u2019administration.<\/p>\n\n\n\n<p>Comme pour les <a href=\"https:\/\/blog.alwaysdata.com\/fr\/2018\/12\/04\/decouvrez-notre-interface-de-planification-tout-beau-tout-chaud\/\">T\u00e2ches planifi\u00e9es<\/a>, vous devez indiquer la commande \u00e0&nbsp;ex\u00e9cuter. C\u2019est le seul param\u00e8tre obligatoire pour qu\u2019un nouveau <em>Service<\/em> soit pr\u00eat. La commande peut ou non \u00eatre d\u00e9j\u00e0 pr\u00e9install\u00e9e sur la plate-forme. Vous \u00eates libre d\u2019ajouter vos propres programmes<span class=\"footnote_referrer\"><a role=\"button\" tabindex=\"0\" onclick=\"footnote_moveToReference_3566_1('footnote_plugin_reference_3566_1_2');\" onkeypress=\"footnote_moveToReference_3566_1('footnote_plugin_reference_3566_1_2');\"><sup id=\"footnote_plugin_tooltip_3566_1_2\" class=\"footnote_plugin_tooltip_text\">2)<\/sup><\/a><span id=\"footnote_plugin_tooltip_text_3566_1_2\" class=\"footnote_tooltip\"><\/span><\/span> dans l\u2019espace utilisateur de votre compte.<\/p>\n\n\n\n<p>Par d\u00e9faut, votre <em>Service<\/em> s\u2019ex\u00e9cute dans un processus isol\u00e9<span class=\"footnote_referrer\"><a role=\"button\" tabindex=\"0\" onclick=\"footnote_moveToReference_3566_1('footnote_plugin_reference_3566_1_3');\" onkeypress=\"footnote_moveToReference_3566_1('footnote_plugin_reference_3566_1_3');\"><sup id=\"footnote_plugin_tooltip_3566_1_3\" class=\"footnote_plugin_tooltip_text\">3)<\/sup><\/a><span id=\"footnote_plugin_tooltip_text_3566_1_3\" class=\"footnote_tooltip\"><\/span><\/span> et n\u2019est pas accessible de l\u2019ext\u00e9rieur, sauf si vous l\u2019exposez sur un port donn\u00e9<span class=\"footnote_referrer\"><a role=\"button\" tabindex=\"0\" onclick=\"footnote_moveToReference_3566_1('footnote_plugin_reference_3566_1_4');\" onkeypress=\"footnote_moveToReference_3566_1('footnote_plugin_reference_3566_1_4');\"><sup id=\"footnote_plugin_tooltip_3566_1_4\" class=\"footnote_plugin_tooltip_text\">4)<\/sup><\/a><span id=\"footnote_plugin_tooltip_text_3566_1_4\" class=\"footnote_tooltip\"><\/span><\/span>. Vous pouvez cependant souhaiter pouvoir y&nbsp;acc\u00e9der dans certains cas. Pour ce faire, configurez votre processus de <em>Service<\/em> pour \u00e9couter sur l\u2019adresse IPv6 <code>::<\/code> et choisissez un port disponible dans la plage <code>8300-8499<\/code>. Gr\u00e2ce \u00e0&nbsp;notre architecture de conteneurisation, l\u2019ensemble de ces ports est r\u00e9serv\u00e9 \u00e0&nbsp;votre utilisateur uniquement, m\u00eame pour la plateforme <em>Cloud<\/em>. Attention cependant&nbsp;: votre processus sera alors expos\u00e9 publiquement, charge \u00e0&nbsp;vous d\u2019activer l\u2019authentification sur le service si n\u00e9cessaire.<\/p>\n\n\n<figure class=\"embed-media__giphy\" style=\"width:65%; padding-bottom:calc(65% * (369 + 12) \/ (501 + 12))\">\n    <video id=\"giphy-${token}\" autoplay loop muted playsinline>\n        <source src=\"https:\/\/media.giphy.com\/media\/X6xGsH0lzyBVgc3lhp\/giphy.mp4\" type=\"video\/mp4\">\n        <img decoding=\"async\" src=\"https:\/\/media.giphy.com\/media\/X6xGsH0lzyBVgc3lhp\/giphy.gif\" alt=\" @Giphy\">\n    <\/video>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"cas-avanc\u00e9--monitoring-personnalis\u00e9e\">Cas avanc\u00e9&nbsp;: <em>monitoring<\/em> personnalis\u00e9<\/h3>\n\n\n\n<p>Vous pouvez avoir parfois besoin de red\u00e9marrer l\u2019ex\u00e9cution de votre <em>Service<\/em> sur des crit\u00e8res sp\u00e9cifiques plut\u00f4t que selon l\u2019\u00e9tat du processus.<\/p>\n\n\n\n<p>Vous pouvez donc sp\u00e9cifier une <em>Commande de surveillance<\/em> personnalis\u00e9e. Le processus de supervision du <em>Service<\/em> l\u2019utilisera pour d\u00e9terminer si le processus associ\u00e9 doit \u00eatre red\u00e9marr\u00e9 ou non en fonction de son code de retour.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ex-utilisez-votre-propre-broker\">Lib\u00e9rez le Kraken&nbsp;!<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Utilisez votre propre gestionnaire de queue de messages<\/h3>\n\n\n\n<p>Dans les cas d\u2019usage les plus populaires se trouve l\u2019utilisation des gestionnaires de queues de messages (voire des <em>brokers<\/em> associ\u00e9s). Pour les utilisateurs de <a href=\"https:\/\/www.alwaysdata.com\/fr\/catalyst\/\">Catalyst<\/a>, ces outils pouvaient d\u00e9j\u00e0 fonctionner, leurs comptes \u00e9tant dans des environnements d\u00e9di\u00e9s.<\/p>\n\n\n\n<p>En revanche, les utilisateurs <em>Cloud<\/em> ne pouvaient y&nbsp;avoir acc\u00e8s&nbsp;: comme ils partagent des ressources mat\u00e9rielles, nous ne disposions pas de l\u2019infrastructure permettant d\u2019ex\u00e9cuter facilement des processus 24\/7, notamment pour des raisons de s\u00e9curit\u00e9 d\u2019acc\u00e8s. D\u00e9sormais, gr\u00e2ce aux <em>Services<\/em>, chaque utilisateur peut ex\u00e9cuter sa propre instance et y&nbsp;acc\u00e9der, y&nbsp;compris sur un port d\u00e9di\u00e9 appartenant uniquement \u00e0&nbsp;l\u2019utilisateur en cours d\u2019ex\u00e9cution&nbsp;! Simple et efficace.<\/p>\n\n\n\n<p>Parce que notre plateforme <em>Cloud<\/em> est particuli\u00e8rement appr\u00e9ci\u00e9e des Pythonistas, vous serez heureux d\u2019apprendre que l\u2019ex\u00e9cution d\u2019un processus <a href=\"https:\/\/docs.celeryproject.org\/en\/stable\/index.html\">Celery<\/a> (associ\u00e9 \u00e0&nbsp;<a href=\"https:\/\/www.rabbitmq.com\/\">RabbitMQ<\/a>, d\u00e9j\u00e0 disponible, voire \u00e0&nbsp;une instance <a href=\"https:\/\/redis.io\/\">Redis<\/a> ex\u00e9cut\u00e9 comme <em>Service<\/em> \u00e9galement) est devenue aussi simple que de d\u00e9clarer un <em>Site<\/em>&nbsp;! Et comme Celery est un gestionnaire de t\u00e2ches largement utilis\u00e9, vous n\u2019\u00eates pas seulement limit\u00e9 \u00e0&nbsp;Python. Vous pouvez l\u2019utiliser avec vos applications <a href=\"https:\/\/www.npmjs.com\/package\/node-celery\">Node.js<\/a>, <a href=\"https:\/\/github.com\/skrat\/celerb\">Ruby<\/a>, ou m\u00eame <a href=\"https:\/\/github.com\/gjedeer\/celery-php\">PHP<\/a> les plus populaires&nbsp;!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ex-am\u00e9liorez-vos-perfs\">Am\u00e9liorez vos&nbsp;perfs<\/h3>\n\n\n\n<p>Les applications Web peuvent \u00eatre tr\u00e8s consommatrices lorsque vous devez calculer des r\u00e9ponses complexes \u00e0&nbsp;certaines requ\u00eates, comme avec des APIs ou les solutions de <em>Cloud<\/em> personnel.<\/p>\n\n\n\n<p>Des solutions de mise en cache sont souvent utilis\u00e9es pour acc\u00e9l\u00e9rer ces applications. Certaines \u00e9taient d\u00e9j\u00e0 disponibles, comme du <em>Memory Caching<\/em> utilisant <a href=\"https:\/\/www.php.net\/manual\/fr\/book.apcu.php\">APCu<\/a>. Pour des strat\u00e9gies plus avanc\u00e9es, vous pouvez vous appuyer sur des syst\u00e8mes de cache serveur. <a href=\"https:\/\/www.memcached.org\/\">Memcached<\/a> est l\u2019un d\u2019entre eux, et une solution largement adopt\u00e9e, disponible pour tous les langages web.<\/p>\n\n\n\n<p>Pour faire tourner votre propre instance de Memcached, il suffit de l\u2019ex\u00e9cuter en tant que <em>Service<\/em> en le rattachant \u00e0&nbsp;un port disponible dans la plage <code>8300-8499<\/code>. Votre instance Memcached priv\u00e9e sera disponible pour vos applications web \u00e0&nbsp;l\u2019adresse <code>service-[account].alwaysdata.net:[port]<\/code> !<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Communiquez avec votre \u00e9quipe<\/h3>\n\n\n\n<p>Besoin d\u2019auto-h\u00e9berger une solution pour rester en contact avec votre \u00e9quipe ou vos proches&nbsp;? <a href=\"https:\/\/mattermost.com\/\">Mattermost<\/a> est une alternative libre, open-source et gratuite, aux outils comme Slack ou Discord. En tant que syst\u00e8me de messagerie, un serveur Mattermost n\u00e9cessite d\u2019\u00eatre continuellement accessible.<\/p>\n\n\n\n<p>Avec les <em>Services<\/em>, vous pouvez d\u00e9sormais<a href=\"https:\/\/help.alwaysdata.com\/fr\/guides\/mattermost\/\"> h\u00e9berger facilement une instance Mattermost<\/a> et qui sera monitor\u00e9e par la plate-forme, assurant ainsi sa disponibilit\u00e9 24\/7&nbsp;!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ex-observabilit\u00e9-pour-toutes-vos-applications\">Observabilit\u00e9 pour toutes vos applications<\/h3>\n\n\n\n<p>L\u2019observabilit\u00e9 est la cl\u00e9 de vo\u00fbte des strat\u00e9gies d\u2019am\u00e9lioration des performances. Les applications web ne font pas exception. La solution la plus r\u00e9put\u00e9e pour mesurer, d\u00e9tecter et pr\u00e9venir les interruptions de services est <a href=\"https:\/\/www.datadoghq.com\/\">Datadog<\/a>, parfaitement taill\u00e9e pour l\u2019\u00e9cosyst\u00e8me Web.<\/p>\n\n\n\n<p>L\u2019ex\u00e9cution de l\u2019agent Datadog sur votre serveur peut n\u00e9cessiter des privil\u00e8ges avanc\u00e9s que vous ne poss\u00e9dez pas sur le <em>Cloud<\/em> alwaysdata. Maintenant, vous pouvez l\u2019ex\u00e9cuter simplement en suivant la documentation <a href=\"https:\/\/docs.datadoghq.com\/agent\/basic_agent_usage\/source\/?tab=agentv6v7\">Datadog Basic Agent Usage<\/a> sans besoin de privil\u00e8ges avanc\u00e9s. Ex\u00e9cutez le processus de d\u00e9marrage de l\u2019agent en tant que <em>Service<\/em>, et commencez \u00e0&nbsp;collecter des m\u00e9triques sur vos applications&nbsp;!<\/p>\n\n\n<figure class=\"embed-media__giphy\" style=\"width:65%; padding-bottom:calc(65% * (252 + 12) \/ (448 + 12))\">\n    <video id=\"giphy-${token}\" autoplay loop muted playsinline>\n        <source src=\"https:\/\/media.giphy.com\/media\/A9grgCQ0Dm012\/giphy.mp4\" type=\"video\/mp4\">\n        <img decoding=\"async\" src=\"https:\/\/media.giphy.com\/media\/A9grgCQ0Dm012\/giphy.gif\" alt=\" @Giphy\">\n    <\/video>\n<\/figure>\n\n\n\n<p>Les exemples ci-dessus ne sont qu\u2019une petite partie des possibilit\u00e9s infinies offertes par les <em>Services<\/em>&nbsp;! Vous pouvez aussi utiliser un <a href=\"https:\/\/wiki.znc.in\/ZNC\"><em>bouncer<\/em> IRC comme ZNC<\/a>, des <a href=\"https:\/\/core.telegram.org\/bots\">bots de messagerie comme Telegram BotFather<\/a>, ou un serveur X&nbsp;virtuel comme <em>xvfb<\/em> pour interagir avec des solutions d\u00e9pendant du rendu graphique comme <a href=\"https:\/\/docs.qgis.org\/3.16\/en\/docs\/server_manual\/getting_started.html#xvfb\">QGIS Server<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator\">\n\n\n\n<p>Ouvrez un <a href=\"https:\/\/www.alwaysdata.com\/fr\/inscription\/\">compte gratuit<\/a> sur la plateforme et commencez d\u00e8s maintenant \u00e0&nbsp;ex\u00e9cuter vos propres <em>Services<\/em> priv\u00e9s&nbsp;!<\/p>\n\n\n\n<p>Nous sommes \u00e9galement curieux de savoir ce que vous souhaitez ex\u00e9cuter dans ce mode. Faites-le nous savoir dans les commentaires&nbsp;!<\/p>\n<div class=\"speaker-mute footnotes_reference_container\"> <div class=\"footnote_container_prepare\"><p><span role=\"button\" tabindex=\"0\" class=\"footnote_reference_container_label pointer\" onclick=\"footnote_expand_collapse_reference_container_3566_1();\">Notes<\/span><span role=\"button\" tabindex=\"0\" class=\"footnote_reference_container_collapse_button\" style=\"display: none;\" onclick=\"footnote_expand_collapse_reference_container_3566_1();\">[<a id=\"footnote_reference_container_collapse_button_3566_1\">+<\/a>]<\/span><\/p><\/div> <div id=\"footnote_references_container_3566_1\" style><table class=\"footnotes_table footnote-reference-container\"><caption class=\"accessibility\">Notes<\/caption> <tbody> \n\n<tr class=\"footnotes_plugin_reference_row\"> <th scope=\"row\" class=\"footnote_plugin_index_combi pointer\" onclick=\"footnote_moveToAnchor_3566_1('footnote_plugin_tooltip_3566_1_1');\"><a id=\"footnote_plugin_reference_3566_1_1\" class=\"footnote_backlink\"><span class=\"footnote_index_arrow\">\u2191<\/span>1<\/a><\/th> <td class=\"footnote_plugin_text\">Jetez un coup d\u2019\u0153il \u00e0&nbsp;<a href=\"https:\/\/blog.alwaysdata.com\/fr\/2018\/03\/05\/saas-paas-iaas-quelles-differences-et-comment-choisir\/\">SaaS, PaaS, IaaS, quelles sont les diff\u00e9rences<\/a> pour plus de d\u00e9tails sur ce&nbsp;sujet.<\/td><\/tr>\n\n<tr class=\"footnotes_plugin_reference_row\"> <th scope=\"row\" class=\"footnote_plugin_index_combi pointer\" onclick=\"footnote_moveToAnchor_3566_1('footnote_plugin_tooltip_3566_1_2');\"><a id=\"footnote_plugin_reference_3566_1_2\" class=\"footnote_backlink\"><span class=\"footnote_index_arrow\">\u2191<\/span>2<\/a><\/th> <td class=\"footnote_plugin_text\">Compatible <em>x86_64<\/em>.<\/td><\/tr>\n\n<tr class=\"footnotes_plugin_reference_row\"> <th scope=\"row\" class=\"footnote_plugin_index_combi pointer\" onclick=\"footnote_moveToAnchor_3566_1('footnote_plugin_tooltip_3566_1_3');\"><a id=\"footnote_plugin_reference_3566_1_3\" class=\"footnote_backlink\"><span class=\"footnote_index_arrow\">\u2191<\/span>3<\/a><\/th> <td class=\"footnote_plugin_text\">Comme l\u2019ensemble des processus ex\u00e9cut\u00e9s par votre utilisateur<\/td><\/tr>\n\n<tr class=\"footnotes_plugin_reference_row\"> <th scope=\"row\" class=\"footnote_plugin_index_combi pointer\" onclick=\"footnote_moveToAnchor_3566_1('footnote_plugin_tooltip_3566_1_4');\"><a id=\"footnote_plugin_reference_3566_1_4\" class=\"footnote_backlink\"><span class=\"footnote_index_arrow\">\u2191<\/span>4<\/a><\/th> <td class=\"footnote_plugin_text\">Dans le cas des utilisateurs <em>Catalyst<\/em><\/td><\/tr>\n\n <\/tbody> <\/table> <\/div><\/div><script type=\"text\/javascript\"> function footnote_expand_reference_container_3566_1() { jQuery('#footnote_references_container_3566_1').show(); jQuery('#footnote_reference_container_collapse_button_3566_1').text('\u2212'); } function footnote_collapse_reference_container_3566_1() { jQuery('#footnote_references_container_3566_1').hide(); jQuery('#footnote_reference_container_collapse_button_3566_1').text('+'); } function footnote_expand_collapse_reference_container_3566_1() { if (jQuery('#footnote_references_container_3566_1').is(':hidden')) { footnote_expand_reference_container_3566_1(); } else { footnote_collapse_reference_container_3566_1(); } } function footnote_moveToReference_3566_1(p_str_TargetID) { footnote_expand_reference_container_3566_1(); var l_obj_Target = jQuery('#' + p_str_TargetID); if (l_obj_Target.length) { jQuery( 'html, body' ).delay( 0 ); jQuery('html, body').animate({ scrollTop: l_obj_Target.offset().top - window.innerHeight * 0.2 }, 380); } } function footnote_moveToAnchor_3566_1(p_str_TargetID) { footnote_expand_reference_container_3566_1(); var l_obj_Target = jQuery('#' + p_str_TargetID); if (l_obj_Target.length) { jQuery( 'html, body' ).delay( 0 ); jQuery('html, body').animate({ scrollTop: l_obj_Target.offset().top - window.innerHeight * 0.2 }, 380); } }<\/script>","protected":false},"excerpt":{"rendered":"<p>Les Webapps n\u2019utilisent pas toujours qu\u2019un serveur Web&nbsp;: ex\u00e9cutez vos jobs en mode \u00ab&nbsp;headless&nbsp;\u00bb et am\u00e9liorez les performances de vos services Web d\u00e8s maintenant&nbsp;!<\/p>\n","protected":false},"author":12,"featured_media":3562,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[230,230],"tags":[269,227,227,268],"class_list":{"0":"post-3566","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-uncategorized-fr","9":"tag-catalyst","10":"tag-cloud-fr","12":"tag-services"},"acf":[],"_links":{"self":[{"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/posts\/3566","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/comments?post=3566"}],"version-history":[{"count":0,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/posts\/3566\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/media\/3562"}],"wp:attachment":[{"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/media?parent=3566"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/categories?post=3566"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/tags?post=3566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}