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 | ☆☆☆☆☆ |