{"id":83248,"date":"2020-05-29T19:42:48","date_gmt":"2020-05-29T17:42:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam"},"modified":"2020-05-29T19:42:48","modified_gmt":"2020-05-29T17:42:48","slug":"dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam","title":{"rendered":"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Bonjour \u00e0 tous ! Nous avons de bonnes nouvelles, en juin, OTUS relance \u00e0 nouveau un cours <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rVZl\/\">\u00ab Architecte Logiciel \u00bb<\/a><\/noindex>, c'est pourquoi nous partageons traditionnellement avec vous du mat\u00e9riel utile.<\/b><\/i><\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/6092ffb23e765239b4a8f27d4a0cb846.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n Si vous \u00eates confront\u00e9 \u00e0 toute cette histoire de microservices sans aucun contexte, vous pouvez l\u00e9gitimement la trouver un peu \u00e9trange. D\u00e9composer une application en fragments reli\u00e9s par un r\u00e9seau implique n\u00e9cessairement d'ajouter des modes de r\u00e9silience complexes dans le syst\u00e8me distribu\u00e9 r\u00e9sultant. <\/p>\n<p>Bien que cette approche implique de diviser en de multiples services ind\u00e9pendants, l'objectif final va bien au-del\u00e0 de simplement faire fonctionner ces services sur des machines diff\u00e9rentes. Il s'agit ici de l'interaction avec le monde environnant, qui est lui aussi fondamentalement distribu\u00e9. Pas au sens technique, mais plut\u00f4t dans le sens d'un \u00e9cosyst\u00e8me compos\u00e9 de nombreuses personnes, \u00e9quipes, programmes, et chacune de ces parties doit, d'une mani\u00e8re ou d'une autre, remplir son r\u00f4le.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Les entreprises, par exemple, repr\u00e9sentent un ensemble de syst\u00e8mes distribu\u00e9s qui, ensemble, contribuent \u00e0 atteindre un certain objectif. Nous avons ignor\u00e9 ce fait pendant des d\u00e9cennies, essayant d'atteindre une int\u00e9gration en transf\u00e9rant des fichiers par FTP ou en utilisant des outils d'int\u00e9gration d'entreprise, tout en nous concentrant sur nos propres objectifs isol\u00e9s. Mais avec l'arriv\u00e9e des services, tout a chang\u00e9. Les services nous ont aid\u00e9s \u00e0 voir au-del\u00e0 de l'horizon et \u00e0 percevoir un monde de programmes interd\u00e9pendants qui travaillent ensemble. Cependant, pour r\u00e9ussir, il est n\u00e9cessaire de concevoir et de comprendre deux mondes fondamentalement diff\u00e9rents : le monde ext\u00e9rieur, o\u00f9 nous vivons dans un \u00e9cosyst\u00e8me de nombreux autres services, et notre monde personnel, int\u00e9rieur, o\u00f9 nous r\u00e9gnons seuls.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/93f535f6f3319d7b2829d35c0fe1c48f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Ce monde distribu\u00e9 diff\u00e8re de celui dans lequel nous avons grandi et auquel nous sommes habitu\u00e9s. Les principes de la construction d'une architecture monolithique traditionnelle ne tiennent pas la route. Par cons\u00e9quent, comprendre correctement ces syst\u00e8mes est plus qu'un simple exercice de cr\u00e9ation d'un joli sch\u00e9ma sur un tableau blanc ou une belle preuve de concept. Il s'agit de faire en sorte qu'un tel syst\u00e8me fonctionne avec succ\u00e8s sur le long terme. Heureusement, les services existent depuis un certain temps, bien qu'ils prennent diff\u00e9rentes formes. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Service-oriented_architecture\">Le\u00e7ons de SOA<\/a><\/noindex> ils sont toujours pertinents, m\u00eame agr\u00e9ment\u00e9s de Docker, Kubernetes et l\u00e9g\u00e8rement \u00e9bouriff\u00e9s par des barbes de hipsters. <\/p>\n<p>Aujourd'hui, nous allons examiner comment les r\u00e8gles ont chang\u00e9, pourquoi nous devons repenser notre approche des services et des donn\u00e9es qu'ils \u00e9changent entre eux, et pourquoi cela n\u00e9cessite des outils compl\u00e8tement diff\u00e9rents.<\/p>\n<h3>L'encapsulation ne sera pas toujours votre amie.<\/h3>\n<p>\n Les microservices peuvent fonctionner ind\u00e9pendamment les uns des autres. C'est cette caract\u00e9ristique qui leur conf\u00e8re leur plus grande valeur. Cette m\u00eame propri\u00e9t\u00e9 permet aux services de se d\u00e9velopper et de cro\u00eetre. Pas tant en termes de mise \u00e0 l'\u00e9chelle jusqu'\u00e0 des quadrillions d'utilisateurs ou des p\u00e9taoctets de donn\u00e9es (bien qu'ils puissent \u00e9galement aider dans ce cas), mais en termes de mise \u00e0 l'\u00e9chelle du point de vue des personnes, car les \u00e9quipes et les organisations continuent de cro\u00eetre.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/ec36218b6152c2b713f72689b4ea6916.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCependant, l'ind\u00e9pendance est une arme \u00e0 double tranchant. C'est-\u00e0-dire qu'un service peut fonctionner facilement et sans effort. Mais si une fonction \u00e0 l'int\u00e9rieur du service n\u00e9cessite d'engager un autre service, alors finalement, nous devons apporter des modifications aux deux services presque simultan\u00e9ment. Dans un monolithe, cela est facile, vous effectuez simplement le changement et le d\u00e9ployez en production, mais dans le cas de la synchronisation des services ind\u00e9pendants, il y aura plus de probl\u00e8mes. La coordination entre les \u00e9quipes et les cycles de publication d\u00e9truit la flexibilit\u00e9.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/5fc993636f29e9eb9831d05cbc0bd7f8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDans le cadre de l'approche standard, les changements transversaux frustrants sont simplement \u00e9vit\u00e9s, en s\u00e9parant clairement les fonctionnalit\u00e9s entre les services. Un service d'authentification unique peut en \u00eatre un bon exemple. Il a un r\u00f4le clairement d\u00e9fini qui le distingue des autres services. Cette s\u00e9paration nette signifie que dans un monde o\u00f9 les exigences changeantes affectent les services environnants, le service d'authentification unique aura peu de chances de changer. Il existe dans un contexte strictement limit\u00e9.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/095fd7a6e02ead4924abf180e3b1d26b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Le probl\u00e8me est que dans le monde r\u00e9el, les services commerciaux ne peuvent pas maintenir une s\u00e9paration des r\u00f4les toujours claire. Par exemple, ces m\u00eames services commerciaux travaillent dans une large mesure avec des donn\u00e9es provenant d'autres services similaires. Si vous \u00eates impliqu\u00e9 dans le commerce en ligne, le traitement des flux de commandes, du catalogue de produits ou des informations sur les utilisateurs deviendra une exigence pour de nombreux services. Chacun des services n\u00e9cessitera un acc\u00e8s \u00e0 ces donn\u00e9es pour fonctionner. <\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/2a3d23850c88d574c990dfdc6015072c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>La plupart des services commerciaux utilisent les m\u00eames flux de donn\u00e9es, ce qui entra\u00eene des interconnexions in\u00e9vitables dans leur fonctionnement.<\/i><\/p>\n<p>Nous avons donc atteint un point crucial dont il convient de parler. Alors que les services fonctionnent bien pour les composants d'infrastructure qui op\u00e8rent de mani\u00e8re relativement isol\u00e9e, la plupart des services commerciaux se retrouvent \u00e9troitement li\u00e9s.<\/p>\n<h3>Dichotomie des donn\u00e9es<\/h3>\n<p>\n Des approches ax\u00e9es sur les services existent peut-\u00eatre d\u00e9j\u00e0, mais il y a encore peu d'informations sur la fa\u00e7on d'\u00e9changer de gros volumes de donn\u00e9es entre les services.<\/p>\n<p>Le probl\u00e8me principal est que les donn\u00e9es et les services sont indissociables. D'une part, l'encapsulation nous encourage \u00e0 masquer les donn\u00e9es afin que les services puissent \u00eatre s\u00e9par\u00e9s les uns des autres, facilitant leur croissance et leurs \u00e9volutions ult\u00e9rieures. D'autre part, nous devons \u00eatre capables de partager librement et de g\u00e9rer des donn\u00e9es communes, comme n'importe lesquelles d'autres. Il s'agit d'\u00eatre capable de commencer \u00e0 travailler imm\u00e9diatement, aussi librement que dans n'importe quel autre syst\u00e8me d'information.<\/p>\n<p>Cependant, les syst\u00e8mes d'information ont peu \u00e0 voir avec l'encapsulation. En fait, c'est m\u00eame l'inverse. Les bases de donn\u00e9es font tout ce qu'elles peuvent pour donner acc\u00e8s aux donn\u00e9es qu'elles contiennent. Elles sont fournies avec une interface d\u00e9clarative puissante qui permet de modifier les donn\u00e9es selon vos besoins. Cette fonctionnalit\u00e9 est essentielle lors des \u00e9tudes pr\u00e9liminaires, mais pas pour g\u00e9rer la complexit\u00e9 croissante d'un service en \u00e9volution constante.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/830465d4aa3bd2e6c02772a982f170bd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Et c'est ici que se pose le dilemme. La contradiction. La dichotomie. En effet, les syst\u00e8mes d'information visent \u00e0 fournir des donn\u00e9es, tandis que les services visent \u00e0 masquer.<\/p>\n<p>Ces deux forces sont fondamentales. Elles constituent la base de la plupart de notre travail, se battant constamment pour dominer les syst\u00e8mes que nous cr\u00e9ons.<\/p>\n<p>\u00c0 mesure que les syst\u00e8mes de services croissent et \u00e9voluent, nous observons diff\u00e9rentes manifestations des cons\u00e9quences de la dichotomie des donn\u00e9es. Soit l'interface du service se d\u00e9veloppe, offrant un ensemble de fonctionnalit\u00e9s de plus en plus large, et commence \u00e0 ressembler \u00e0 une base de donn\u00e9es maison tr\u00e8s particuli\u00e8re, soit nous ressentons de la frustration et mettons en \u0153uvre une mani\u00e8re d'extraire ou de d\u00e9placer massivement des ensembles de donn\u00e9es entiers d'un service \u00e0 un autre.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/da718c87570a4eb20b18f9c880ae8a1b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n En retour, cr\u00e9er quelque chose qui ressemble \u00e0 une base de donn\u00e9es maison tr\u00e8s particuli\u00e8re engendrera toute une s\u00e9rie de probl\u00e8mes. Nous n'allons pas entrer dans les d\u00e9tails de ce qui est dangereux \u00e0 propos de <i>shared database<\/i>, simplement dire qu'elle repr\u00e9sente des difficult\u00e9s d'ing\u00e9nierie et d'op\u00e9rations significatives et co\u00fbteuses <noindex><a rel=\"nofollow\" href=\"http:\/\/microservices.io\/patterns\/data\/shared-database.html\">pour l'entreprise qui tente de l'utiliser.<\/a><\/noindex> Pire encore, les volumes de donn\u00e9es exacerbent les probl\u00e8mes de fronti\u00e8res des services. Plus il y a de donn\u00e9es partag\u00e9es \u00e0 l'int\u00e9rieur d'un service, plus l'interface deviendra complexe et plus il sera difficile de fusionner des ensembles de donn\u00e9es provenant de diff\u00e9rents services.<\/p>\n<p>Une approche alternative consistant \u00e0 extraire et \u00e0 d\u00e9placer des ensembles de donn\u00e9es entiers a aussi ses propres probl\u00e8mes. L'approche courante \u00e0 cette question semble \u00eatre l'extraction simple et le stockage d'un ensemble de donn\u00e9es complet, puis son stockage local dans chaque service consommateur.<\/p>\n<p>Le probl\u00e8me est que diff\u00e9rents services interpr\u00e8tent les donn\u00e9es qu'ils consomment de mani\u00e8re diff\u00e9rente. Ces donn\u00e9es sont toujours \u00e0 port\u00e9e de main. Elles changent et sont trait\u00e9es localement. Assez rapidement, elles cessent d'avoir quoi que ce soit en commun avec les donn\u00e9es de la source.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/63934c6876cb89e87155d4c097657617.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Plus les copies sont mutables, plus les donn\u00e9es vont diverger avec le temps.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/616e390ad3df3317ac34ac8d861ce804.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>Pire encore, ces donn\u00e9es sont difficiles \u00e0 corriger r\u00e9trospectivement (<\/i><\/p>\n<p>MDM<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Master_data_management\">ici, peut vraiment venir \u00e0 la rescousse). En r\u00e9alit\u00e9, certains des probl\u00e8mes technologiques difficiles auxquels les entreprises sont confront\u00e9es proviennent de donn\u00e9es h\u00e9t\u00e9rog\u00e8nes qui se multiplient d'une application \u00e0 l'autre.<\/a><\/noindex> Pour trouver une solution \u00e0 ce probl\u00e8me concernant les donn\u00e9es partag\u00e9es, il faut penser diff\u00e9remment. Elles doivent devenir des objets de premier plan dans les architectures que nous construisons.<\/p>\n<p>Pat Helland <noindex><a rel=\"nofollow\" href=\"http:\/\/cidrdb.org\/cidr2005\/papers\/P12.pdf\">P\u00e9t Helland<\/a><\/noindex> appelle ces donn\u00e9es des \u00ab externes \u00bb, et c'est une caract\u00e9ristique tr\u00e8s importante. Nous avons besoin d'encapsulation pour ne pas r\u00e9v\u00e9ler l'architecture interne du service, mais nous devons faciliter l'acc\u00e8s des services aux donn\u00e9es partag\u00e9es afin qu'ils puissent effectuer leur travail correctement.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/9703ffdbb528320edc62ee7a680a3258.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Le probl\u00e8me est qu'aucun des approches actuelles n'est pertinente, car ni les interfaces de service, ni l'\u00e9change de messages, ni la base de donn\u00e9es partag\u00e9e ne proposent de bonne solution pour travailler avec des donn\u00e9es externes. Les interfaces de service sont mal adapt\u00e9es pour le partage de donn\u00e9es \u00e0 grande \u00e9chelle. L'\u00e9change de messages d\u00e9place des donn\u00e9es mais ne conserve pas leur historique, donc avec le temps, les donn\u00e9es se d\u00e9t\u00e9riorent. Les bases de donn\u00e9es partag\u00e9es se concentrent trop sur un seul point, ce qui limite l'avancement. Nous coincions in\u00e9vitablement dans un cycle d'incapacit\u00e9 des donn\u00e9es :<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/f17ac7063a813cb76bad71ae8622912c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>Cycle d'incapacit\u00e9 des donn\u00e9es<\/i><\/p>\n<h3>Flux : approche d\u00e9centralis\u00e9e des donn\u00e9es et des services<\/h3>\n<p>\n Id\u00e9alement, nous devons changer notre approche quant \u00e0 la mani\u00e8re dont les services travaillent avec des donn\u00e9es communes. Actuellement, toute approche se heurte \u00e0 la dichotomie mentionn\u00e9e ci-dessus, car il n'existe pas de solution magique que l'on pourrait g\u00e9n\u00e9reusement saupoudrer pour qu'elle disparaisse. Toutefois, nous pouvons repenser le probl\u00e8me et parvenir \u00e0 un compromis.<\/p>\n<p>Ce compromis implique un certain degr\u00e9 de centralisation. Nous pouvons tirer parti du m\u00e9canisme de journaux distribu\u00e9s, car il permet des flux \u00e9volutifs et fiables. Il est maintenant n\u00e9cessaire que les services puissent se connecter et travailler avec ces flux communs, mais nous souhaitons \u00e9viter des services centraux complexes qui r\u00e9alisent ce traitement. Par cons\u00e9quent, la meilleure option est d'int\u00e9grer le traitement des flux dans chaque service consommateur. Ainsi, les services pourront combiner des ensembles de donn\u00e9es provenant de diff\u00e9rentes sources et travailler avec eux comme ils le souhaitent.<\/p>\n<p>Une des mani\u00e8res d'atteindre une telle approche est d'utiliser une plateforme de streaming. Il existe de nombreuses options, mais aujourd'hui nous allons nous concentrer sur Kafka, car son traitement des flux d'\u00e9tat permet de r\u00e9soudre efficacement le probl\u00e8me pr\u00e9sent\u00e9.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/353c7f12af87901e721abb7ea92d8196.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n L'utilisation du m\u00e9canisme de journalisation distribu\u00e9e nous permet de suivre un chemin balis\u00e9 et d'utiliser l'\u00e9change de messages pour travailler avec. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Event-driven_architecture\">architecture orient\u00e9e \u00e9v\u00e9nements<\/a><\/noindex>. On pense qu'une telle approche offre une meilleure scalabilit\u00e9 et segmentation que le m\u00e9canisme \u00ab requ\u00eate-r\u00e9ponse \u00bb, car elle donne le contr\u00f4le du flux au destinataire plut\u00f4t qu'\u00e0 l'exp\u00e9diteur. Cependant, tout dans cette vie a un co\u00fbt, et ici vous aurez besoin d'un courtier. Mais pour les grandes syst\u00e8mes, ce compromis en vaut la peine (contrairement \u00e0 vos applications web typiques).<\/p>\n<p>Si le courtier est responsable de la journalisation distribu\u00e9e plut\u00f4t que d'un syst\u00e8me de messagerie traditionnel, il est possible de tirer parti de fonctionnalit\u00e9s additionnelles. Le transport peut \u00eatre mis \u00e0 l'\u00e9chelle lin\u00e9aire presque aussi bien qu'un syst\u00e8me de fichiers distribu\u00e9. Les donn\u00e9es peuvent \u00eatre stock\u00e9es dans les journaux assez longtemps, ce qui nous donne non seulement un \u00e9change de messages, mais aussi un stockage d'informations. Un stockage \u00e9volutif sans crainte d'obtenir un \u00e9tat global modifiable.<\/p>\n<p>On peut ensuite utiliser un m\u00e9canisme de traitement de flux avec \u00e9tat pour ajouter des outils de base de donn\u00e9es d\u00e9claratifs aux services consommateurs. C'est une pens\u00e9e tr\u00e8s importante. Tant que les donn\u00e9es sont stock\u00e9es dans des flux communs, auxquels tous les services peuvent acc\u00e9der, l'agr\u00e9gation et le traitement effectu\u00e9s par le service sont priv\u00e9s. Ils se retrouvent isol\u00e9s dans un contexte strictement limit\u00e9.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/01c8beabb9a02e4c06dffb84f9161324.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>\u00c9liminez la dichotomie des donn\u00e9es en divisant le flux d'\u00e9tats immuables. Ajoutez ensuite cette fonctionnalit\u00e9 \u00e0 chaque service gr\u00e2ce au traitement de flux avec \u00e9tat.<\/i><\/p>\n<p>Ainsi, si votre service doit travailler avec des commandes, un catalogue de produits, des stocks, il aura un acc\u00e8s complet : vous serez le seul \u00e0 d\u00e9cider quelles donn\u00e9es amalgamer, o\u00f9 les traiter et comment elles doivent \u00e9voluer dans le temps. Bien que les donn\u00e9es soient partag\u00e9es, leur manipulation est totalement d\u00e9centralis\u00e9e. Elle s'effectue \u00e0 l'int\u00e9rieur de chaque service, dans un monde o\u00f9 tout se passe selon vos r\u00e8gles.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/4b2635ad8ddd18f455eea654e472f85e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Partagez les donn\u00e9es de mani\u00e8re \u00e0 ne pas compromettre leur int\u00e9grit\u00e9. Encapsulez la fonction, et non la source, dans chaque service o\u00f9 elle est n\u00e9cessaire.<\/i><\/p>\n<p>Il arrive que des donn\u00e9es doivent \u00eatre transf\u00e9r\u00e9es en masse. Parfois, un service n\u00e9cessite un ensemble historique local de donn\u00e9es dans le moteur de base de donn\u00e9es choisi. L'essentiel est que l'on peut garantir qu'en cas de besoin, une copie peut \u00eatre restaur\u00e9e \u00e0 partir de la source gr\u00e2ce \u00e0 un appel au m\u00e9canisme de journalisation distribu\u00e9e. Les connecteurs dans Kafka s'acquittent tr\u00e8s bien de cette t\u00e2che.<\/p>\n<p>Ainsi, l'approche examin\u00e9e aujourd'hui pr\u00e9sente plusieurs avantages :<\/p>\n<ul>\n<li>Les donn\u00e9es sont utilis\u00e9es sous forme de flux partag\u00e9s, qui peuvent \u00eatre conserv\u00e9s longtemps dans les journaux, et le m\u00e9canisme de gestion des donn\u00e9es partag\u00e9es est int\u00e9gr\u00e9 dans chaque contexte sp\u00e9cifique, permettant aux services de fonctionner facilement et rapidement. De cette fa\u00e7on, il est possible d'\u00e9quilibrer la dichotomie des donn\u00e9es.<\/li>\n<li>Les donn\u00e9es provenant de services divers peuvent facilement \u00eatre regroup\u00e9es. Cela simplifie l'interaction avec les donn\u00e9es partag\u00e9es et \u00e9limine le besoin de maintenir des ensembles de donn\u00e9es locaux dans la base de donn\u00e9es.<\/li>\n<li>Le traitement d'\u00e9v\u00e9nements avec \u00e9tat ne fait que mettre en cache les donn\u00e9es, tandis que la source de v\u00e9rit\u00e9 reste les journaux partag\u00e9s, donc le probl\u00e8me de la d\u00e9t\u00e9rioration des donn\u00e9es au fil du temps est moins aigu.<\/li>\n<li>En essence, les services sont pilot\u00e9s par les donn\u00e9es, ce qui signifie qu'en d\u00e9pit de la croissance continue des volumes de donn\u00e9es, les services peuvent toujours r\u00e9agir rapidement aux \u00e9v\u00e9nements commerciaux.<\/li>\n<li>Les probl\u00e8mes de scalabilit\u00e9 reposent sur le courtier, et non sur les services. Cela r\u00e9duit consid\u00e9rablement la complexit\u00e9 de la r\u00e9daction des services, car il n'est pas n\u00e9cessaire de se soucier de la scalabilit\u00e9.<\/li>\n<li>L'ajout de nouveaux services ne n\u00e9cessite pas de modifier les anciens, facilitant ainsi la connexion de nouveaux services.<\/li>\n<\/ul>\n<p>\nComme vous pouvez le voir, c'est plus qu'un simple REST. Nous avons obtenu un ensemble d'outils qui permet de travailler avec des donn\u00e9es partag\u00e9es de mani\u00e8re d\u00e9centralis\u00e9e.<\/p>\n<p>Dans l'article d'aujourd'hui, tous les aspects n'ont pas \u00e9t\u00e9 couverts. Nous devons encore d\u00e9terminer comment \u00e9quilibrer la m\u00e9thode \u00ab requ\u00eate-r\u00e9ponse \u00bb et la m\u00e9thode orient\u00e9e \u00e9v\u00e9nements. Mais nous nous pencherons l\u00e0-dessus la prochaine fois. Il y a des sujets \u00e0 approfondir, comme pourquoi le traitement d'\u00e9v\u00e9nements avec \u00e9tat est si avantageux. Nous en parlerons dans le troisi\u00e8me article. Il existe \u00e9galement d'autres constructions puissantes dont nous pouvons b\u00e9n\u00e9ficier si nous y recourons, comme <noindex><a rel=\"nofollow\" href=\"https:\/\/cwiki.apache.org\/confluence\/display\/KAFKA\/KIP-98+-+Exactly+Once+Delivery+and+Transactional+Messaging\">Exactement Une Fois Traitement<\/a><\/noindex>. Cela change les r\u00e8gles du jeu pour les syst\u00e8mes d'affaires distribu\u00e9s, car cette structure assure des garanties de transactions pour <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/X\/Open_XA\">XA<\/a><\/noindex> de mani\u00e8re \u00e9volutive. C'est ce dont il sera question dans le quatri\u00e8me article. Et enfin, nous devrons passer en revue les d\u00e9tails de la mise en \u0153uvre de ces principes.<\/p>\n<p><img decoding=\"async\" alt=\"Dichotomie des donn\u00e9es : repenser notre rapport aux donn\u00e9es et aux services\" src=\"\/wp-content\/uploads\/2020\/05\/f66eadcc538cf3da74ccb120e1de2ae7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMais pour l'instant, souvenez-vous simplement de ce qui suit : la dichotomie des donn\u00e9es est la force avec laquelle nous sommes confront\u00e9s lors de la cr\u00e9ation de services d'affaires. Et nous devons en prendre conscience. L'objectif est de renverser toute la situation et de consid\u00e9rer les donn\u00e9es partag\u00e9es comme des objets de premi\u00e8re classe. Le traitement des flux d'\u00e9tat offre un compromis unique pour cela. Il \u00e9vite les \u00ab composants God \u00bb centralis\u00e9s qui freinent le progr\u00e8s. De plus, il garantit la rapidit\u00e9, l'\u00e9volutivit\u00e9 et la r\u00e9silience des pipelines de streaming de donn\u00e9es et les int\u00e8gre dans chaque service. Ainsi, nous pouvons nous concentrer sur un flux de conscience commun auquel tout service peut se connecter et avec lequel il peut travailler. Les services deviennent donc plus \u00e9volutifs, interchangeables et autonomes. Par cons\u00e9quent, ils auront non seulement une bonne apparence sur les tableaux de marqueurs et lors de la validation des hypoth\u00e8ses, mais fonctionneront et \u00e9volueront pendant des d\u00e9cennies. <\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rVZl\/\">En savoir plus sur le cours.<br \/>\n<\/a><\/noindex><\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/504310\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0423 \u043d\u0430\u0441 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u0432 \u0438\u044e\u043d\u0435 OTUS \u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043a\u0443\u0440\u0441 \u00ab\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u041f\u041e\u00bb, \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0447\u0435\u043c \u043c\u044b \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u043c. \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441\u043e \u0432\u0441\u0435\u0439 \u044d\u0442\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u0441 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438 \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430, \u0442\u043e \u0432\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0439. \u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0441\u0435\u0442\u044c\u044e, \u043d\u0435\u043f\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":83249,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-83248","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=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\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\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam\" \/>\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\u0414\u0438\u0445\u043e\u0442\u043e\u043c\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445: \u043f\u0435\u0440\u0435\u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam\" \/>\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-05-29T17:42:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-29T17:42:48+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\udd47Dichotomie des donn\u00e9es : repenser notre relation aux donn\u00e9es et aux services | ProHoster","description":"Bonjour \u00e0 tous !","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam","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\u0414\u0438\u0445\u043e\u0442\u043e\u043c\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445: \u043f\u0435\u0440\u0435\u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam","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-05-29T17:42:48+00:00","article:modified_time":"2020-05-29T17:42:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"83248","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 15:22:24","updated":"2022-09-30 09:53:41","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\/83248","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=83248"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/83248\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/83249"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=83248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=83248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=83248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}