De la théorie à la pratique d'atterrissage « micro-services » (annexe 80 télécharger PPT)

Auteur | Cheng Chao

Modifier | Ash

Si la théorie des termes techniques au cours des dernières années, chaud, micro service doit avoir une place. Pour les micro-services ont été présentés beaucoup, mais beaucoup de flux, mais dans le cadre de l'architecture introduite, nous rappelant des scènes des châteaux en l'air. Ceci est un essai sur la théorie et la pratique des micro-services, répondre mot-clé « micro-services » pour les nausées de 80 Téléchargez le PPT. Si vous voulez une étude plus approfondie du service micro, voir les temps d'aujourd'hui pousser la barre.

EDITORIAL

A été très intéressé par les micro-services, parce que la transformation de l'infrastructure de l'entreprise ont simplement la possibilité de contact avec des micro-services, a acheté des livres, demandez à un grand nombre de micro-service Daniel alors qu'il fait beaucoup de résumé, écrit dans les années 80 ppt, je suppose que I une compréhension de la barre micro-service, le service micro lui-même des personnes différentes ont des interprétations différentes, mais je de mon propre point de vue de parler de ce micro-services Oui.

À l'heure actuelle introduire l'utilisation de nombreux livres sur le marché, ou beaucoup d'articles connexes sont le cadre écrit, ou de l'architecture, en fait, pour les étudiants qui viennent de commencer est bientôt susceptible de causer service de micro est entasser un tas de cadres et composants, donc aujourd'hui Je suis du point de vue de la théorie et la pratique de dire des micro-services.

Internet est une direction moderne lorsque la société a développé une certaine taille, une certaine grande échelle, combinaison des trois informatique en nuage et les grandes données, formant ainsi une plate-forme, des micro-services repose sur ce projet.

Tout d'abord, ce qui est micro-services

1, une architecture de système commun

Notre architecture actuelle du réseau, il y a trois contacts réguliers, comme indiqué ci-dessous:

Peut être vu de la figure, il y a trois modes, le premier mode est une application monolithique de schéma d'architecture centralisée est le plus couramment utilisé. Le second est une architecture distribuée, la plus application commune est de diviser une grande tâche à une autre machine dans le calcul, et, finalement, une consolidation de serveur est un bon résultat reflète une architecture distribuée. Le troisième est l'architecture micro-service.

2, le véritable défi à relever

expansion difficile

Avant de nous développons des projets en utilisant une machine virtuelle sur la ligne tous les besoins du projet pour ajouter la machine toujours rencontrer l'insuffisance des ressources, mais aussi prendre le processus d'approbation de l'ordre de travail très complexe, mais aussi de continuer avec le personnel d'exploitation et d'entretien PK, jusqu'à utiliser les ressources, tout au long du processus de longue haleine, la machine est limitée par des contraintes de ressources applicables.

difficultés de déploiement

Sur la ligne à chaque personne qui utilise un déploiement spécial, ont besoin de communiquer en ligne et en ligne du personnel de l'environnement avant d'en ligne, en ligne pour éviter les erreurs.

rollback Publié difficile

Après chaque trouvé le problème sur la ligne, le besoin de recompiler le code ci-dessus à partir du tronc svn, mais parfois en raison de divers problèmes rollback tombe en panne, recompilation et conduire à temps rouler lentement.

Les difficultés d'adaptation des nouvelles technologies

Si vous avez l'intention d'utiliser un langage de développement différents dans les différents modules, ou si vous voulez très difficile à faire dans l'architecture ou la mise à niveau de la technologie ne sont pas pris en charge.

difficultés de développement rapide

monomère Projet utilisé dans l'application, qui intègre de nombreux modules fonctionnels, le développement de fonctionnalités rapide et ne peut pas facilement tirer un corps de lancement.

difficulté test

Testeurs aucun cadre tests automatisés, ou d'un système Mock, ce qui en seulement simples processus de tests manuels, et la couverture fonctionnelle est pas exhaustive et d'autres problèmes se produisent souvent.

difficultés d'apprentissage

Nous avons donc les problèmes mentionnés ci-dessus rencontrés dans le projet d'application des projets monomères appelés.

3, la définition des micro services

Le Microservice style architectural est une approche de développement d'une application unique comme une suite de petits services, chacun fonctionnant dans son propre processus et la communication avec des mécanismes légers, souvent une API ressource HTTP. Ces services sont construits autour des capacités commerciales et de manière indépendante déployable par entièrement automatisé machines déploiement. Il y a un minimum de gestion centralisée de ces services, qui peuvent être écrits dans différents langages de programmation et utilisent différentes technologies de stockage de données.

- James Lewis et Martin Fowler

