Hi Danushka,

Please see my comments below.

On Tue, Dec 2, 2014 at 12:01 PM, Danushka Fernando <danush...@wso2.com>
wrote:

> HI Dimuthu
> Please find my comments inline
>
>
> On Tue, Dec 2, 2014 at 8:45 AM, Dimuthu Leelarathne <dimut...@wso2.com>
> wrote:
>
>> Hi Rajeevan,
>>
>> Please see my comments below.
>>
>> On Mon, Dec 1, 2014 at 10:46 PM, Aiyadurai Rajeevan <rajeev...@wso2.com>
>> wrote:
>>
>>> Hi All,
>>>
>>> We are trying to implement a feature on AF which enables the user to
>>> deploy their customized app types, Currently this configuration is
>>> available in *appfactory.xml *under *<Deployer>* tag the content would
>>> be as [1], likewise we have for each app types. Hence this wouldn't be
>>> editable by the users and may not deploy their own app types. If we move
>>> out this [1] from *appfactory.xml* and put this in a configurable file
>>> would enable the users to customize their need.
>>>
>>> When we analyzing the [1] we found out , The below content related to
>>> Pass artifact storage configuration and common to all app types.
>>>
>>> <RepositoryProvider>
>>>
>>>                        <Property name="Class">
>>>
>>>
>>> org.wso2.carbon.appfactory.s4.integration.GITBlitBasedGITRepositoryProvider
>>>
>>>                         </Property>
>>>
>>>                        <Property name="BaseURL">
>>> https://gitblit.s2.wso2.com:8444/</Property>
>>>
>>>                         <Property name="URLPattern">{@stage}/as
>>> </Property>
>>>
>>>                        <Property name="AdminUserName">admin</Property>
>>>
>>>                          <Property name="AdminPassword">admin</Property>
>>>
>>> </RepositoryProvider>
>>>
>>>
>> What is the other xml file are you talking about? Lets call it foo.xml.
>> The only other place that require these information other than App Factory
>> is Jenkins. So rather than putting these in separate xml file, I will put
>> it in the appfactory-plugin.xml file. This is because Jenkins provide and
>> inherent way to read appfactory-plugin.xml file and it doesn't give an
>> inherent way to read foo.xml file.
>>
>> So at this stage the foo.xml file is only used in App Factory. You may
>> merge it with appfactory.xml. The next question you may ask configuration
>> duplication. I say puppet is the answer.
>>
>> If we have code to read foo.xml we have to put the code in both Jenkins
>> side and AF side. I would rather use Jenkins inherent way of config files
>> as oppose to duplicating code in both places and having a special file.
>>
>
> I was thinking about moving outside the tag but keep it inside the same
> appfactory.xml. We can pass these to jenkins through property bag when
> deployment.
>
>>
>>
>> So we are planning to move this to a common configuration file and all
>>> the application types can access that.
>>>
>>> In [1] below properties are not used. Hence, We shall get rid of that
>>> from AF
>>>
>>>                         <Property name="minInstances">1</Property>
>>>
>>>                         <Property name="maxInstances">1</Property>
>>>
>>>                         <Property name="shouldActivate"></Property>
>>>                         <Property name="subscribeOnDeployment">false
>>> </Property>
>>>
>>> And the below properties are used. So, We can keep them in the
>>> *apptype.xml* as we already have separate apptype.xml for each app
>>> types..
>>>
>>                         <Property name="alias">162dev</Property>
>>>
>>>                         <Property name="cartridgeType">162dev</Property>
>>>
>>>                        <Property name="deploymentPolicy">af-deployment
>>> </Property>
>>>
>>>                         <Property name="autoscalePolicy">economy
>>> </Property>
>>>
>>>                         <Property name="repoURL"></Property>
>>>
>>>                        <Property name="dataCartridgeType"></Property>
>>>
>>>                        <Property name="dataCartridgeAlias"></Property>
>>>
>>>
>>>
>>
>>
>> What is the propose of having the below in apptype.xml itself? What if we
>> move this to a different runtime.xml file? I am proposing because Runtime
>> is a different concept that is required by App Factory.Let me prove it by
>> example. If we use a different xml file for deployment(runtime), in future
>> we can implement "multiple deployment environments very easily. For example
>> consider the below relationship.
>>
>
> What I thought the cartidgeType only being used. But seems all of them
> used just for cartridge subscription. So we need a separate place to these
> indeed. And IMO we should add support to add the cartridge configuration
> file to the apptype as well.
>

>> AppType (1) ----------------- has ------------------>  (n)Deployment Envs
>>
>> Question about this. Is it one to many or many to many. If it is many to
> many its going to be complex I guess. In that case we cannot deploy the
> deploy / runtime configs with apptype it self. And there should be a way to
> map which runtimes are available to which apptype. If it is one to many
> there will be same deployer mentioned in several app types.
>
> Should we focus on that feature here. If it is to implement many to many
> relationship then we are doing that feature now.
>

You are correct in saying we need to concentrate on this current feature
only. But since we are going to be doing refactoring anyway I propose to
separate out Runtime concept gradually. There is no harm in adding a new
meta data object saying Runtime. It can only do us good. Less refactoring
in the future.

Could you tell me why we need to add cartridge.xml to *.apptype archive
itself? I prefer to keep it separate as a part of PaaS. And use Runtime
object to refer to it. I don't want CartridgeInfo objects being used all
over in our code. Rather I prefer to see Runtime being used because
AppFactory and Stratos can evolve fairly independently.

thanks,
dimuthu


>
>> Right now it is 1 to 1 relationship. In future it is 1 to n relationship.
>> So if we keep it in a separate XML the work we have to do is simply
>> externalise the deployment xmls to support the below scenario.
>>
>> For example consider app creation page.
>>
>> There is a "Application Type" drop down. In future we are going to have
>> "Runtimes" drop down. So if we have deployment as a separate concept in the
>> architecture it is going to be much better.
>>
>> thanks,
>> dimuthu
>>
>>
>>
>>> Look forward your views in this.
>>>
>>> Thanks & Regards,
>>> S.A.Rajeevan
>>> Software Engineer WSO2 Inc
>>> E-Mail: rajeev...@wso2.com | Mobile : +94776411636
>>>
>>
>>
>>
>> --
>> Dimuthu Leelarathne
>> Architect & Product Lead of App Factory
>>
>> WSO2, Inc. (http://wso2.com)
>> email: dimut...@wso2.com
>> Mobile : 0773661935
>>
>> Lean . Enterprise . Middleware
>>
>
> Thanks & Regards
> Danushka Fernando
> Software Engineer
> WSO2 inc. http://wso2.com/
> Mobile : +94716332729
>



-- 
Dimuthu Leelarathne
Architect & Product Lead of App Factory

WSO2, Inc. (http://wso2.com)
email: dimut...@wso2.com
Mobile : 0773661935

Lean . Enterprise . Middleware
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to