{"id":92810,"date":"2020-08-31T07:42:09","date_gmt":"2020-08-31T05:42:09","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1"},"modified":"2020-08-31T07:42:09","modified_gmt":"2020-08-31T05:42:09","slug":"vybor-arhitekturnogo-stilya-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1","title":{"rendered":"Choix du style architectonique (partie 1)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Bonjour, Habr. En ce moment, OTUS ouvre les inscriptions pour un nouveau groupe de cours. <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/5RTk\/\">\u00abArchitecte Logiciel\u00bb<\/a><\/noindex>. \u00c0 l'approche du d\u00e9but du cours, je souhaite partager avec vous mon article d'auteur.<\/i><\/b><\/p>\n<p><\/p>\n<h2>Introduction<\/h2>\n<p>\nLe choix d'un style architectural est l'une des d\u00e9cisions techniques fondamentales lors de la cr\u00e9ation d'un syst\u00e8me d'information. Dans cette s\u00e9rie d'articles, je propose d'examiner les styles architecturaux les plus populaires pour la construction d'applications et de r\u00e9pondre \u00e0 la question de savoir quand un style architectural particulier est le plus appropri\u00e9. Au fil de cette exposition, j'essaierai de cr\u00e9er un fil logique expliquant l'\u00e9volution des styles architecturaux, des monolithes aux microservices. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Un peu d'histoire<\/h2>\n<p>\nSi vous essayez de poser la question aux d\u00e9veloppeurs : \u00ab \u00c0 quoi servent les microservices ? \u00bb, vous obtiendrez les r\u00e9ponses les plus vari\u00e9es. Vous entendrez que les microservices am\u00e9liorent la scalabilit\u00e9, simplifient la compr\u00e9hension du code, am\u00e9liorent la r\u00e9silience, et parfois, vous entendrez qu'ils permettent de \u00ab nettoyer le code \u00bb. Retournons \u00e0 l'histoire pour comprendre quel but a conduit \u00e0 l'apparition des microservices.<\/p>\n<p>En r\u00e9sum\u00e9, les microservices tels que nous les comprenons actuellement sont apparus de la mani\u00e8re suivante : en 2011, James Lewis, en analysant les travaux de diverses entreprises, a remarqu\u00e9 l'\u00e9mergence d'un nouveau mod\u00e8le appel\u00e9 \u00ab micro-app \u00bb, qui optimisait le SOA en termes d'acc\u00e9l\u00e9ration du d\u00e9ploiement des services. Peu apr\u00e8s, en 2012, lors du sommet architectural, ce mod\u00e8le a \u00e9t\u00e9 renomm\u00e9 en microservice. Ainsi, l'objectif initial de l'impl\u00e9mentation des microservices \u00e9tait d'am\u00e9liorer le fameux <b>time to market<\/b>.<\/p>\n<p>Les microservices \u00e9taient \u00e0 la mode en 2015. D'apr\u00e8s certaines \u00e9tudes, aucune conf\u00e9rence ne se passait sans une pr\u00e9sentation sur le th\u00e8me des microservices. De plus, certaines conf\u00e9rences \u00e9taient exclusivement consacr\u00e9es aux microservices. \u00c0 pr\u00e9sent, de nombreux projets commencent avec ce style architectural, et si un projet contient des tonnes de code h\u00e9rit\u00e9, il y a s\u00fbrement une migration active vers les microservices.<\/p>\n<p>Malgr\u00e9 tout ce qui pr\u00e9c\u00e8de, un nombre encore relativement faible de d\u00e9veloppeurs peut d\u00e9finir le terme \u00ab microservice \u00bb. Mais nous en parlerons un peu plus tard...<\/p>\n<h2>Monolithe<\/h2>\n<p>\nLe style architectural qui est oppos\u00e9 aux microservices est le monolithe (ou \u00ab tout en un \u00bb). Parler du monolithe n'a probablement pas de sens, donc je vais tout de suite \u00e9num\u00e9rer les inconv\u00e9nients de ce style architectural, qui ont suscit\u00e9 un d\u00e9veloppement ult\u00e9rieur des styles architecturaux : taille, couplage, d\u00e9ploiement, \u00e9volutivit\u00e9, fiabilit\u00e9 et rigidit\u00e9. Ci-dessous, je vous propose de d\u00e9couvrir chacun des inconv\u00e9nients s\u00e9par\u00e9ment.<\/p>\n<h3>Taille<\/h3>\n<p>\nLe monolithe est tr\u00e8s grand. Il communique g\u00e9n\u00e9ralement avec une tr\u00e8s grande base de donn\u00e9es. L'application devient trop complexe pour qu'un seul d\u00e9veloppeur puisse la comprendre. Seules les personnes ayant pass\u00e9 beaucoup de temps avec ce code peuvent travailler efficacement sur le monolithe, tandis que les nouveaux d\u00e9veloppeurs passeront \u00e9norm\u00e9ment de temps \u00e0 essayer de le comprendre, sans garantie de succ\u00e8s. En g\u00e9n\u00e9ral, il y a toujours un certain senior \u00ab conditionnel \u00bb qui conna\u00eet le monolithe relativement bien et qui corrige les erreurs des nouveaux d\u00e9veloppeurs pendant un an ou un an et demi. Naturellement, ce senior conditionnel constitue un point de d\u00e9faillance unique, et son d\u00e9part peut mener \u00e0 la perte du monolithe. <\/p>\n<h3>Couplage<\/h3>\n<p>\nLe monolithe repr\u00e9sente une \u00ab grosse boule de boue \u00bb (big ball of mud), dont les modifications peuvent entra\u00eener des cons\u00e9quences impr\u00e9visibles. En modifiant une partie, on peut endommager au passage une autre partie du monolithe (comme l'expression \u00ab on se gratte l'oreille et on se fait mal ailleurs \u00bb). Cela est d\u00fb au fait que les composants du monolithe ont des interrelations tr\u00e8s complexes et, surtout, non \u00e9videntes.<\/p>\n<h3>D\u00e9ploiement<\/h3>\n<p>\nLe d\u00e9ploiement d'un monolithe, en raison des relations complexes entre ses composants, est un processus long avec ses propres rituels. Ces rituels ne sont g\u00e9n\u00e9ralement pas compl\u00e8tement standardis\u00e9s et se transmettent \u00ab de bouche \u00e0 oreille \u00bb. <\/p>\n<h3>Scalabilit\u00e9<\/h3>\n<p>\nLes modules du monolithe peuvent avoir des besoins en ressources conflictuels, ce qui n\u00e9cessite de trouver un compromis du point de vue mat\u00e9riel. Imaginez que votre monolithe se compose des services A et B. Le service A n\u00e9cessite beaucoup d'espace sur le disque dur, tandis que le service B exige beaucoup de m\u00e9moire vive. Dans ce cas, soit la machine sur laquelle le monolithe est install\u00e9 doit r\u00e9pondre aux exigences des deux services, soit il faudra d\u00e9sactiver manuellement l'un des services.<\/p>\n<p>Un autre exemple (plus classique) : le service A est beaucoup plus populaire que le service B, donc vous souhaitez avoir 100 instances du service A et 10 du service B. L\u00e0 encore, il y a deux options : soit nous d\u00e9ployons 100 monolithes complets, soit nous d\u00e9sactivons manuellement certains services B sur quelques-uns d'entre eux. <\/p>\n<h3>Fiabilit\u00e9<\/h3>\n<p>\nPuisque tous les services sont regroup\u00e9s, si le monolithe tombe, tous les services tombent \u00e9galement. En r\u00e9alit\u00e9, ce n'est peut-\u00eatre pas si mal, du moins il n'y aura pas de pannes partielles dans un syst\u00e8me distribu\u00e9, mais d'un autre c\u00f4t\u00e9, \u00e0 cause d'une erreur dans une fonction utilis\u00e9e par 0,001 % des utilisateurs, vous pourriez perdre tous les utilisateurs de votre syst\u00e8me. <\/p>\n<h3>Rigidit\u00e9<\/h3>\n<p>\nEn raison de la taille du monolithe, il est difficile de passer \u00e0 de nouvelles technologies. Par cons\u00e9quent, une t\u00e2che distincte se dessine : retenir ce m\u00eame senior. La pile technologique choisie au d\u00e9but du projet peut devenir un obstacle au d\u00e9veloppement du produit. <\/p>\n<h2>Conclusion<\/h2>\n<p>\nLa prochaine fois, nous parlerons de la fa\u00e7on dont les gens ont tent\u00e9 de r\u00e9soudre les probl\u00e8mes mentionn\u00e9s en passant aux composants et \u00e0 l'architecture orient\u00e9e services.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/5RTk\/\"><img decoding=\"async\" alt=\"Choix du style architectonique (partie 1)\" src=\"\/wp-content\/uploads\/2020\/08\/d1582a83ad9cf8722a035dfd9a212aa5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<blockquote>\n<h4>Lire aussi :<\/h4>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/504144\/\">Pourquoi SQL Server ne garantit-il pas le tri des r\u00e9sultats sans ORDER BY<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/508206\/\">Architecture pour d\u00e9veloppeurs et admins : quelles comp\u00e9tences sont n\u00e9cessaires ?<\/a><\/noindex><\/li>\n<\/ul>\n<\/blockquote>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/516880\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 OTUS \u043e\u0442\u043a\u0440\u044b\u0442 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb. \u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043a\u0443\u0440\u0441\u0430 \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0441\u0432\u043e\u0435\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043e\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 \u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u0441\u0442\u0438\u043b\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":92811,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-92810","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 OTUS \u043e\u0442\u043a\u0440\u044b\u0442 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f (\u0447\u0430\u0441\u0442\u044c 1) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 OTUS \u043e\u0442\u043a\u0440\u044b\u0442 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-31T05:42:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-31T05:42:09+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Choix du style architectural (partie 1) | ProHoster","description":"Salut, Habr. En ce moment, OTUS a ouvert les inscriptions pour un nouveau cours \u00ab Architecte logiciel \u00bb.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f (\u0447\u0430\u0441\u0442\u044c 1) | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 OTUS \u043e\u0442\u043a\u0440\u044b\u0442 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-31T05:42:09+00:00","article:modified_time":"2020-08-31T05:42:09+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"92810","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:00:37","updated":"2022-10-03 23:14:42","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/92810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=92810"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/92810\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/92811"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=92810"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=92810"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=92810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}