Il a résumé un total de quatre points caractéristiques:

  • Certains services indépendants liste des systèmes de composants communs

  • seul déploiement, en cours d'exécution dans son propre processus

  • Chaque portion comme un développement commercial indépendant

  • gestion distribuée

4 différence, les micro-services et SOA

  • Juste un micro-services architecture est bien conçu des solutions orientées services de prestation de programmes SOA.

  • Les micro-services ont tendance à générer de la valeur par le biais de l'autonomie gouvernementale.

  • Micro Services et pensé développement très agile combiner une définition plus claire du service, tout en réduisant la complexité de l'entreprise de développement ESB.

  • Micro Services est une idée soa de raffinage!

  • SOA est lourd ESB, une passerelle micro-services légers.

5, la définition des micro services Résumé

En second lieu, en ce qui concerne les services de modélisation micro

Nous parlons de la modélisation, la première pensée est la conception du contenu pilotée par le domaine, oui, modélisation idée du modèle micro-services repose sur des idées, ici, je vais donner une description simple de ce type de service est considéré comme un bon service.

1, le couplage lâche et de haute cohésion

  • Couplé: services Librement ne ont pas besoin de modifier une modification tandis que l'autre, chacun des services micro et le déploiement peuvent être modifiés individuellement.

  • cohésion élevée: la transaction concernée ensemble, d'exclure sans rapport, les affaires ensemble ne peut faire la même chose.

Il peut être clairement exprimée par le schéma suivant:

2, le contexte borné

  • Bound: qui est divisé, les règlements, les limites, les limites.

  • Contexte: l'ensemble des processus métier.

Lorsque nous examinons le système existant, souvent ensemble mixte en présence de systèmes modèles, la frontière entre les deux est très vague. À ce stade, vous devez tracer une limite pour l'ensemble du système, et seront résumés dans un large éventail de boules de boue. Souvent, dans des projets où nous sommes, il est souvent l'apparition de la version itérative du projet quand une telle situation, celle-ci conduisant à plus en plus difficile de maintenir le code.

3, contexte progressivement

La division méthode: identifier le début d'un contexte borné à gros grains, le contexte de ces ensembles bornés à gros grains peut inclure certains contextes intégrés ces contextes imbriqués ne sont pas directement visibles à l'extérieur.

Directives d'exposition: contexte de gros grains ou d'un service exposé de contexte imbriqué, ce qui est plus raisonnable, il devrait être structure organisée pour décider.

Comme le montre l'exemple ci-dessus deux chiffres, un schéma de traitement des commandes, la gestion des stocks et la réception des marchandises trois modules sont les élever dans les services d'entrepôt tôt dans le développement de projets, les services financiers de gestion des stocks d'acquisition de données, un accès direct aux services d'inventaire d'entrepôt interface de gestion sur elle. Avec l'évolution et la croissance de ces trois modules, un seul service ne peut pas répondre aux besoins de l'équipe commerciale et le développement, cette fois ces trois modules sont divisés se sont transformés en une structure Figure II, cette fois la gestion des commandes, la réception des marchandises et gestion des stocks, respectivement, sous la forme de services correspondant aux différentes équipes, les services financiers demande simplement des services de gestion des stocks, vous pouvez obtenir les données appropriées.

En troisième lieu, en ce qui concerne les micro services intégrés

1, le principe de l'intégration

services d'intégration micro pour faire le bien, peuvent rester autonomes, des modifications indépendantes peuvent être publiés et libérés.

  • Certains changements pour éviter perturbatrice de modifier le service ne peut pas conduire à des changements dans la consommation blessés au service.

  • API et de la technologie pour assurer l'indépendance de

  • Assurer la facilité d'utilisation de l'API

  • les détails de mise en uvre masquer interne

2, l'arrangement coopératif avec

organiser : Synchrone appeler un ensemble de services, en attente pour chaque service retourne le résultat. Connaître les avantages du processus d'affaires à chaque étape de la croix appelle le résultat du service, l'inconvénient est facile de supposer trop d'appels, trop de temps, ce qui entraîne l'instabilité de l'appelant.

collaboration : Appel asynchrone à un groupe d'appel de service ou d'un service à se joindre à la file d'attente, ce qui réduit le degré de couplage entre les services, le suivi des processus d'affaires pour faire un travail supplémentaire sur les services, mais le processus peut être complété par le consommateur, le service de rappel a informé les parties les résultats.

organiser

collaboration

3, gestion des versions

  • Comme modification destructrice retardée principe strict out

  • La détection précoce des changements perturbateurs conformément au contrat, la détection précoce par le test du service ou du côté consommateur changements perturbateurs

  • Les différentes versions de l'interface de la meilleure coexistence de deux versions coexistent

4, études de cas

Cas 1: Comment diviser une configuration de système monolithique

