eclipse-arrowhead / roadmap

Eclipse Public License 2.0
5 stars 9 forks source link

Spring Configuration Server for Arrowhead Framework #18

Open BlackRose01 opened 3 years ago

BlackRose01 commented 3 years ago

Hello,

I am currently in the process of updating my core services. I noticed that the current handling of the configuration files (application.properties) is quite cumbersome.

To find an adequate solution for this I came across the below mentioned concept from Spring to store the configurations centrally. This is a concept that the configurations are stored centrally in a repository (Git/GitLab/GitHub/...) and you use a middleware (Spring application) to retrieve your particular Spring configuration. In the core services you only have to specify the link to the middleware.

This concept could speed up the configuration of the Core Services considerably, streamline it and make it more modular. I think it would also be a good idea to implement this application as a core service in order to retain the concept of the local cloud.

I hope it helps.

KR, BlackRose01

Spring Docs - Cloud Config Server Spring - Instruction for Implementation Baeldung - Tutorial Baeldung - Tutorial Bootstrapping

rbocsi commented 3 years ago

Need further discussion, because I personally don't see any advantages of a central repository. On the contrary, one should not store sensitive information (like passwords) on a central repository.

jerkerdelsing commented 3 years ago

One way is to make use of the Configuration system proposed by Jens. The configurations can be stored I each local cloud.

BlackRose01 commented 3 years ago

Need further discussion, because I personally don't see any advantages of a central repository. On the contrary, one should not store sensitive information (like passwords) on a central repository.

This should not be a problem, because you can also pass the passwords as start parameters or you can store the passwords in the respective application.properties. Then you only have to say that entries from the application.properties overwrite the values of the Cloud Configuration.

To that Git is only one possibility to store the configuration parameters. You can also store them as files or provide them in a database. But this method reduces the effort and time to successfully set up a local Arrowhead Cloud many times over.

jerkerdelsing commented 3 years ago

DAC have made a local cloud deployment solution. We should bring them into this thread. I will ask Marek Tatara to join.

emanuelpalm commented 2 years ago

@BlackRose01 @jerkerdelsing How do we move on with this issue?

BlackRose01 commented 2 years ago

Currently I see no movement but I think it is a very important topic for large scaled systems and administration. Are there any updates from Marek Tatara to join us here?

jerkerdelsing commented 2 years ago

Looking a bit deeper I think the whole problem with configuration files like application.properties isa matter of documentation. Currently this is missing in all SysD and SysDD documents I have read.

BlackRose01 commented 2 years ago

That's a good point but how will this help developers? The Spring configuration is very big and some of then are more important to companies than others (e.g. Thread behavior, database options, logging) and sometimes the configuration can differs from cloud to cloud in a company. So I think we need a software solution for that.