{"id":94574,"date":"2020-09-18T19:42:57","date_gmt":"2020-09-18T17:42:57","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2"},"modified":"2020-09-18T19:42:57","modified_gmt":"2020-09-18T17:42:57","slug":"vybor-arhitekturnogo-stilya-chast-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2","title":{"rendered":"Choix du style architectural (partie 2)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Bonjour, Habr. Aujourd'hui, je poursuis ma s\u00e9rie de publications que j'ai \u00e9crite sp\u00e9cialement pour le lancement d'un nouveau cycle de cours <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rRLl\/\">\u00abArchitecte Logiciel\u00bb<\/a><\/noindex>. <\/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. <\/p>\n<p>Dans <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/516880\/\">la fois pr\u00e9c\u00e9dente<\/a><\/noindex> Nous avons examin\u00e9 le monolithe et conclu qu'il pr\u00e9sente plusieurs probl\u00e8mes : taille, couplage, d\u00e9ploiement, \u00e9volutivit\u00e9, fiabilit\u00e9 et rigidit\u00e9. <\/p>\n<p>Cette fois, je vous propose de parler des possibilit\u00e9s d'organisation du syst\u00e8me sous forme d'un ensemble de modules\/biblioth\u00e8ques (architecture orient\u00e9e composants) ou de services (architecture orient\u00e9e services).<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Architecture orient\u00e9e composants<\/h2>\n<p>\nL'architecture orient\u00e9e composants implique que le syst\u00e8me soit r\u00e9alis\u00e9 sous forme d'un ensemble de composants qui peuvent \u00eatre utilis\u00e9s tant dans des projets actuels que futurs. Lors de la d\u00e9composition d'un syst\u00e8me en composants, il est tenu compte de : leur r\u00e9utilisabilit\u00e9, leur rempla\u00e7abilit\u00e9, leur ind\u00e9pendance par rapport au contexte, leur extensibilit\u00e9, leur encapsulation et leur autonomie.<\/p>\n<p>Lorsqu'ils sont utilis\u00e9s correctement, les composants r\u00e9solvent le probl\u00e8me du \u00ab gros tas de salet\u00e9 \u00bb (grande taille + fort couplage), et ces composants peuvent repr\u00e9senter \u00e0 la fois des unit\u00e9s de construction (modules, biblioth\u00e8ques) et des unit\u00e9s de d\u00e9ploiement (services). Les unit\u00e9s de d\u00e9ploiement ne correspondent pas toujours \u00e0 un processus d'ex\u00e9cution : par exemple, une application web et une base de donn\u00e9es sont d\u00e9ploy\u00e9es ensemble. <\/p>\n<p>Les monolithes sont le plus souvent d\u00e9velopp\u00e9s sous forme d'un ensemble de modules. Cette approche permet d'assurer l'ind\u00e9pendance du d\u00e9veloppement, mais elle laisse persister des probl\u00e8mes d'\u00e9volutivit\u00e9 et de d\u00e9ploiement ind\u00e9pendants, de r\u00e9silience et d'ind\u00e9pendance par rapport \u00e0 une pile technologique commune. C'est pourquoi un module est un composant partiellement ind\u00e9pendant.<\/p>\n<p>Le principal probl\u00e8me de ce type de monolithe r\u00e9side dans le fait que la s\u00e9paration en modules est purement logique et peut facilement \u00eatre perturb\u00e9e par les d\u00e9veloppeurs. Un module core peut appara\u00eetre, qui se transforme progressivement en un fourre-tout, le graphe des d\u00e9pendances entre les modules peut cro\u00eetre, etc. Pour \u00e9viter ces probl\u00e8mes, le d\u00e9veloppement doit \u00eatre men\u00e9 soit par une \u00e9quipe tr\u00e8s exp\u00e9riment\u00e9e, soit sous la direction d'un \u00ab architecte \u00bb, qui se consacre \u00e0 plein temps \u00e0 la revue de code et qui sanctionne les d\u00e9veloppeurs qui enfreignent la structure logique. <\/p>\n<p>Un monolithe \u00ab id\u00e9al \u00bb se compose d'un ensemble de modules logiquement s\u00e9par\u00e9s, chacun acc\u00e9dant \u00e0 sa propre base de donn\u00e9es.<\/p>\n<h2>Architecture orient\u00e9e services<\/h2>\n<p>\nSi une organisation de syst\u00e8me sous la forme d'un ensemble de services est envisag\u00e9e, on parle alors d'architecture orient\u00e9e services. Ses principes incluent : l'interop\u00e9rabilit\u00e9 des applications centr\u00e9es sur l'utilisateur, la r\u00e9utilisation des services m\u00e9tier, l'ind\u00e9pendance par rapport \u00e0 un ensemble de technologies et l'autonomie (\u00e9volution, \u00e9volutivit\u00e9 et d\u00e9ploiement ind\u00e9pendants).<\/p>\n<p>L'architecture orient\u00e9e services (SOA = service oriented architecture) r\u00e9sout tous les probl\u00e8mes identifi\u00e9s du monolithe : lors d'un changement, seule un service est affect\u00e9, et une API clairement d\u00e9finie permet une bonne encapsulation des composants. <\/p>\n<p>Cependant, tout n'est pas si simple : la SOA entra\u00eene l'\u00e9mergence de nouveaux probl\u00e8mes. Les appels distants sont plus co\u00fbteux que les locaux, et la redistribution des responsabilit\u00e9s entre les composants est devenue consid\u00e9rablement plus co\u00fbteuse.<\/p>\n<p>Il est \u00e0 noter que la possibilit\u00e9 de d\u00e9ploiement ind\u00e9pendant est une caract\u00e9ristique tr\u00e8s importante pour le service. Si les services doivent \u00eatre d\u00e9ploy\u00e9s ensemble ou, pire, dans un ordre sp\u00e9cifique, le syst\u00e8me ne peut pas \u00eatre consid\u00e9r\u00e9 comme orient\u00e9 services. On parle alors de monolithe distribu\u00e9 (consid\u00e9r\u00e9 comme un antipattern tant du point de vue de la SOA que de l'architecture microservices). <\/p>\n<p>L'architecture orient\u00e9e services est bien soutenue par la communaut\u00e9 architecturale et les fournisseurs. Cela se traduit par de nombreux cours et certifications, ainsi que des mod\u00e8les bien \u00e9labor\u00e9s. Parmi ces derniers se trouve, par exemple, le c\u00e9l\u00e8bre bus de services d'entreprise (ESB = enterprise service bus). Notez que l'ESB est un h\u00e9ritage des fournisseurs, il n'est pas n\u00e9cessaire qu'il soit utilis\u00e9 dans une SOA.<\/p>\n<p>Le pic de popularit\u00e9 de l'architecture orient\u00e9e services a eu lieu vers 2008, apr\u00e8s quoi elle a commenc\u00e9 \u00e0 d\u00e9cliner, et son d\u00e9clin s'est accentu\u00e9 avec l'\u00e9mergence des microservices (~2015).<\/p>\n<h2>Conclusion<\/h2>\n<p>\nApr\u00e8s avoir discut\u00e9 des possibilit\u00e9s d'organisation des syst\u00e8mes d'information sous forme de services et de modules, je propose enfin de passer aux principes de l'architecture microservices et de pr\u00eater une attention particuli\u00e8re \u00e0 la distinction entre l'architecture microservices et l'architecture orient\u00e9e services dans la prochaine partie.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rRLl\/\"><img decoding=\"async\" alt=\"Choix du style architectural (partie 2)\" src=\"\/wp-content\/uploads\/2020\/09\/d519b2419d13f1a7e03cc8064b83ab1f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/519456\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb. \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 \u0432\u043e\u043f\u0440\u043e\u0441 \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u043a\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":94575,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-94574","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, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \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-2\" \/>\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 2) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \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-2\" \/>\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-09-18T17:42:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-18T17:42:57+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 2) | ProHoster","description":"Bonjour, Habr. Aujourd'hui, je continue ma s\u00e9rie de publications que j'ai \u00e9crites sp\u00e9cialement pour le lancement d'un nouveau cours sur \u00ab Architecte Logiciel \u00bb.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2","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 2) | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2","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-09-18T17:42:57+00:00","article:modified_time":"2020-09-18T17:42:57+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"94574","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 11:24:26","updated":"2022-10-03 07:40:49","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\/94574","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=94574"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/94574\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/94575"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=94574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=94574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=94574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}