Conception d'architecture: processus de déploiement et de gestion de l'automatisation des services

Code source de cet article: GitHub · cliquez ici || GitEE · cliquez ici

1. Service distribué

À partir d'un système d'architecture distribuée classique, il est très courant de diviser dix modules de microservices indépendants, puis différents développeurs divisent le travail en plusieurs blocs de services, responsables du développement et de la maintenance quotidiens, et il y aura des différences de version entre les microservices. Nature. Par exemple, la version de développement du service utilisateur doit être 7.0 et les autres services peuvent être supérieurs ou inférieurs à cette version, une intégration continue pour la version du service est donc nécessaire.

Désormais, une pile de technologies de libération et de gestion automatiques de services plus courants: outil d'intégration continue Jenkins, conteneur Docker, gestion de conteneurs K8S.

Deuxièmement, l'intégration de Jenkins

Jenkins peut facilement intégrer des référentiels de code couramment utilisés, tels que GitHub, SVN, etc., et fournir des capacités d'intégration continue. L'ensemble du code peut être construit, empaqueté et déployé dans un processus de gestion automatique. Une fois le code soumis, il sera automatiquement libérés dans l'environnement spécifié. Réduisez considérablement la charge de travail inutile.

  • Les développeurs soumettent le code local;
  • Le référentiel de code notifie Jenkins via le mécanisme Hook;
  • Jenkins obtient la dernière compilation et empaquetage de code;
  • Générez un fichier image Docker et téléchargez-le dans l'entrepôt central;
  • Déclenchez éventuellement des mécanismes de publication tels que le défilement ou l'échelle de gris;

S'il y a un problème dans tout le processus de publication du code, vous pouvez rapidement revenir à la version précédente. Il y a très peu de processus manuels. En tant que programmeur, plus le temps de travail est long, meilleur est le processus automatisé. Plus l'architecture du système est complexe, plus la gestion automatique est requise pour le déploiement des services, l'isolation des données et de l'environnement, la tolérance aux catastrophes, les niveaux de gris et l'expansion dynamique. Le système technique susmentionné peut facilement résoudre ces problèmes.

Trois, conteneur Docker

Docker est un moteur de conteneur d'applications open source avec trois concepts de base: image-miroir, conteneur-conteneur et référentiel-entrepôt; les développeurs peuvent empaqueter des applications et des packages dépendants dans un conteneur portable. Le conteneur utilise complètement le mécanisme de sandbox., Il n'y aura pas être n'importe quelle interface entre eux, puis publier sur n'importe quel serveur populaire, peut également réaliser la virtualisation.

L'augmentation du nombre de modules de microservices évoquée plus haut nécessite une gestion continue des outils d'intégration.De même, lorsque les conteneurs Docker deviennent de plus en plus complexes, la gestion et la planification posent également problème.

Quatre, gestion des conteneurs K8S

Kubernetes est abrégé en K8S, utilisé pour une gestion et une planification flexibles et pratiques des conteneurs Docker, fournissant un mécanisme pour le déploiement, la planification, la mise à jour et la maintenance des applications, rendant le déploiement d'applications conteneurisées simple et efficace, prenant en charge le déploiement automatisé, l'évolutivité à grande échelle et gestion des conteneurs d'applications.

Dans l'architecture d'environnement de déploiement ci-dessus, Docker peut être compris comme un composant sur Kubernetes, qui est géré de manière uniforme via K8S.

Un tel ensemble de systèmes techniques de mise en service et de gestion de l'environnement est maintenant très couramment utilisé. Du point de vue du développement, il est préférable de se familiariser avec le processus d'utilisation de base, et le principe et la logique ne sont pas responsables, mais l'opération réelle est compliquée , généralement par une gestion professionnelle de l'exploitation et de la maintenance, qui peut expliquer clairement l'environnement L'idée de construction est également un problème courant dans les entretiens.

Cinq, adresse de code source

GitHub地址:知了一笑
https://github.com/cicadasmile/spring-cloud-base
GitEE地址:知了一笑
https://gitee.com/cicadasmile/spring-cloud-base

Lecture recommandée: système de programmation de finition

Numéro de série nom du projet Adresse GitHub Adresse GitEE conseillé
01 Java décrit des modèles de conception, des algorithmes et des structures de données GitHub · cliquez ici GitEE · Cliquez ici ☆☆☆☆☆
02 Fondation Java, accès concurrentiel, orienté objet, développement Web GitHub · cliquez ici GitEE · Cliquez ici ☆☆☆☆
03 Explication détaillée du cas des composants de base du microservice SpringCloud GitHub · cliquez ici GitEE · Cliquez ici ☆☆☆
04 Cas complet du combat réel de l'architecture de microservice SpringCloud GitHub · cliquez ici GitEE · Cliquez ici ☆☆☆☆☆
05 Premiers pas avec l'application de base du framework SpringBoot à avancé GitHub · cliquez ici GitEE · Cliquez ici ☆☆☆☆
06 Le framework SpringBoot intègre et développe un middleware commun GitHub · cliquez ici GitEE · Cliquez ici ☆☆☆☆☆
07 Cas de base de la gestion des données, de la distribution, de la conception d'architecture GitHub · cliquez ici GitEE · Cliquez ici ☆☆☆☆☆
08 Série Big Data, stockage, composants, informatique et autres frameworks GitHub · cliquez ici GitEE · Cliquez ici ☆☆☆☆☆

Je suppose que tu aimes

Origine blog.csdn.net/cicada_smile/article/details/110150448
conseillé
Classement