Hi Rajeevan,

Could you explain a bit more on how we are going to relate the lifecycle
stage with the runtime? If you look at the appfactory.xml, you might have
noticed that the Deployer information is defined for each lifecycle stage.
So with this new runtime.xml, how are we going to address that? Does the
runtime.xml contains all configurations or are we going to have different
sub directories and have a runtime.xml in each of them for each lifecycle
environment?

Thanks,
Janaka

On Wed, Dec 3, 2014 at 2:17 PM, Danushka Fernando <danush...@wso2.com>
wrote:

> Hi Dimuthu and All
>
> We decided to go with a separate file for this runtime configs. So we will
> deploy this file to a different location with a different axis2 deployer.
> And we will mention in the apptype.xml which runtime to be used.
>
> WDYT?
>
> Thanks & Regards
> Danushka Fernando
> Software Engineer
> WSO2 inc. http://wso2.com/
> Mobile : +94716332729
>
> On Wed, Dec 3, 2014 at 11:49 AM, Aiyadurai Rajeevan <rajeev...@wso2.com>
> wrote:
>
>> Hi Dimuthu,
>>
>> Thanks for the suggestion. So, As a conclusion I will go ahead with the
>> implementation as having a runtime.xml for the whole below peroperties and
>> populate a map from there.
>>
>> <Runtime>
>>
>>     <Runtime>appserver</Runtime>
>>
>>
>> <ClassName>org.wso2.carbon.appfactory.jenkins.deploy.JenkinsArtifactDeployer</ClassName>
>>
>>      <Endpoint>https://sc.s2.AF_HOST:9463/services/</Endpoint>
>>
>>     <RepositoryProvider>
>>
>>
>> <ProviderClass>org.wso2.carbon.appfactory.s4.integration.GITBlitBasedGITRepositoryProvider</ProviderClass>
>>
>>         <BaseURL>https://gitblit.s2.wso2.com:8444/</BaseURL>
>>
>>         <URLPattern>{@stage}/as</URLPattern>
>>
>>         <AdminUserName>admin</AdminUserName>
>>
>>         <AdminPassword>admin</AdminPassword>
>>
>>     </RepositoryProvider>
>>
>>     <AliasPrefix>as</AliasPrefix>
>>
>>     <CartridgeTypePrefix>as</CartridgeTypePrefix>
>>
>>     <DeploymentPolicy>af-deployment</DeploymentPolicy>
>>
>>     <AutoscalePolicy>economy</AutoscalePolicy>
>>
>>     <RepoURL></RepoURL>
>>
>>     <DataCartridgeType></DataCartridgeType>
>>
>>     <DataCartridgeAlias></DataCartridgeAlias>
>>
>>     <SubscribeOnDeployment>false</SubscribeOnDeployment>
>>
>> </Runtime>
>>
>>
>>
>> Thanks & Regards,
>> S.A.Rajeevan
>> Software Engineer WSO2 Inc
>> E-Mail: rajeev...@wso2.com | Mobile : +94776411636
>>
>> On Wed, Dec 3, 2014 at 11:03 AM, Dimuthu Leelarathne <dimut...@wso2.com>
>> wrote:
>>
>>> HI Rajeevan,
>>>
>>> No GUI please. We are changing the whole user story here.
>>>
>>> thanks,
>>> dimuthu
>>>
>>>
>>> On Wed, Dec 3, 2014 at 10:54 AM, Aiyadurai Rajeevan <rajeev...@wso2.com>
>>> wrote:
>>>
>>>> Hi Dimuthu/All,
>>>>
>>>> In addition to this mail conversation we had discussed this in an
>>>> internal forum, Here is the update of thatdiscussion....
>>>>
>>>> As of today We are using appfactory.xml file for the runtime
>>>> configurations the below fraction is the the configuration properties.
>>>>
>>>> <ApplicationType name="*">
>>>>
>>>>  <ClassName>
>>>> org.wso2.carbon.appfactory.jenkins.deploy.JenkinsArtifactDeployer
>>>> </ClassName>
>>>>
>>>>         <Endpoint>https://sc.s2.AF_HOST:9463/services/</Endpoint>
>>>>
>>>>         <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>
>>>>
>>>>         <Properties>
>>>>
>>>>             <Property name="alias">asdev</Property>
>>>>
>>>>             <Property name="cartridgeType">asdev</Property>
>>>>
>>>>             <Property name="deploymentPolicy">af-deployment</Property>
>>>>
>>>>             <Property name="autoscalePolicy">economy</Property>
>>>>
>>>>             <Property name="repoURL"></Property>
>>>>
>>>>             <Property name="dataCartridgeType"></Property>
>>>>
>>>>             <Property name="dataCartridgeAlias"></Property>
>>>>
>>>>             <Property name="subscribeOnDeployment">false</Property>
>>>>
>>>>         </Properties>
>>>>
>>>> </ApplicationType>
>>>>
>>>>
>>>> *Proposed solution*
>>>>
>>>> *Part 1: -* In the above xml, Content which enclosed within the
>>>> *RepositoryProvider* are used to do the Pass artifact storage
>>>> configuration. Hence, As suggested we can keep this in the
>>>> *org.wso2.carbon.appfactory.jenkins.AppfactoryPluginManager.xml* file.
>>>>
>>>> *Part 2:- *Content which are enclosed within *Properties* tag are used
>>>> for the subscription. Hence, Below is the solution which we are proposing.
>>>> So, it would be more user friendly.
>>>>
>>>> There can be multi tenant subscriber and single tenant subscriber, Lets
>>>> focus on the multi tenant scenario here.
>>>>
>>>>        *Step 1*: Create Tenant
>>>>
>>>>       *Step 2*:Tenant Admin Login
>>>>
>>>>       *Step 3*: Go to subscriber manager, This would be a GUI which
>>>> let the user to subscribe the needed Cartridge type, Environment(Dev,Test
>>>> &Prod), deploymentPolicy and autoscalePolicy. The GUI shall look like
>>>> below.
>>>>
>>>>
>>>>
>>>>
>>>> Here We can populate cartridge type, deploymentPolicy and
>>>> autoscalePolicy details from Stratos service.
>>>>
>>>> So user can select the needed details in the above GUI and click
>>>> subscribe, That will invoke a call to Stratos service for the cartridge
>>>> allocation and create Repo URL which will used to commit the code in s2Git.
>>>> Altogether there would be three URL for the 3 environments.
>>>>
>>>>
>>>> Appreciate your views in this approach please.
>>>>
>>>> Thanks & Regards,
>>>> S.A.Rajeevan
>>>> Software Engineer WSO2 Inc
>>>> E-Mail: rajeev...@wso2.com | Mobile : +94776411636
>>>>
>>>> On Tue, Dec 2, 2014 at 12:27 PM, Dimuthu Leelarathne <dimut...@wso2.com
>>>> > wrote:
>>>>
>>>>> 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
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Dimuthu Leelarathne
>>> Architect & Product Lead of App Factory
>>>
>>> WSO2, Inc. (http://wso2.com)
>>> email: dimut...@wso2.com
>>> Mobile : 0773661935
>>>
>>> Lean . Enterprise . Middleware
>>>
>>
>>
>


-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


*E-mail: jan...@wso2.com <http://wso2.com>**M: **+94 718370861*

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

Reply via email to