On 10 October 2013 05:40, Felix Meschberger <fmesc...@adobe.com> wrote:
> Hi
>
> Am 09.10.2013 um 09:05 schrieb Ian Boston:
>
>> Hi,
>>
>> On 9 October 2013 16:21, Felix Meschberger <fmesc...@adobe.com> wrote:
>>> Hi
>>>
>>> Am 08.10.2013 um 10:40 schrieb Ian Boston:
>>>
>>>> Hi,
>>>> The whitelist configuration in this servlet is causing some problems
>>>> where the contents of the whitelist is potentially large and changing,
>>>> since it requires constant re-configuration.
>>>
>>> What is the problem with that ?
>>
>> When the whitelist in the central discovery endpoint depends on the
>> topology itself, it causes production deployment problems, especially
>> when the configuration of the end point and the management of the
>> topology of the production deployment are managed by different roles
>> within the organisation. This is typical of many organisations.
>> Engineers don't manage operations and TechOps don't manage
>> engineering. Normally configuration would be managed by TechOps but
>
> Fully agreed ! Which is exactly the reason why conceptually we have to 
> separate development from deployment and which is why configuration *is* in 
> fact a deployment issue and not a development issue.
>
>> with Sling that doesn't appear to be the case.
>
> How come ? That is not the intent of how Sling should be used.
>

Many systems that are managed by TechOps are configured by files on
disk (eg Apache httpd.conf etc). As a result much of the tooling to
manage production environments works best managing those files. Things
that are not files on disk, are generally considered part of the
application, unless the application itself is a TechOps application
(eg Ldap).

Sling (and tbh many Java applications) puts its configuration into
database files or repositories, accessed only once the application is
running which means TechOps cant use standard tools (Puppet, Cactus
etc) to manage the application. TechOps have to use application level
tooling and build systems (mvn) to interact with the configuration or
take undocumented routes to configuring the application (eg
manipulating the private Felix configuration files).

Because OSGi makes it easy to configure components, applications based
on Sling have large volumes of configuration, much of which is not so
much about deployment, and more about configuring the application. In
real life, that tends to be poorly documented and the effort level
required for TechOps to write build, deploy and maintain those
configuration files is too high. Hence the developer teams provide
them as part of application startup for TechOps to deploy.

There is nothing wrong with this, provided the configuration does not
depend on the deployment topology. When it does, it falls between the
gaps.

There are 2 potential solutions:
A. Create something along the lines of Puppet or Cactus to bring
deployment level Sling configuration into line with those systems. (or
whatever the chosen deployment tooling is).
B. Ensure that configuration performed in Sling is not dependent on
the deployment architecture and topology so that 99% of the
configuration can be used unchanged when deploying 10 or 10000
instances.

In this case, B is a lot less effort than A. A is not impossible, but
it is not as simple as writing a puppet module with a few curl
operations, for a start, deployment should be achievable with the
application not running.


In short, *if* all configuration is a deployment issue, then it should
work with existing deployment tooling.
Best Regards
Ian

Reply via email to