Hi Uvindra,

With cloud deployment in mind, the idea is to boot up the nodes in quick
time, therefore the docker images are pre-configured with all the
configuration values, which will speed up the node start up. A change of
configuration means a new docker image will be created with the new
configs, and re-spawn the cluster.

Therefore, IMO a node restart for a config change is not relevant, also no
need of a periodic config checks.

Btw, can you give me some example configuration you were thinking of?

Thanks,
Sajith

On Wed, Oct 12, 2016 at 11:53 AM, Uvindra Dias Jayasinha <uvin...@wso2.com>
wrote:

> Was wondering about $subject
>
> Traditionally we have stored our product configs, be it carbon.xml,
> api-manager.xml, identity.xml, etc. at file level. Some configs, such as
> "port offset" are inherently bound to the server startup so it makes sense
> for them to be at file level, since they come into affect during the
> startup. But certain runtime configs actually get engaged only when a given
> feature is used. But having those configs at file level require a restart
> for the changes to take affect. In C4 API Manager avoided doing restarts
> for certain config changes, like adding mediation extensions, by storing
> them in the registry.
>
> For C5 a reusable implementation can exist at each node which periodically
> reads the table(say once a minute) and updates the config values in memory.
> Products communicate with this config library to get the values of a given
> config. So eventually they will read the updated value in a short time. If
> we were to store at least certain configs at DB level there are several
> advantages.
>
> 1. Eliminate need for a restart for changes to take affect. I realize in
> C5 a restart is relatively cheap so this might not be a big deal, but you
> still need someone to initiate the restart after the config change.
>
> 2. Since the config DB table has a known structure a UI can be easily
> developed to do CRUD operations for config changes and used by all
> products. This is a lot more user friendly than asking users to change
> files.
>
> 3. We can provide a REST API to allow config changes to be done on the DB
> table alternatively.
>
> 4. Simplify dev ops by eliminating complicated puppet config templates
> that need to constantly maintained with new releases.
>
> 5. Since configs are in a central DB its easy to manage them since all
> nodes will read from the same table.
>
> 6. Configs can be backed up by simply backing up the table
>
>
> Doing this makes sense for certain use cases of API Manger, I'm sure there
> maybe similar benefits for other products as well. It may not make sense
> for all configs but at least for some that govern feature functionality its
> great to have. WDYT?
>
> --
> Regards,
> Uvindra
>
> Mobile: 777733962
>
> _______________________________________________
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Sajith Kariyawasam
*Associate Tech Lead*
*WSO2 Inc.; http://wso2.com <http://wso2.com/>*
*Committer and PMC member, Apache Stratos *
*AMIE (SL)*
*Mobile: 0772269575*
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to