Trampoline
NOTE: If you want to use examples provided (microservice-example-gradle & microservice-example-maven), please, clone the repository instead of downloading release zip. They need .git folder due to git related plugins specified on pom.xml and build.gradle
Wiki
Check Trampoline's wiki: English & Spanish
https://m.youtube.com/watch?v=rv-TPTU3L_o&t=22s
Description
Welcome to Trampoline!
Are you Admin Spring Boot locally? Are you tired of that set of scripts? Relax, Trampoline has come into your life.
The aim is to help during the course of developing an application based on the paradigm of microservices with Spring Boot. How? Easy, thanks to a comfortable interface you can declare new microservices, start instances, restart and kill them.
Also you will be able to:
- Admin Spring Boot locally (fully support for v1.x and v2.x)
- Use configurable Actuator Endpoints and VM arguments
- Register microservices directly from a GIT URL
- Monitor memory usage for each instance, capturing their metrics every 30 seconds
- Monitor instances and trace information at any point in time
- Interact with Git using HTTPS or SSH
- See Git branch and last commit on instances
- Checkout branch, pull code and restart instances with a single mouse click
- Define microservices groups and launch them all with one click
- Monitor microservies deployed on other machines
Requirements
- Unix or Windows OS
- Java and Apache Maven or Gradle Wrapper
- Include your Gradle Wrapper next to your build files if your choice is Gradle as a Build Tool
- Include Spring Boot Actuator in your microservices
- Set up logging.path and/or logging.file properties in your microservices in order to be able to visualize logs
- Set up Git Info plugin in your microservices to see Git information on deployed instances (see examples provided)
How do I make it work?
To Admin Spring Boot locally:
- With the Trampoline project checked out go to the
trampoline
sub-folder - Now start
trampoline
, for instance with the well known commands mvn spring-boot:run or ./gradlew (or gradlew.bat) bootRun - Once started go to localhost:8080
- If using Apache Maven then be sure to enter the path to your installation here
- Go to the Settings Section and add all your microservices
- Finally you just have to start your instances in the Instances Section
FAQ
- How microservices groups are launched?
All microservices are launched secuantially, folowing the order specified, applying defined delay for each instance.
- Which build tools are Trampoline compatible with in my microservices?
You can use Apache Maven or Gradle Wrapper.
- Can I run it on any OS?
Theoretically yes, but it has only been fully tested on Windows and Mac OS.
- I am working with Spring Boot 1.3 or less and instances do not start
You should add security starter to your microservices pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
- What are the plugins I should use to retrieve Git information?
"gradle.plugin.com.gorylenko.gradle-git-properties:gradle-git-properties:1.4.17"
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.2.3</version>
</plugin>
- TransportException: .git: Authentication is required but no CredentialsProvider has been registered]
If you don't have git in your local machine you can easily solve it by adding credentials on Settings View
- Will I have to enter data all the time?
No, information introduced will be stored in a settings file along with scripts to launch each microservice 😁. These files are stored in a trampoline
folder inside your Documents
folder on Mac and Linux or inside the Temp
folder on Windows.
- External Instances will be stopped?
No, only instances under 127.0.0.1
will be stopped using /shutdown
endpoint.
Contributing
Start Admin Spring Boot locally and then click the star button to make the author and his neighbors happy 😊. Then fork the repository and submit a pull request for whatever change you want to be added to this project.
If you have any questions or improvement proposal, just open an issue.