Trampoline - Gestion locale des applications de démarrage Spring

Trampoline - Gestion locale des applications de démarrage de printemps

1. Aperçu du trampoline

Historiquement, un moyen simple de comprendre l'état de notre système au moment de l'exécution consistait à l'exécuter manuellement dans un terminal. Dans le meilleur des cas, nous automatiserions tout à l’aide de scripts.

Bien entendu, le mouvement DevOps a changé tout cela et, heureusement, notre industrie a bien dépassé cette approche. Trampoline is one of the solutions that solve this problem (for Unix and Windows users) in the Java ecosystem.

L'outil est construit sur Spring Boot etaims to help Spring Cloud developers in their daily development routine grâce à une interface utilisateur propre et fraîche.

Voici certaines de ses capacités:

  • Démarrer des instances en utilisant Gradle ou Maven en tant qu'outil de construction

  • Gérer les instances de démarrage printanier

  • Configurer les arguments de la VM pendant la phase de lancement

  • Surveiller les instances déployées: utilisation de la mémoire, journaux et traces

  • Fournir des commentaires aux auteurs

Dans cet article tout à fait, nous allons passer en revue le problème que Trampoline aspire à résoudre, ainsi que l'examiner dans la pratique. Nous allons faire une visite guidée qui couvre l'enregistrement d'un nouveau service et le démarrage d'une instance de ce service.

image

2. Microservices: déploiement unique mort

Comme nous en avons discuté, le temps où les applications étaient déployées à l'aide d'une seule unité de déploiement est révolu.

Cela a des conséquences positives et malheureusement aussi négatives. Bien que Spring Boot et Spring Cloud vous aident dans cette transition, vous devez prendre en compte certains effets secondaires.

The journey from monoliths to microservices has introduced a huge improvement to the way developers structure their applications.

Comme nous le savons tous, il n’est pas la même chose d’ouvrir un projet avec un ensemble de 30 classes, bien structuré entre les packages et avec les tests d’unités correspondants, comme d’ouvrir une base de code monstre avec un grand nombre de classes, où les choses se compliquent facilement. .

Et ce n’est pas que cela - la réutilisabilité, le découplage et la séparation des préoccupations ont bénéficié de cette évolution. Bien que les avantages soient bien connus, énumérons certains d’entre eux:

  • Principe de responsabilité unique - important en termes de maintenabilité et de test

  • Résilience - la défaillance d'un service n'affecte pas les autres services

  • Haute évolutivité - des services exigeants peuvent être déployés dans plusieurs instances

Cependant, nous devons faire des compromis lorsque nous utilisons une architecture microservice, notamment en ce qui concerne les frais généraux de réseau et les déploiements.

Cependant, en se concentrant sur le déploiement,we lost one of the monolith’s advantages – the single deployment. Pour le résoudre dans un environnement de production, nous avons tout un ensemble d’outils de CD qui nous aideront et nous faciliteront la vie.

3. Trampoline: mise en place du premier service

Dans cette section, nous enregistrerons un service dans Trampoline et nous montrerons toutes les fonctionnalités disponibles.

3.1. Télécharger la dernière version

En accédant à Trampoline Repository, dans lesreleases section, nous pourrons télécharger la dernière version publiée.

Ensuite, démarrez Trampoline, par exemple en utilisantmvn spring-boot:runor./gradlew (ougradle.bat)bootRun.

Enfin, l'interface utilisateur est accessible àhttp://localhost:8080.

3.2. Inscription des services

Une fois que nous aurons Trampoline opérationnel,, allons à la sectionSettings où nous pourrons enregistrer notre premier service. Nous trouverons deux exemples de microservices dans le code source de Trampoline:microservice-example-gradle etmicroservice-example-maven.https://github.com/ErnestOrt/Trampoline

Pour enregistrer un service, les informations suivantes sont nécessaires:name*,default port*,pom or build location*,build tool*,actuator prefix, etVM default arguments.

Si nous décidons d'utiliser Maven comme outil de création, nous devrons d'abord définir notre emplacement Maven. Si nous décidons, cependant, d'utiliser un wrapper Gradle, il doit être placé dans notre dossiermicroservices. Rien d'autre ne sera nécessaire.

Dans cet exemple, nous allons configurer les deux:

image

 

À tout moment, nous pourrons consulter les informations du service en cliquant sur le boutoninfo ou les supprimer en cliquant sur le boutontrash.

Enfin, pour pouvoir profiter de toutes ces fonctionnalités, la seule exigence est d'inclureactuator starter (voir l'extrait de code pour un exemple) dans nos projets Spring Boot, ainsi que le point de terminaison/logfile via une journalisation bien connue Propriétés:


    org.springframework.boot
    spring-boot-starter-actuator

3.3. Gestion des instances de service

Maintenant, nous sommes prêts à passer à la sectionInstances. Ici, nous pourrons démarrer et arrêter les instances de service et également surveiller leur état, leurs traces, leurs journaux et leur consommation de mémoire.

Pour ce tutoriel, nous démarrons une instance de chaque service enregistré précédemment:

image

===

3.4. Tableau de bord

Enfin, passons un bref aperçu de la sectionDashboard. Ici, nous pouvons visualiser certaines statistiques, telles que l'utilisation de la mémoire de notre ordinateur ou des services enregistrés ou lancés.

Nous pourrons également vérifier si les informations Maven requises ont été introduites ou non dans la section des paramètres:

image

===3.5. Feedback

Enfin, nous pouvons trouver un boutonFeedback qui redirige vers le dépôt GitHub où il est possible de créer des problèmes ou de soulever des questions et des améliorations.

image

==4. Conclusion

Au cours de ce tutoriel, nous avons discuté du problème que Trampoline cherche à résoudre.

Nous avons également montré un aperçu de ses fonctionnalités, ainsi qu'un court tutoriel sur la façon d'enregistrer un service et de le surveiller.

Enfin, notez quethis is an open source project et vous êtes invités à contribuer.