{"id":8488,"date":"2016-06-23T11:27:31","date_gmt":"2016-06-23T11:27:31","guid":{"rendered":"https:\/\/dev.railscarma.com\/splitting-monolithic-rails-application-to-microservices\/"},"modified":"2024-01-10T13:26:50","modified_gmt":"2024-01-10T13:26:50","slug":"separation-de-lapplication-de-rails-monolithiques-en-microservices","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/separation-de-lapplication-de-rails-monolithiques-en-microservices\/","title":{"rendered":"S\u00e9paration de l&#039;application Rails monolithiques en microservices"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"8488\" class=\"elementor elementor-8488\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3507359 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3507359\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6457faa4\" data-id=\"6457faa4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-738def73 elementor-widget elementor-widget-text-editor\" data-id=\"738def73\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u00c0 mesure qu&#039;une entreprise grandit, elle a besoin de plus de fonctionnalit\u00e9s et vous ne pouvez donc pas vous emp\u00eacher d&#039;ajouter de nouveaux mod\u00e8les\/contr\u00f4leurs \u00e0 l&#039;application Rails existante et celle-ci devient parfois un monolithe. Si vous \u00eates confront\u00e9 \u00e0 une application monolithique devenue impossible \u00e0 maintenir et difficile \u00e0 d\u00e9ployer, vous devez conna\u00eetre quelques moyens de la g\u00e9rer. Si votre \u00e9quipe doit parcourir des milliers de lignes pour comprendre le projet et apporter des modifications, il est temps de les diviser.<\/p>\n<p><strong>Quand diviser la demande<\/strong><\/p>\n<ul>\n<li>Lorsque vos tests durent plus de 20 minutes.<\/li>\n<li>Mod\u00e8les port\u00e9s \u00e0 plusieurs centaines ou milliers.<\/li>\n<li>Fonctionnalit\u00e9 ind\u00e9pendante.<\/li>\n<li>Lorsque les d\u00e9veloppeurs ne peuvent pas travailler de mani\u00e8re ind\u00e9pendante pour d\u00e9velopper\/d\u00e9ployer leurs propres modules.<\/li>\n<\/ul>\n<p><strong>Diff\u00e9rentes fa\u00e7ons de diviser une application monolithique<\/strong><\/p>\n<ul>\n<li>Utiliser des microservices.<\/li>\n<li>Utiliser des technologies \u00ab plus rapides \u00bb.<\/li>\n<li>Ajoutez un tas de serveurs.<\/li>\n<\/ul>\n<p><strong>Qu&#039;est-ce qu&#039;un microservice&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/strong>Les microservices constituent un moyen strat\u00e9gique de d\u00e9composer un grand projet en \u00e9l\u00e9ments plus petits et plus faciles \u00e0 g\u00e9rer. Un microservice est une fonctionnalit\u00e9 d&#039;application remani\u00e9e dans sa propre base de code, communiquant avec d&#039;autres microservices via un protocole standard. Pour ce faire, divisez d&#039;abord les besoins de votre entreprise en groupes connexes, tels que la logique de gestion des utilisateurs, la logique publicitaire et une interface utilisateur Web.<\/p>\n<p><strong>Pourquoi un microservice<\/strong><br>\nLa premi\u00e8re force qui a conduit \u00e0 l\u2019essor des microservices a \u00e9t\u00e9 une r\u00e9action contre l\u2019architecture monolithique normale. Alors qu&#039;une application monolithique constitue un seul grand programme dot\u00e9 de nombreuses responsabilit\u00e9s, les applications bas\u00e9es sur des microservices sont compos\u00e9es de programmes plus petits, chacun ayant une seule responsabilit\u00e9. Cela permet aux \u00e9quipes de d\u00e9veloppeurs de travailler ind\u00e9pendamment sur diff\u00e9rents services. Le d\u00e9couplage inh\u00e9rent encourage \u00e9galement des programmes plus petits et plus simples, plus faciles \u00e0 comprendre, afin que les nouveaux d\u00e9veloppeurs puissent commencer \u00e0 contribuer plus rapidement. Enfin, comme aucun programme ne repr\u00e9sente \u00e0 lui seul l\u2019ensemble de l\u2019application, les services peuvent changer de direction sans co\u00fbts \u00e9normes. Si une nouvelle technologie plus pertinente pour un service particulier devient disponible, il est possible de r\u00e9\u00e9crire uniquement ce service. De m\u00eame, \u00e9tant donn\u00e9 que les microservices communiquent dans diff\u00e9rents langages, une application peut \u00eatre compos\u00e9e de plusieurs plates-formes diff\u00e9rentes \u2013 Ruby, Java, PHP, Node, Go, etc. sans aucun probl\u00e8me.<\/p>\n<p><strong>Avantages<\/strong><\/p>\n<ul>\n<li>Les modules peuvent \u00eatre r\u00e9utilis\u00e9s.<\/li>\n<li>Le d\u00e9ploiement se d\u00e9roule sans probl\u00e8me, ind\u00e9pendamment de l&#039;ensemble de la grande application.<\/li>\n<li>Facile \u00e0 ajouter des fonctionnalit\u00e9s.<\/li>\n<li>R\u00e9duit le temps de test pour tester un module au lieu de tous.<\/li>\n<li>Les grandes applications ont tendance \u00e0 \u00eatre plus difficiles \u00e0 maintenir que les petites.<\/li>\n<li>Avoir un ensemble de petites applications nous permet de nous concentrer sur le travail sur des pi\u00e8ces isol\u00e9es.<\/li>\n<li>Nous pourrions avoir plus de chances de ne pas casser d&#039;autres parties de l&#039;application.<\/li>\n<li>Fiabilit\u00e9 et tol\u00e9rance aux pannes.<\/li>\n<li>Facile \u00e0 migrer ou \u00e0 mettre \u00e0 niveau.<\/li>\n<li>Diversit\u00e9 technologique.<\/li>\n<li>Si une seule fonction de l&#039;application ne fonctionne pas, l&#039;application enti\u00e8re ne s&#039;arr\u00eate pas.<\/li>\n<li>Permet \u00e0 un nouveau d\u00e9veloppeur de comprendre plus facilement les fonctionnalit\u00e9s d&#039;un service.<\/li>\n<\/ul>\n<p><strong>D\u00e9savantages<\/strong><br>\nBecause everything is now an independent service, you have to handle requests carefully travelling between your modules. There can be a scenario where any of services may not be responding.<br>\nMultiple databases and transaction management can be painful.<br>\nProductivity will be less till the microservice base is set.<\/p>\n<p><strong>Monolithique vs Microservices<\/strong><br>\nLe diagramme ci-dessous montre la diff\u00e9rence entre les applications monolithiques traditionnelles et les microservices en termes de ressources humaines, de temps, de maintenance et de complexit\u00e9 de gestion des applications.<\/p>\n<p><a href=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/image.jpg\"><img decoding=\"async\" class=\"aligncenter wp-image-8490 size-full\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/image.jpg\" alt=\"image\" width=\"510\" height=\"366\"><\/a><\/p>\n<p><strong>Comment configurer des microservices<\/strong><br>\nLa mani\u00e8re strat\u00e9gique de r\u00e9duire l&#039;application monolithique consiste \u00e0 diviser les couches telles que les couches de pr\u00e9sentation, de logique m\u00e9tier et d&#039;acc\u00e8s aux donn\u00e9es. Une application d&#039;entreprise typique se compose d&#039;au moins trois types de composants diff\u00e9rents\u00a0:<\/p>\n<ul>\n<li>Presentation layer \u2013 Components that handle HTTP requests and implement either a (REST) API or an<br>\nHTML-based web UI. In an application that has a sophisticated user interface.<\/li>\n<li>Couche de logique m\u00e9tier \u2013 Composants qui constituent le c\u0153ur de l&#039;application o\u00f9 les r\u00e8gles m\u00e9tier sont impl\u00e9ment\u00e9es.<\/li>\n<li>Couche d&#039;acc\u00e8s aux donn\u00e9es \u2013 Composants ayant acc\u00e8s aux composants d&#039;infrastructure tels que les bases de donn\u00e9es et les courtiers de messages.<\/li>\n<\/ul>\n<p>RailsCarma a mis en \u0153uvre des applications Ruby on Rails d\u00e8s ses d\u00e9buts pour le d\u00e9veloppement, la formation, le d\u00e9ploiement et la contribution \u00e0 la communaut\u00e9 Rails. Gr\u00e2ce \u00e0 une expertise technique fiable et \u00e0 un service client exceptionnel combin\u00e9s pour offrir une exp\u00e9rience agr\u00e9able aux clients, RailsCarma fournit des solutions de bout en bout. <a href=\"https:\/\/www.railscarma.com\/fr\/\" target=\"_blank\" rel=\"noopener noreferrer\">D\u00e9veloppement Ruby on Rails,<\/a>conseil, architecture, gestion et extension aux entreprises du monde entier. <a href=\"\/fr\/contactez-nous\/\">Contactez-nous pour en savoir plus<\/a>.&nbsp;<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-67c83d69 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"67c83d69\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3f364d4b\" data-id=\"3f364d4b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-29906495 elementor-widget elementor-widget-heading\" data-id=\"29906495\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Abonnez-vous pour les derni\u00e8res mises \u00e0 jour<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2142425b elementor-widget elementor-widget-shortcode\" data-id=\"2142425b\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t\t\t<script type=\"text\/javascript\">\n\t\t\t\t\t\tvar gCaptchaSibWidget;\n                        var onloadSibCallbackInvisible = function () {\n\n                            var element = document.getElementsByClassName('sib-default-btn');\n                            var countInvisible = 0;\n                            var indexArray = [];\n                            jQuery('.sib-default-btn').each(function (index, el) {\n                                if ((jQuery(el).attr('id') == \"invisible\")) {\n                                    indexArray[countInvisible] = index;\n                                    countInvisible++\n                                }\n                            });\n\n                            jQuery('.invi-recaptcha').each(function (index, el) {\n                                grecaptcha.render(element[indexArray[index]], {\n                                    'sitekey': jQuery(el).attr('data-sitekey'),\n                                    'callback': sibVerifyCallback,\n                                });\n                            });\n                        };\n\t\t\t\t\t<\/script>\n\t\t\t\t\t                <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=onloadSibCallbackInvisible&render=explicit\" async defer><\/script>\n\t\t\t\t\n\t\t\t<form id=\"sib_signup_form_1\" method=\"post\" class=\"sib_signup_form\" action=\"\">\n\t\t\t\t<div class=\"sib_loader\" style=\"display:none;\"><img\n\t\t\t\t\t\t\tsrc=\"https:\/\/www.railscarma.com\/wp-includes\/images\/spinner.gif\" alt=\"chargeur\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_action\" value=\"subscribe_form_submit\">\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_id\" value=\"1\">\n                <input type=\"hidden\" name=\"sib_form_alert_notice\" value=\"Please fill out this field\">\n                <input type=\"hidden\" name=\"sib_form_invalid_email_notice\" value=\"Your email address is invalid\">\n                <input type=\"hidden\" name=\"sib_security\" value=\"297ab9f1f5\">\n\t\t\t\t<div class=\"sib_signup_box_inside_1\">\n\t\t\t\t\t<div style=\"\/*display:none*\/\" class=\"sib_msg_disp\">\n\t\t\t\t\t<\/div>\n                                            <div id=\"sib_captcha_invisible\" class=\"invi-recaptcha\" data-sitekey=\"6LdikOAaAAAAAJ6SWrrKVQrtw7TQpQAEnv0HS0G3\"><\/div>\n                    \t\t\t\t\t<p class=\"sib-email-area\">\r\n    <label class=\"sib-email-area\"><\/label>\r\n    <input type=\"email\" class=\"sib-email-area\" name=\"email\" required=\"required\" placeholder=\"Adresse e-mail\">\r\n<\/p>\r\n<p class=\"sib-NAME-area\">\r\n    <label class=\"sib-NAME-area\"><\/label>\r\n    <input type=\"text\" class=\"sib-NAME-area\" name=\"NAME\" placeholder=\"Nom\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"S&#039;abonner\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form>\n\t\t\t<style>\n\t\t\t\tform#sib_signup_form_1 p.sib-alert-message {\n    padding: 6px 12px;\n    margin-bottom: 20px;\n    border: 1px solid transparent;\n    border-radius: 4px;\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\nform#sib_signup_form_1 p.sib-alert-message-error {\n    background-color: #f2dede;\n    border-color: #ebccd1;\n    color: #a94442;\n}\nform#sib_signup_form_1 p.sib-alert-message-success {\n    background-color: #dff0d8;\n    border-color: #d6e9c6;\n    color: #3c763d;\n}\nform#sib_signup_form_1 p.sib-alert-message-warning {\n    background-color: #fcf8e3;\n    border-color: #faebcc;\n    color: #8a6d3b;\n}\n\t\t\t<\/style>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">Articles Similaires<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"joyau kaminari\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n        Gemme de Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"pourquoi embaucher des d\u00e9veloppeurs Ruby on Rails en 2022\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n        Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"R\u00e9cup\u00e9ration de donn\u00e9es dans Rails en traitant CSV\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/grattage-de-donnees-dans-les-rails-en-traitant-csv\/?related_post_from=31591\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV-768x288.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"R\u00e9cup\u00e9ration de donn\u00e9es dans Rails en traitant CSV\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/grattage-de-donnees-dans-les-rails-en-traitant-csv\/?related_post_from=31591\">\r\n        R\u00e9cup\u00e9ration de donn\u00e9es dans Rails en traitant CSV  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Passer des appels vocaux via les applications Web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/passer-des-appels-vocaux-via-les-applications-web-ruby-on-rails\/?related_post_from=31309\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS-768x288.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Passer des appels vocaux via les applications Web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/passer-des-appels-vocaux-via-les-applications-web-ruby-on-rails\/?related_post_from=31309\">\r\n        Passer des appels vocaux via les applications Web Ruby on Rails  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>Au fur et \u00e0 mesure qu'une entreprise se d\u00e9veloppe, elle a besoin de plus de fonctionnalit\u00e9s et vous ne pouvez donc pas vous emp\u00eacher d'ajouter de nouveaux mod\u00e8les\/contr\u00f4leurs \u00e0 l'application Rails existante, qui devient alors parfois un monolithe. Si vous \u00eates confront\u00e9 \u00e0 une application monolithique qui est devenue impossible \u00e0 maintenir et difficile \u00e0 d\u00e9ployer, vous devez conna\u00eetre les moyens de la g\u00e9rer. Si votre ...<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/third-party-api-integration-solutions-in-ruby-on-rails\/\"> <span class=\"screen-reader-text\">Solutions d'int\u00e9gration d'API tierces en Ruby on Rails<\/span> Lire la suite \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":31897,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[492,676,389,379,427,486,383,677],"class_list":["post-8488","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles","tag-ruby-on-rails-application","tag-microservices","tag-rails","tag-rails-application","tag-railscarma","tag-ruby-on-rails-application-development","tag-ruby-on-rails-development","tag-splitting-monolithic-rails-application"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Splitting Monolithic Rails Application to Microservices<\/title>\n<meta name=\"description\" content=\"As a business gets bigger, they require more functionalities and thus you can\u2019t help but add new models\/controller to the existing Rails application and\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/separation-de-lapplication-de-rails-monolithiques-en-microservices\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Splitting Monolithic Rails Application to Microservices\" \/>\n<meta property=\"og:description\" content=\"As a business gets bigger, they require more functionalities and thus you can\u2019t help but add new models\/controller to the existing Rails application and\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/separation-de-lapplication-de-rails-monolithiques-en-microservices\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-06-23T11:27:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-10T13:26:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/Splitting-monolithic-rails-application-to-microservices.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Splitting Monolithic Rails Application to Microservices\",\"datePublished\":\"2016-06-23T11:27:31+00:00\",\"dateModified\":\"2024-01-10T13:26:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/\"},\"wordCount\":824,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/Splitting-monolithic-rails-application-to-microservices.jpg\",\"keywords\":[\"Articles on ruby on rails application\",\"microservices\",\"rails\",\"rails application\",\"railscarma\",\"ruby on rails application development\",\"ruby on rails development\",\"Splitting Monolithic Rails Application\"],\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/\",\"name\":\"Splitting Monolithic Rails Application to Microservices\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/Splitting-monolithic-rails-application-to-microservices.jpg\",\"datePublished\":\"2016-06-23T11:27:31+00:00\",\"dateModified\":\"2024-01-10T13:26:50+00:00\",\"description\":\"As a business gets bigger, they require more functionalities and thus you can\u2019t help but add new models\/controller to the existing Rails application and\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/Splitting-monolithic-rails-application-to-microservices.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/Splitting-monolithic-rails-application-to-microservices.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Splitting Monolithic Rails Application to Microservices\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"S\u00e9paration de l&#039;application Rails monolithiques en microservices","description":"\u00c0 mesure qu&#039;une entreprise grandit, elle a besoin de plus de fonctionnalit\u00e9s et vous ne pouvez donc pas vous emp\u00eacher d&#039;ajouter de nouveaux mod\u00e8les\/contr\u00f4leurs \u00e0 l&#039;application Rails existante et","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/separation-de-lapplication-de-rails-monolithiques-en-microservices\/","og_locale":"fr_FR","og_type":"article","og_title":"Splitting Monolithic Rails Application to Microservices","og_description":"As a business gets bigger, they require more functionalities and thus you can\u2019t help but add new models\/controller to the existing Rails application and","og_url":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/separation-de-lapplication-de-rails-monolithiques-en-microservices\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2016-06-23T11:27:31+00:00","article_modified_time":"2024-01-10T13:26:50+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/Splitting-monolithic-rails-application-to-microservices.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Splitting Monolithic Rails Application to Microservices","datePublished":"2016-06-23T11:27:31+00:00","dateModified":"2024-01-10T13:26:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/"},"wordCount":824,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/Splitting-monolithic-rails-application-to-microservices.jpg","keywords":["Articles on ruby on rails application","microservices","rails","rails application","railscarma","ruby on rails application development","ruby on rails development","Splitting Monolithic Rails Application"],"articleSection":["Technical Articles"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/","url":"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/","name":"S\u00e9paration de l&#039;application Rails monolithiques en microservices","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/Splitting-monolithic-rails-application-to-microservices.jpg","datePublished":"2016-06-23T11:27:31+00:00","dateModified":"2024-01-10T13:26:50+00:00","description":"\u00c0 mesure qu&#039;une entreprise grandit, elle a besoin de plus de fonctionnalit\u00e9s et vous ne pouvez donc pas vous emp\u00eacher d&#039;ajouter de nouveaux mod\u00e8les\/contr\u00f4leurs \u00e0 l&#039;application Rails existante et","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/Splitting-monolithic-rails-application-to-microservices.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/Splitting-monolithic-rails-application-to-microservices.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/splitting-monolithic-rails-application-to-microservices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Splitting Monolithic Rails Application to Microservices"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"RailsCarma est une soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails \u00e0 Bangalore. Nous sommes sp\u00e9cialis\u00e9s dans le d\u00e9veloppement offshore Ruby on Rails, bas\u00e9s aux \u00c9tats-Unis et en Inde. Embauchez des d\u00e9veloppeurs Ruby on Rails exp\u00e9riment\u00e9s pour une exp\u00e9rience Web ultime.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"administrateur","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/8488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/comments?post=8488"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/8488\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media\/31897"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media?parent=8488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/categories?post=8488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/tags?post=8488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}