1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lianqu1990-morphling

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Морфлинг

Введение

Морфлинг — это система развёртывания, разработанная на основе Spring Boot 1.5. Она проста в использовании и не требует сложных зависимостей: для работы достаточно MySQL. Система подходит для развёртывания и управления операциями на машинах с масштабом до ста единиц.

Обзор фреймворка

  • Основной фреймворк: Spring Boot.
  • Контроль доступа: Spring Security.
  • ORM-фреймворк: Spring Data JPA.
  • Отображение журналов операций: WebSocket.
  • Разделение между фронтендом и бэкендом: AngularJS + Bootstrap.

Особые указания

Я понимаю, что система развёртывания должна быть основана на определённом стандарте, чтобы обеспечить унифицированное управление развёртыванием. Это похоже на использование SDK. Поэтому систему развёртывания сложно адаптировать «из коробки». Кроме того, в морфлинге есть множество настраиваемых функций (управление включением и выключением NGX, управление включением и выключением регистрационного центра, проверка работоспособности, обзор информации), и реализация этих функций основана на соглашениях. Например, для проверки работоспособности мы договорились, что все конечные точки мониторинга приложений находятся в контексте _monitor. Для включения и выключения NGX мы используем самописный etcd. Центры конфигурации для бизнес-сценариев мы реализуем с помощью Apollo.

Поэтому некоторые функции этой системы могут не подходить для вашей текущей ситуации. Цель разработки этой системы также заключается в том, что после долгих поисков в интернете я не смог найти подходящий проект, который можно было бы использовать для вторичной разработки и т. д., поэтому я решил создать такую систему самостоятельно.

Цель открытого исходного кода — помочь тем, кто нуждается в такой системе, или использовать её для улучшения своих методов развёртывания. Предоставить общее направление или уже готовый код, а затем адаптировать неподходящие части к своим бизнес-процессам, чтобы сэкономить больше времени и заняться более значимыми делами.

Если у вас есть вопросы, вы можете связаться со мной через QQ.

Функциональный обзор

Развёртывание системы

  • Многоуровневая конфигурация позволяет пользователям с разными ролями получать доступ к разным средам и меню. Различные среды позволяют настраивать различные конфигурации, удовлетворяя основные потребности разработки и развёртывания в обычных компаниях.
  • Система разделена на серверную часть и клиентскую часть, и клиенты устанавливаются на каждом сервере. Во время развёртывания сервер уведомляет машины, которые необходимо развернуть, и клиент получает пакет установки от сервера для удалённого развёртывания.
  • Создание приложений делится на шлюзовые приложения и сервисные приложения. Способ развёртывания зарезервирован для Docker (ожидает реализации). Приложение + экземпляр клиента = экземпляр приложения, который может быть свободно назначен пользователю.
  • Регистрация и отключение центра (в настоящее время реализована только шлюзовая версия, основанная на самописном openresty + lua + etcd, рекомендуется использовать upsync от NetEase. Регистрационные центры, такие как Zookeeper и Consul, ожидают реализации).

Управление кешем

  • На основе spring-boot-starter вводится компонент управления кешем (на основе аннотаций), который предоставляет внешние службы для централизованного и унифицированного управления всеми кешами.

Бизнес-сценарий деградации

  • На основе центра конфигурации (Apollo) вводится компонент spring-boot-starter-degrade, который объявляет методы, требующие деградации, и предоставляет внешние услуги для централизованного и унифицированного управления методами деградации и связанными конфигурационными ключами.

Быстрая установка

  • Создайте базу данных с именем morphling и импортируйте scripts/morphling.sql.
  • Запустите mvn clean package -DskipTests=true -Pproduct в корневом каталоге, чтобы получить пакеты установки morphling-agent.tar.gz и morphling-server.tar.gz.
  • Распакуйте пакет установки server.gz на сервере и запустите server.sh start.
  • Откройте http://ip:11110 (если не добавить параметр -P, порт будет 80, что удобно для локальной отладки). По умолчанию учётная запись администратора — admin, пароль — 000000.

Советы

  • Пакет установки агента по умолчанию должен находиться в каталоге /app/data/morphling-server/morphling-agent.tar.gz сервера. Эта конфигурация находится в DeployConst. Вы можете изменить её самостоятельно.
  • Клиент по умолчанию использует пользователя развёртывания (ограничение переднего плана) в качестве пользователя. Вам нужно настроить его. Вы можете изменить client.js > ClientAddController и изменить развёртывание на нужного пользователя.

Принцип реализации

  • Роль: текущая роль базы данных — несколько встроенных ролей. Поскольку изменения в этой роли происходят редко, нет необходимости реализовывать управление ролью в фоновом режиме. Аналогично, отношения между ролью, меню и средой в нашем сценарии использования также вряд ли изменятся, поэтому в настоящее время мы вручную изменяем базу данных, чтобы связать роль, меню и среду.
  • Новый клиент: сервер отправляет пакет установки агента на соответствующую машину через SSH, и этот клиент одновременно становится машиной развёртывания (то есть он может реализовать приложение, связанное с этой машиной, как экземпляр этого приложения).
  • Новое приложение: данные таблицы приложений представляют собой только базовую информацию о развёртывании приложения, без конкретной информации о местоположении цели. Необходимо добавить экземпляр, чтобы связать существующий клиент, чтобы создать экземпляр.

Пример

Клиентский менеджмент

Клиентский менеджмент Клиентский менеджмент

Пользовательский менеджмент

Пользовательский менеджмент Пользовательский менеджмент

Конфигурация приложения

Конфигурация приложения

Публикация приложения

Публикация приложения Публикация приложения Публикация приложения Публикация приложения

Деградация бизнес-сценария

Деградация бизнес-сценария

Управление кэшем

Управление кэшем

Мониторинг SpringBoot

Мониторинг SpringBoot

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Спрингбут: развёртывание системы (автоматизация развёртывания + управление кешем + даунгрейд сервисов + мониторинг приложений). Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники (3)

все

Недавние действия

Загружен новый тег v0.1 4 месяца назад
4 месяца назад создана задача #IH7Y Проблема
Создан репозиторий 4 месяца назад
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/lianqu1990-morphling.git
git@gitlife.ru:oschina-mirror/lianqu1990-morphling.git
oschina-mirror
lianqu1990-morphling
lianqu1990-morphling
master