«1. Обзор Trampoline
Исторически сложилось так, что простым способом понять состояние нашей системы во время выполнения было запустить ее вручную в терминале. В лучшем случае мы бы автоматизировали все с помощью скриптов.
Конечно, движение DevOps все изменило, и, к счастью, наша отрасль далеко ушла от этого подхода. Trampoline — одно из решений, решающих эту проблему (для пользователей Unix и Windows) в экосистеме Java.
Инструмент построен на основе Spring Boot и призван помочь разработчикам Spring Cloud в их повседневной работе благодаря чистому и свежему пользовательскому интерфейсу.
Вот некоторые из его возможностей:
-
Запуск экземпляров с использованием Gradle или Maven в качестве инструмента сборки. Управление экземплярами Spring Boot. Настройка аргументов виртуальной машины на этапе запуска. Отслеживание развернутых экземпляров: использование памяти, журналы и трассировки. Предоставление отзывов авторам. ~ В этой довольно статье мы рассмотрим проблему, которую Trampoline стремится решить, а также посмотрим на нее на практике. Мы совершим экскурсию по регистрации новой службы и запуску одного экземпляра этой службы.
2. Микросервисы: единое развертывание мертво
Как мы уже говорили, времена, когда приложения развертывались с использованием одного модуля развертывания, прошли.
Это имеет как положительные последствия, так и, к сожалению, отрицательные. Хотя Spring Boot и Spring Cloud помогают в этом переходе, есть побочные эффекты, о которых нам нужно позаботиться.
Переход от монолитов к микросервисам привел к значительному улучшению способов структурирования приложений разработчиками.
Как мы все знаем, открыть проект с набором из 30 классов, хорошо структурированных между пакетами и соответствующими юнит-тестами, это не то же самое, что открыть чудовищную кодовую базу с огромным количеством классов, где вещи легко усложниться.
Не только это — возможность повторного использования, разделение и разделение задач выиграли от этой эволюции. Хотя преимущества хорошо известны, давайте перечислим некоторые из них:
Принцип единой ответственности — важен с точки зрения ремонтопригодности и тестирования. Отказоустойчивость — сбой в одной службе не влияет на другие службы. Высокая масштабируемость — требовательные службы. может быть развернут в нескольких экземплярах
-
Но при использовании микросервисной архитектуры нам приходится сталкиваться с некоторыми компромиссами, особенно в отношении сетевых издержек и развертываний.
Однако, сосредоточившись на развертывании, мы потеряли одно из преимуществ монолита — единое развертывание. Чтобы решить эту проблему в производственной среде, у нас есть целый набор CD-инструментов, которые помогут и облегчат нашу жизнь там.
3. Trampoline: настройка первого сервиса
В этом разделе мы зарегистрируем сервис в Trampoline и покажем все доступные функции.
3.1. Скачать последнюю версию
Перейдя в репозиторий Trampoline, в разделе релизов мы сможем загрузить последнюю опубликованную версию.
Затем запустите Trampoline, например, с помощью mvn spring-boot:run или ./gradlew (или gradle.bat) bootRun.
Наконец, доступ к пользовательскому интерфейсу можно получить по адресу http://localhost:8080.
3.2. Регистрация сервисов
Как только мы запустим Trampoline, давайте перейдем в раздел настроек, где мы сможем зарегистрировать наш первый сервис. В исходном коде Trampoline мы найдем два примера микросервисов: microservice-example-gradle и microservice-example-maven.
Для регистрации службы необходима следующая информация: имя*, порт по умолчанию*, pom или местоположение сборки*, инструмент сборки*, префикс привода и аргументы виртуальной машины по умолчанию.
Если мы решим использовать Maven в качестве инструмента сборки, сначала нам нужно установить местоположение нашего Maven. Однако, если мы решим использовать оболочку Gradle, ее необходимо поместить в нашу папку microservices. Больше ничего не потребуется.
В этом примере мы настроим оба:
В любое время мы сможем просмотреть информацию об услуге, нажав кнопку информации, или удалить ее, нажав кнопку корзины.
«Наконец, чтобы иметь возможность пользоваться всеми этими функциями, единственным требованием является включение стартера привода (см. пример во фрагменте) в наши проекты Spring Boot, а также конечную точку /logfile через известные свойства ведения журнала:
~ ~~ 3.3. Управление экземплярами службы
Теперь мы готовы перейти к разделу «Экземпляры». Здесь мы сможем запускать и останавливать экземпляры службы, а также отслеживать их статусы, трассировки, журналы и потребление памяти.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
В этом руководстве мы запускаем по одному экземпляру каждой ранее зарегистрированной службы:
3.4. Панель инструментов
Наконец, давайте кратко рассмотрим раздел «Панель инструментов». Здесь мы можем визуализировать некоторые статистические данные, такие как использование памяти на нашем компьютере или зарегистрированные или запущенные службы.
Мы также сможем посмотреть, введена ли необходимая информация Maven или нет в разделе настроек:
3.5. Обратная связь
И последнее, но не менее важное: мы можем найти кнопку обратной связи, которая перенаправляет на репозиторий GitHub, где можно создавать проблемы или поднимать вопросы и улучшения.
4. Заключение
В ходе этого урока мы обсудили проблему, которую Trampoline призван решить.
Мы также показали обзор его функций, а также краткое руководство о том, как зарегистрировать сервис и как его контролировать.
Наконец, обратите внимание, что это проект с открытым исходным кодом, и вы можете внести свой вклад.
«
We’ve also shown an overview of its functionalities, as well as a short tutorial on how to register a service and how to monitor it.
Finally, note that this is an open source project and you are welcome to contribute.