Комментарии 13
Что узнал. Главное понял что может и сам смогу. Есть пет, есть REST, нет мотивации.
на мой взгляд Spring Cloud лишь усложняет архитектуру: для запуска приложения необходим работающий инстанс для получения конфигурации.
Как синхронизировать конфиг в процессе разработки, запускать тесты?
Логика настроек по итогу раздваивается. как обстоят дела с версионностью? (ок, в application
можно версию суффиксом).
За версионностью следит стстема контроля версий.
В тестах свои пропертис отдельные
идея такого подхода держать настройки в одном месте для разных инстансов
О да! Для маленьких проектов он однозначно заставит задуматься о тех вопросах, которые появляются во взрослых проектах. Пришлось протестировать различные схемы.
Для работы gitlab-ci тестов в изолированном окружении я понял, что проще всего будет хранить конфиги для тестов прямо в приложении. Но когда в твоем окружении есть доступ к всегда запущенному клауду, а параметров для разных контуров становится слишком много - вот тут клауд очень помогает!
По поводу версионности - сразу приходит на ум через суффикс в application, да. Но версионность - весьма редкая схема для конфигов все же, как мне кажется.
Spring Cloud Config не нужно использовать на dev среде, т.е. на компьютере разработчика. На компьютере разработчика удобно хранить конфигурацию в файле application-dev.yml
Spring Cloud Config удобен для хранения настроек на серверах, в облаке. Версионность конфигурации реализуется подключение к нему репозитория в GIT в качестве источника данных
Хотел бы отметить, что то, что вы описали - это только Spring Cloud Config Server и его использование. Это очень небольшая часть Spring Cloud, куда входит куча всего.
Например service discovery, routing, load balancing, circuit breakers и прочие штуки от Netflix.
https://spring.io/projects/spring-cloud - вот тут много
Спасибо за такой полезный комментарий по делу. Действительно, в инфраструктуре Spring Cloud есть огромное количество интересных штук, которые кому-то могут облегчить жизнь.
В этой статье мне было интересно разобраться именно с частью конфигураций для своих пет проектов. Возможно, если увижу что можно у себя реализовать из остальных решений и мне зайдет, то тоже напишу статью :)
Мы используем Spring Cloud уже несколько лет, 100+ микросервисов, много разных environments, включая production. Прошли от Unix -> PCF ->K8S, довольно стабильна эта часть Spring Cloud.
Ещё момент ... конфигурации (через spring profiles) можно хранить в ОДНОМ (для одного приложения) yaml файле. Это удобнее, ИМХО, для сопровождения. Кроме того можно сделать shared секцию, куда попадают общие настройки для все spring profiles.
Спасибо за пост. Подскажите, пожалуйста, если знаете. Есть проект https://github.com/spring-petclinic/spring-petclinic-cloud
Я пытаюсь запустить spring-petclinic-cloud в kubernetes. Получаю ошибку java.net.UnknownHostException: wavefront-proxy
Issue есть https://github.com/spring-petclinic/spring-petclinic-cloud/issues/39
Разработчики хотят обновить Spring Cloud и убрать Spring Cloud's bootstrap context.
Можете помочь с тестированием https://github.com/spring-petclinic/spring-petclinic-cloud/pull/43 ?
Спасибо.
Как я запускал Spring Cloud