Quand on voit un système monolithique, souvent le premier à démarrer scission de la base de données, ce qui est une bonne table du code de planification financière, qui est le code de la table des clients, les deux ont été séparés, cette fois la structure d'application système monolithique et pas de scission, il nous faut aussi lors de la conception d'une seule pièce du système, des représentants des clients sur le terrain de la table et le code financier ne peuvent pas être ensemble mixte, ou à une autre table conçue pour faciliter notre avenir partagé, bien que le système est ensemble , mais une scission se préparer à l'avenir, les applications vont enfin diviser le déploiement indépendant, ce processus est terminé.

Cas II: Comment les données d'accès dans le tableau des systèmes

Il y a deux services, à savoir, des catalogues et des finances, a quitté la scène des services financiers appeler directement le catalogue de la feuille de données pour l'acquisition de données, les services d'acquisition de données à travers cette façon, il y a un problème, tout d'abord, nous sommes incapables de contrôler les services financiers il est comment obtenir les données, si l'impact sur notre table de données, deuxième du point de vue de la conception augmente sans doute le degré de couplage entre les appels système, les dépendances entre les systèmes a également été renforcée. Donc, se transforma en une droite, à gauche à droite simplement pour fournir une interface de service à l'appel.

Cas III: Service Design de mauvais goût

Dans un tel système, le système ABCD de quatre séries, cela exige également que les quatre systèmes sont très disponibles, si un système d'un est en panne ou le problème affectera directement tous les autres systèmes, nous avons donc conçu micro services de temps d'architecture pour tenter d'éviter une telle architecture centralisée.

Quatrièmement, comment l'utilisation des micro-services à grande échelle

Certes, lorsque nous utilisons des micro-services, il y a beaucoup à faire attention et des points d'intérêt:

1, échec partout

Réseau est peu fiable, juste essayer de limiter le facteur qui cause le problème, après avoir atteint une certaine taille, l'échec est inévitable.

2, les exigences transverses

débit de service, la disponibilité et la durabilité des données, etc. Ces exigences doivent mesurer en continu et assurer un service acceptable pour atteindre l'objectif.

3, la rétrogradation fonctionnelle

Construire des systèmes résilients, en raison des fonctions micro-services dispersés, dans le micro-service possible machine vers le bas, en mesure d'assurer une élasticité de déclassement en toute sécurité

4, de la vulnérabilité Anti service

Afin de ne pas causer de graves effets en cascade doivent définir correctement le délai d'attente pour obtenir des cloisons ou couche d'isolation de circuit ouvert, etc., afin d'éviter d'appeler un malsain de service en premier lieu.

temps mort

Définir le délai d'attente pour les appels de service en aval est important de définir le délai d'attente trop long, il est possible de ralentir le système en aval, peut être trop courte pour compléter les services en aval non traités. Le mieux est de définir un délai d'attente par défaut, lorsqu'un délai d'attente se produit, les enregistrements du journal pour voir ce qui est arrivé, et faire des ajustements à la réponse.

briseur

disjoncteurs, lorsque la défaillance d'un certain nombre de demandes de service se produisent en aval, un court-circuit est ouvert, la requête suivante à l'échec rapide. Après un temps de pause pour voir si les services en aval de service, remis à zéro le disjoncteur.

cloison

Mettre en place un pool de connexion individuelle pour chaque service en aval. Libérer délai d'attente du disjoncteur ressources et de ressources limitées, la cloison première fois pour faire en sorte que cela ne devienne pas limitative. Il y a une cloison de demande de rejet, pour éviter la saturation des ressources, appelé délestage.

isolement

Lorsque le service est hors-ligne en aval, en amont des services ne sont pas affectés. Un service d'étage est appelé à devenir isolé.

5, puissance, etc.

opération idempotent, l'impact de façon répétée effectuée, sont les mêmes que le premier impact sur les performances. Peut être conçu pour fonctionner certains services tels que l'électricité, envoyer les commandes des clients une telle intégration.

6, l'extension

Augmenter la charge, réduire la latence.

  • hôte plus puissant: l'expansion verticale, une meilleure machine.

  • Charge de Split: Appuyez sur Interval dans différents services de micro-entreprises

  • Le risque de propagation: les données à travers la pièce, sauvegarde à distance

  • L'équilibrage de charge: Évitez les points uniques de défaillance Service

  • Séparation des travaux: exécution de service indépendant d'emploi

  • Refonte: conception générale de la nécessité du système à considérer 10 fois la hausse des capacités. Pour redessiner le système pour faire face à grande échelle, il est un signe de réussite.

7, la base de données élargie

  • La disponibilité des services

  • Services de persistance: plusieurs copies

  • Lire l'expansion des données: lecture séparée et écriture

  • : sous Extended écrit table et entrepôts

  • installations de base de données Partage: facile à former un point de défaillance unique

  • CQRS: commande pour interroger la séparation des tâches

8, l'utilisation du cache

Par le résultat de l'opération précédente stockée pour les demandes ultérieures d'utiliser les résultats de cela, sans avoir à recalculer fleurs ou d'une requête.

la mise en cache côté client

Les résultats obtenus par le cache du client, le client décide quand d'obtenir une nouvelle copie. Il est généralement prévu en aval du délai d'expiration du service tampon. Le cache client peut réduire le nombre d'appels de réseau, et l'un des meilleur moyen de réduire la charge des services en aval, les données de mise en cache côté client, de sorte que les données ne parviennent pas à faire un travail supplémentaire.

mise en cache côté service

Serveur poignées de cache, facile à suivre et optimiser le taux de succès de cache.

proxy Cache

Cache entre les services et les clients, tels que les CDN et d'autres agents ou direction. Pour tout opaque client et serveur

la mise en cache HTTP

Utiliser le cache d'écriture

Ecrire dans le cache local, puis les données sont écrites en aval à un moment donné, peut-être plus source de données normalisées.

Utiliser un tampon élastique

Service en aval est indisponible, le client peut mettre en cache les données peuvent échouer.

Service caché Source

service de protection des sources, ne sont pas directement exposés au service source. Si un défaut de cache, ne parviennent pas immédiatement, la reconstruction asynchrone cache.

Keep it simple

Évitez d'utiliser trop de cache local, le cache, plus les données les plus susceptibles d'échouer, plus il est difficile d'assurer la fraîcheur des données.

9, escamotable automatique

prédiction télescopique télescopique Responsive

10, CAP Théorème

Il y a trois domaines dans les systèmes distribués doivent peser les uns des autres: la cohérence, la disponibilité et la tolérance de partition. Ce théorème d'annoncer que nous ne pouvons garantir un maximum de deux sur trois. système CA n'existe pas dans un système distribué.

Sixième, résumé étape:

Dans la première partie, nous mettons en évidence quelques-unes des idées impliquées dans des micro-services, nous résumons comment concevoir un service relativement bonne, et présente des concepts et des services liés au domaine de l'aide de micro-driven vous apprenez à maîtriser.

Puis, dans la deuxième partie de la présentation, je serai dans la façon d'utiliser les services de micro-transaction, tests automatisés comment faire, ce que Devops comment l'équipe de gestion de la loi de Conway, et se concentre sur des projets concrets, basés sur la façon dont Spring boot / netflix à construire micro-services.

Les auteurs introduisent

Cheng Chao, architectes YeePay, gamme de produits plate-forme mobile directeur technique, environ 10 ans d'expérience de développement. paiement sur Internet, une meilleure compréhension de la direction du fournisseur d'électricité de l'entreprise, spécialisée dans le domaine de la technologie distribuée, l'optimisation des performances et ainsi de suite, exécutées simultanément, gros volumes de données a un fort intérêt.

texte recommandé aujourd'hui

Cliquez ci-dessous pour lire l'image

Smartisan mot open source de traitement Big Bang, petites solutions innovantes à grand point de douleur?

« Happy family » Li Li-chun était aimé, elle avait 63 ans écrasé quatre côtes encore insisté sur le tournage
Précédent
Logo de la marque vous soudainement capable de jouer ces nouveaux trucs!
Prochain
190322 Image Temps de conversation version jeune adulte vs édition Wangjun Kai Wang Junkai
5 hôtesse festival Gordon printemps, salon de 40 mètres carrés de mariage, le cancer total transféré encore rire de la vie
nouveau film « équipe Raptor » Nom complet implique l'exposition de DC à l'histoire
Q Press Shu Google a publié une nouvelle technologie de compression d'image, des économies allant jusqu'à 75% de la bande passante, Java 9 introduit AOT mode de compilation, comment le logiciel d'int
"Engager la machine Story" jambon U12 +
« TFBOYS « » Nouvelles Xi Yi 190322 mille éperlan magie du visage changeant collection, la direction de regarder oh
Nintendo a publié un nouvel hôte après le cours de l'action baisse pas, pourquoi est-ce?
Deng Chao Sun Hua Biao photo backstage: Tang Yan Yang Mi-cadre, Yang Yang que V, GJM profil de hauteur
« Tyrants » villageois de richesse fou d'appui ont été emmenés ce jour-là, les villageois sont choqués
« La Grande Dame Mai Seer » au deuxième trimestre a publié de nouvelles affiches retour Décembre
« Complexe avec 4 » billets de Premiere ont été vendus pour 1000 yuans! Utilisateur: plus dur que la benne de billets Fête du Printemps
190322 « Big Ice Kids » de nouvelles images fixes a frappé un styliste Yi Xi éperlan mille technologie beaucoup amélioré