[Architecture] [C5] [Registry] Using registry in platform components

2014-01-05 Thread Eranda Sooriyabandara
Hi all,
Now we exposed the all types of registries (will be Repository in future)
to the outside registry kernel (Carbon kernel) via RegistryService.
Here are the types of registries we have.
systemRegistry
configSystemRegistry
governanceSystemRegistry
userRegistry
configUserRegistry
governanceUserRegistry

But if we take a close look we should be only exposing configUserRegistry,
governanceUserRegistry which actually should be use in the platform level
components. Other than that if we need to save something to local registry
or as systemRegistry we should specifically give methods for them. For
example if we want to retrieve last indexed time of a server we need to
have a separate method.

There are several advantages over this modification.
1. No one allowed to modify local registry + we may not need to show that
in the resource browser.
2. There can be security issues when we expose system registries over an API
3. We have used systemRegistries all over our components for some
operations which is incorrect because its overriding the authorization
model + people won't find the correct logs.
4. People can use the system registry in their custom handlers which we
should not allowed

WDYT?

thanks
Eranda


-- 

*Eranda Sooriyabandara*Senior Software Engineer;
Integration Technologies Team;
WSO2 Inc.; http://wso2.com
Lean . Enterprise . Middleware

E-mail: eranda AT wso2.com
Mobile: +94 716 472 816
Linked-In: http://www.linkedin.com/in/erandasooriyabandara
Blog: http://emsooriyabandara.blogspot.com/
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Resilient application creation process

2014-01-05 Thread Janaka Ranabahu
Hi Manjula,


On Mon, Jan 6, 2014 at 10:24 AM, Manjula Rathnayake manju...@wso2.comwrote:

 Hi all,

 Another option is to retry to create the application even after failed.
 There we create the application again and again until it get created. If it
 fails, users should be able to role back. In this process, for example, if
 application rxt adding process succeeds but creating git repo fails, we
 should be able to create git repo and continue without trying to add the
 rxt.

If I understood you correctly, then what we need to do is to retry the
failed process/action a number of times. But that can not guarantee whether
the app creation would complete successfully. Say that the git repo
creation(or any other task) failed due to a network error or some other
serious issue. Then retrying will not solve the issue. IMO, what we need in
the first place is the rollback functionality and as an improvement we can
do the retry logic.

WDYT?

Thanks,
Janaka


 thank you.


 On Mon, Jan 6, 2014 at 10:06 AM, Ashansa Perera asha...@wso2.com wrote:

 Hi all,

 To make the application creation process resilient we discussed to
 implement a rollback mechanism so that if any resource/infrastructure
 creation failed while creating the application we can rollback the app
 creation. With this we would be able to reuse the same application key and
 utilize the resources.
 Another suggestion was to ping the external servers before starting
 application creation process, but since pinging servers cannot guarantee 
 anything
 as server can fail in between, we will be going ahead with the rollback
 application creation.

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
*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


Re: [Architecture] Resilient application creation process

2014-01-05 Thread Manjula Rathnayake
Hi Janaka,


On Mon, Jan 6, 2014 at 10:33 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Manjula,


 On Mon, Jan 6, 2014 at 10:24 AM, Manjula Rathnayake manju...@wso2.comwrote:

 Hi all,

 Another option is to retry to create the application even after failed.
 There we create the application again and again until it get created. If it
 fails, users should be able to role back. In this process, for example, if
 application rxt adding process succeeds but creating git repo fails, we
 should be able to create git repo and continue without trying to add the
 rxt.

 If I understood you correctly, then what we need to do is to retry the
 failed process/action a number of times. But that can not guarantee whether
 the app creation would complete successfully. Say that the git repo
 creation(or any other task) failed due to a network error or some other
 serious issue. Then retrying will not solve the issue. IMO, what we need in
 the first place is the rollback functionality and as an improvement we can
 do the retry logic.

Yes, correct. But if retrying fails means, something is wrong in the setup.
We need to fix that before creating apps again. However, yes, roll back
helps to get the appId back, so you can create the application with same
appId even after it failed. However retrying will help in case of
intermittent issues.

thank you.


 WDYT?

 Thanks,
 Janaka


 thank you.


 On Mon, Jan 6, 2014 at 10:06 AM, Ashansa Perera asha...@wso2.com wrote:

 Hi all,

 To make the application creation process resilient we discussed to
 implement a rollback mechanism so that if any resource/infrastructure
 creation failed while creating the application we can rollback the app
 creation. With this we would be able to reuse the same application key and
 utilize the resources.
 Another suggestion was to ping the external servers before starting
 application creation process, but since pinging servers cannot guarantee 
 anything
 as server can fail in between, we will be going ahead with the rollback
 application creation.

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




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


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
Manjula Rathnayaka
Software Engineer
WSO2, Inc.
Mobile:+94 77 743 1987
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Resilient application creation process

2014-01-05 Thread Gayan Dhanushka
Hi Janaka,

IMO it is ok for us to have a mechanism for retrying. If it was an
intermittent issue that interrupted the system from creating the
application this will solve it. If the application creation failed after
retrying for a few times we can roll back the entire process. If it is some
other serious issue rolling back and trying to start the application
creation process from the begining still won't work.

WDYT?

GayanD

Gayan Dhanuska
Software Engineer
http://wso2.com/
Lean Enterprise Middleware

Mobile
071 666 2327

Office
Tel   : 94 11 214 5345
Fax  : 94 11 214 5300

Twitter : https://twitter.com/gayanlggd


On Mon, Jan 6, 2014 at 10:33 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Manjula,


 On Mon, Jan 6, 2014 at 10:24 AM, Manjula Rathnayake manju...@wso2.comwrote:

 Hi all,

 Another option is to retry to create the application even after failed.
 There we create the application again and again until it get created. If it
 fails, users should be able to role back. In this process, for example, if
 application rxt adding process succeeds but creating git repo fails, we
 should be able to create git repo and continue without trying to add the
 rxt.

 If I understood you correctly, then what we need to do is to retry the
 failed process/action a number of times. But that can not guarantee whether
 the app creation would complete successfully. Say that the git repo
 creation(or any other task) failed due to a network error or some other
 serious issue. Then retrying will not solve the issue. IMO, what we need in
 the first place is the rollback functionality and as an improvement we can
 do the retry logic.

 WDYT?

 Thanks,
 Janaka


 thank you.


 On Mon, Jan 6, 2014 at 10:06 AM, Ashansa Perera asha...@wso2.com wrote:

 Hi all,

 To make the application creation process resilient we discussed to
 implement a rollback mechanism so that if any resource/infrastructure
 creation failed while creating the application we can rollback the app
 creation. With this we would be able to reuse the same application key and
 utilize the resources.
 Another suggestion was to ping the external servers before starting
 application creation process, but since pinging servers cannot guarantee 
 anything
 as server can fail in between, we will be going ahead with the rollback
 application creation.

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




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


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Resilient application creation process

2014-01-05 Thread Ramith Jayasinghe
Shall we list down what are the steps involved in creating a application.
then what needs to be to undo each step that was performed?


On Mon, Jan 6, 2014 at 10:45 AM, Gayan Dhanushka gay...@wso2.com wrote:

 Hi Janaka,

 IMO it is ok for us to have a mechanism for retrying. If it was an
 intermittent issue that interrupted the system from creating the
 application this will solve it. If the application creation failed after
 retrying for a few times we can roll back the entire process. If it is some
 other serious issue rolling back and trying to start the application
 creation process from the begining still won't work.

 WDYT?

 GayanD

 Gayan Dhanuska
 Software Engineer
 http://wso2.com/
 Lean Enterprise Middleware

 Mobile
 071 666 2327

 Office
 Tel   : 94 11 214 5345
 Fax  : 94 11 214 5300

 Twitter : https://twitter.com/gayanlggd


 On Mon, Jan 6, 2014 at 10:33 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Manjula,


 On Mon, Jan 6, 2014 at 10:24 AM, Manjula Rathnayake manju...@wso2.comwrote:

 Hi all,

 Another option is to retry to create the application even after failed.
 There we create the application again and again until it get created. If it
 fails, users should be able to role back. In this process, for example, if
 application rxt adding process succeeds but creating git repo fails, we
 should be able to create git repo and continue without trying to add the
 rxt.

 If I understood you correctly, then what we need to do is to retry the
 failed process/action a number of times. But that can not guarantee whether
 the app creation would complete successfully. Say that the git repo
 creation(or any other task) failed due to a network error or some other
 serious issue. Then retrying will not solve the issue. IMO, what we need in
 the first place is the rollback functionality and as an improvement we can
 do the retry logic.

 WDYT?

 Thanks,
 Janaka


 thank you.


 On Mon, Jan 6, 2014 at 10:06 AM, Ashansa Perera asha...@wso2.comwrote:

 Hi all,

 To make the application creation process resilient we discussed to
 implement a rollback mechanism so that if any resource/infrastructure
 creation failed while creating the application we can rollback the app
 creation. With this we would be able to reuse the same application key and
 utilize the resources.
 Another suggestion was to ping the external servers before starting
 application creation process, but since pinging servers cannot guarantee 
 anything
 as server can fail in between, we will be going ahead with the rollback
 application creation.

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




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


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture



 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
Ramith Jayasinghe
Technical Lead
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

E: ram...@wso2.com
P: +94 776715671
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [C5] [Registry] Using registry in platform components

2014-01-05 Thread Samisa Abeysinghe
On Mon, Jan 6, 2014 at 10:28 AM, Eranda Sooriyabandara era...@wso2.comwrote:

 Hi all,
 Now we exposed the all types of registries (will be Repository in future)
 to the outside registry kernel (Carbon kernel) via RegistryService.
 Here are the types of registries we have.
 systemRegistry
 configSystemRegistry
 governanceSystemRegistry
 userRegistry
 configUserRegistry
 governanceUserRegistry


Can you please explain what each of the above does?


 But if we take a close look we should be only exposing configUserRegistry,
 governanceUserRegistry which actually should be use in the platform level
 components. Other than that if we need to save something to local registry
 or as systemRegistry we should specifically give methods for them. For
 example if we want to retrieve last indexed time of a server we need to
 have a separate method.

 There are several advantages over this modification.
 1. No one allowed to modify local registry + we may not need to show that
 in the resource browser.
 2. There can be security issues when we expose system registries over an
 API
 3. We have used systemRegistries all over our components for some
 operations which is incorrect because its overriding the authorization
 model + people won't find the correct logs.
 4. People can use the system registry in their custom handlers which we
 should not allowed


It sounds as if, we are going to re-factor what we have in C5. Should we
not rather have a fresh look and re-design this to get the story right?
In other words, how about disregarding what we have and have a holistic new
look!


 WDYT?

 thanks
 Eranda


 --

 *Eranda Sooriyabandara*Senior Software Engineer;
 Integration Technologies Team;
 WSO2 Inc.; http://wso2.com
 Lean . Enterprise . Middleware

 E-mail: eranda AT wso2.com
 Mobile: +94 716 472 816
 Linked-In: http://www.linkedin.com/in/erandasooriyabandara
 Blog: http://emsooriyabandara.blogspot.com/





 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Resilient application creation process

2014-01-05 Thread Ashansa Perera
Agree with Janaka's idea of having rollback mechanism first and of course
we can have retry logic in each operation as well.


On Mon, Jan 6, 2014 at 10:48 AM, Ramith Jayasinghe ram...@wso2.com wrote:

 Shall we list down what are the steps involved in creating a application.
 then what needs to be to undo each step that was performed?


 On Mon, Jan 6, 2014 at 10:45 AM, Gayan Dhanushka gay...@wso2.com wrote:

 Hi Janaka,

 IMO it is ok for us to have a mechanism for retrying. If it was an
 intermittent issue that interrupted the system from creating the
 application this will solve it. If the application creation failed after
 retrying for a few times we can roll back the entire process. If it is some
 other serious issue rolling back and trying to start the application
 creation process from the begining still won't work.

 WDYT?

 GayanD

 Gayan Dhanuska
 Software Engineer
 http://wso2.com/
 Lean Enterprise Middleware

 Mobile
 071 666 2327

 Office
 Tel   : 94 11 214 5345
 Fax  : 94 11 214 5300

 Twitter : https://twitter.com/gayanlggd


 On Mon, Jan 6, 2014 at 10:33 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Manjula,


 On Mon, Jan 6, 2014 at 10:24 AM, Manjula Rathnayake 
 manju...@wso2.comwrote:

 Hi all,

 Another option is to retry to create the application even after failed.
 There we create the application again and again until it get created. If it
 fails, users should be able to role back. In this process, for example, if
 application rxt adding process succeeds but creating git repo fails, we
 should be able to create git repo and continue without trying to add the
 rxt.

 If I understood you correctly, then what we need to do is to retry the
 failed process/action a number of times. But that can not guarantee whether
 the app creation would complete successfully. Say that the git repo
 creation(or any other task) failed due to a network error or some other
 serious issue. Then retrying will not solve the issue. IMO, what we need in
 the first place is the rollback functionality and as an improvement we can
 do the retry logic.

 WDYT?

 Thanks,
 Janaka


 thank you.


 On Mon, Jan 6, 2014 at 10:06 AM, Ashansa Perera asha...@wso2.comwrote:

 Hi all,

 To make the application creation process resilient we discussed to
 implement a rollback mechanism so that if any resource/infrastructure
 creation failed while creating the application we can rollback the app
 creation. With this we would be able to reuse the same application key and
 utilize the resources.
 Another suggestion was to ping the external servers before starting
 application creation process, but since pinging servers cannot guarantee 
 anything
 as server can fail in between, we will be going ahead with the rollback
 application creation.

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




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


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture



 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Ramith Jayasinghe
 Technical Lead
 WSO2 Inc., http://wso2.com
 lean.enterprise.middleware

 E: ram...@wso2.com
 P: +94 776715671


 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
Thanks  Regards,

Ashansa Perera
Software Engineer
WSO2, Inc
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [App Factory] Per Developer Repos

2014-01-05 Thread Manisha Gayathri
Hi all,

According to the diagram in Sanjiva's mail, I have come up with a sequence
diagram of the scenarios that would cover in this user story. Please refer
[1]

For M11, we are hoping to implement the scenarios up to Add Developer user
story.

[1].
http://www.websequencediagrams.com/?lz=dGl0bGUgUGVyIERldmVsb3BlciBSZXBvIEltcGwgd2l0aCBHaXRIdWIKCm9wdCBDcmVhdGUgTmV3IFRlbmFudAogAAIHQWRtaW4gLT4AKAc6ACMIYSBHaXQgb3JnYW5pemF0aW9uACESQUYAJgluAD8bQUY6IFByb3ZpZGUgZwBGDyBjb250ZXh0ICYgY3JlZGVudGlhbHMAfCJuIGFwcCBvd25lciB0ZWFtAIFtBnB1c2ggcGVybWlzcwCBHRVHaXRodWI6YwCBXAhkZXYAOQZpZiBub3QgZXhpc3RpbmcgYW5kIGFkZCB1c2VyIHRvACAJCmVuZACCQhFBcHAKICBBcHBPAIELBQCCCBIAGgdGAIJVE25ldyByZXBvIGluIHRoZSBvcmcuAIINCAogAIM-BwCCaAUAWAc6IFJlc3BvbnNlAINhBgCDcQVkZXRhaQCCMwUAXwZKZW5raW5zOiBBZGQAgxcFYnVpbGQgdGFzayBmb3IAgjgFcmVwbwCBRQpBZGQAhEEKAIE_DwCEWgk6IGludml0AIM0BnRvIGpvaW4gcHJvamVjdAogAIUACwCEFgdTdXJlIACBaRFGb3JrAIFnBW1haW4AgQEGAIFdDABjC0hlcmUncyB5b3VyIGZvcmtlZAAnCACBQSYALQdkZXYAgV8PAIYrCldyaXRlcyBDb2RlAIEyEACGCghHaXQgUHVsbACBUhAAggwLACsUAIIrC0xvY2FsIElERQCDAgYASx5zaACDaw0Ag0IJQgA0BwCDVQcAgxIHIENsb3VkOiBEZXBsb3kgZACIBQkAVRUAgz8LAIguCnRlc3QvZGVidWcAhVQKUHVsbCBSZXF1ZXMAg0UVABsFcgAXCQCFVQYAhRkKABMMIHJlY2VpdmVkAIYUEACFRgt2aQCGAgUARgkAhkALAIkQCE1lcmdlAIR_Gk5vdGlmeSBhY2NlcHQAhyEFs=vs2010

Thanks
Manisha


On Sun, Jan 5, 2014 at 3:07 AM, Dimuthu Leelarathne dimut...@wso2.comwrote:

 Hi Manisha and all,

 Please see my comments inline.


 On Friday, January 3, 2014, Manisha Gayathri wrote:

 Hi all,

 For the M11 of App Factory, we are implementing per developer repo
 feature to give a github like experience for the developers. The user story
 for this federated development will be as follows:
  - Once an app-owner creates an application, the application will be
 getting a repo in gitblit
  - When a developer logs in, he gets an option to fork the main repo of
 the app


 Fork option should not be something done by developer when he logs in.
 Here is the user story we want from Sanjiva's mail titled per-developer
 git repos for App Factory. Here is the link from the mail [1]. The diagram
 here is very precise. Basically the fork request should be sent by AF when
 a developer is added to the project. And it should be done by AF on a
 listener when add user to application event is fired, so the developer do
 not do it.

 And as per the mail states GitBlit does not support PR(pull request) git
 workflow. Then thinking along this line, IMO we should NOT implement per
 developer repos using Gitblit, because it would require major hacking. I
 believe we should integrate with GitHub for this feature.

 Basically our story should be if underlying repo provider supports PR
 workflow then we do [1]. So lets provide this feature using GitHub. And if
 one day GitBlit provides PR git workflow, lets make it available for Git
 repositories as well.

 thanks,
 dimuthu


 [1]

 http://www.websequencediagrams.com/?lz=dGl0bGUgQXBwIEZhY3RvcnkgR2l0IFJlcG9zCgpvcHQgQ3JlYXRlIE5ldyBBcHAKICBBcHBPd25lciAtPiBBRjoAGQhuABcKRiAtPiBHaXRibGl0ABMNcmVwbwogABMIADwFAEYHOiBIZXJlJ3MgeW91ciBhcHAAJAgARwZKZW5raW5zOiBBZGQAZQVidWlsZCB0YXNrIGZvACYLZW5kAIExBkFkZCBEZXZlbG9wZXIAgScPAA8JOiBpbnZpdGF0aW9uIHRvIGpvaW4gcHJvamVjdAogADYKAIFjCFN1cmUgAIFJGXJlcG8AgQkFZGV2AIFYDgBmCwCBWwxwcml2ADEIAIFCKWRldgCBXA8AgR0KV3JpdGVzIENvZGUAgS8QAIMGCUdpdCBQdWxsAIFQEACCCgsALBQAgikLTG9jYWwgSURFAIMABgBLH3NoAINkDgCDQglCADYHAINVBwCDEgcgQ2xvdWQ6IERlcGxveSBkAIJ6CQBXFQCDPwsAgyMKdGVzdC9kZWJ1ZwCEBQpQdWxsIFJlcXVlcwCDRRUAGwVyABcJAIU9BgCFEwoAEwwgcmVjZWl2ZWQAhXwQAIVCCVJldmkAhWkFAEYJAIYoCwCGDwlNZXJnZQCFABpOb3RpZnkgYWNjZXB0AIVTBQs=vs2010



   - The developer should not be permitted to directly commit to the main
 repo
  - Developer can fork the main repo and have it as his remote repo.
 Developer commits his changes to his remote repo
  - Once the changes are committed he sends a pull request with the
 committed changes
  - App owner can login to the main repo and check what are the
 available pull requests. He can review the commits and reject the
 problamatic ones and merge the accepted changes with the main repo

 There are couple of things to consider.
 We are using Gitblit as the repo provider in AF. In Gitblit only the
 fork option is available. The pull merge capability of Gitblit is still in
 work in progress state according to their discussions. They are hoping to
 make it available in the next release but still could not find even a trunk
 build of those components. In that case we will need to implement that
 capability in AF side.
 Therefore, we will give all these repo releated options from AF side.

 Thanks
 Manisha

 --
 ~Regards
 *Manisha Eleperuma*
 Software Engineer
 WSO2, Inc.: http://wso2.com
 lean.enterprise.middleware

 *blog:  http://manisha-eleperuma.blogspot.com/
 http://manisha-eleperuma.blogspot.com/*
 *mobile:  +94 71 8279777 %2B94%2071%208279777*

   --
 You received this message because you are subscribed to the Google
 Groups WSO2 Engineering Group group.
 To unsubscribe from this group and stop 

Re: [Architecture] Resilient application creation process

2014-01-05 Thread Ashansa Perera
@Ramith
Application creation process do
- repository creation
- jenkins job creation
- publish application creation ( which calls all the application event
listeners )


On Mon, Jan 6, 2014 at 10:55 AM, Ashansa Perera asha...@wso2.com wrote:

 Agree with Janaka's idea of having rollback mechanism first and of course
 we can have retry logic in each operation as well.


 On Mon, Jan 6, 2014 at 10:48 AM, Ramith Jayasinghe ram...@wso2.comwrote:

 Shall we list down what are the steps involved in creating a application.
 then what needs to be to undo each step that was performed?


 On Mon, Jan 6, 2014 at 10:45 AM, Gayan Dhanushka gay...@wso2.com wrote:

 Hi Janaka,

 IMO it is ok for us to have a mechanism for retrying. If it was an
 intermittent issue that interrupted the system from creating the
 application this will solve it. If the application creation failed after
 retrying for a few times we can roll back the entire process. If it is some
 other serious issue rolling back and trying to start the application
 creation process from the begining still won't work.

 WDYT?

 GayanD

 Gayan Dhanuska
 Software Engineer
 http://wso2.com/
 Lean Enterprise Middleware

 Mobile
 071 666 2327

 Office
 Tel   : 94 11 214 5345
 Fax  : 94 11 214 5300

 Twitter : https://twitter.com/gayanlggd


 On Mon, Jan 6, 2014 at 10:33 AM, Janaka Ranabahu jan...@wso2.comwrote:

 Hi Manjula,


 On Mon, Jan 6, 2014 at 10:24 AM, Manjula Rathnayake 
 manju...@wso2.comwrote:

 Hi all,

 Another option is to retry to create the application even after
 failed. There we create the application again and again until it get
 created. If it fails, users should be able to role back. In this process,
 for example, if application rxt adding process succeeds but creating git
 repo fails, we should be able to create git repo and continue without
 trying to add the rxt.

 If I understood you correctly, then what we need to do is to retry the
 failed process/action a number of times. But that can not guarantee whether
 the app creation would complete successfully. Say that the git repo
 creation(or any other task) failed due to a network error or some other
 serious issue. Then retrying will not solve the issue. IMO, what we need in
 the first place is the rollback functionality and as an improvement we can
 do the retry logic.

 WDYT?

 Thanks,
 Janaka


 thank you.


 On Mon, Jan 6, 2014 at 10:06 AM, Ashansa Perera asha...@wso2.comwrote:

 Hi all,

 To make the application creation process resilient we discussed to
 implement a rollback mechanism so that if any resource/infrastructure
 creation failed while creating the application we can rollback the app
 creation. With this we would be able to reuse the same application key 
 and
 utilize the resources.
 Another suggestion was to ping the external servers before starting
 application creation process, but since pinging servers cannot guarantee 
 anything
 as server can fail in between, we will be going ahead with the rollback
 application creation.

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




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


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture



 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Ramith Jayasinghe
 Technical Lead
 WSO2 Inc., http://wso2.com
 lean.enterprise.middleware

 E: ram...@wso2.com
 P: +94 776715671


 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc




-- 
Thanks  Regards,

Ashansa Perera
Software Engineer
WSO2, Inc
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Resilient application creation process

2014-01-05 Thread Samisa Abeysinghe
What are the error situations that we roll back on? Are they numerous or
are they handful?

Thanks,
Samisa...


Samisa Abeysinghe

Vice President Developer Evangelism

WSO2 Inc.
http://wso2.com



On Mon, Jan 6, 2014 at 11:04 AM, Ashansa Perera asha...@wso2.com wrote:

 @Ramith
 Application creation process do
 - repository creation
 - jenkins job creation
 - publish application creation ( which calls all the application event
 listeners )


 On Mon, Jan 6, 2014 at 10:55 AM, Ashansa Perera asha...@wso2.com wrote:

 Agree with Janaka's idea of having rollback mechanism first and of course
 we can have retry logic in each operation as well.


 On Mon, Jan 6, 2014 at 10:48 AM, Ramith Jayasinghe ram...@wso2.comwrote:

 Shall we list down what are the steps involved in creating a
 application. then what needs to be to undo each step that was performed?


 On Mon, Jan 6, 2014 at 10:45 AM, Gayan Dhanushka gay...@wso2.comwrote:

 Hi Janaka,

 IMO it is ok for us to have a mechanism for retrying. If it was an
 intermittent issue that interrupted the system from creating the
 application this will solve it. If the application creation failed after
 retrying for a few times we can roll back the entire process. If it is some
 other serious issue rolling back and trying to start the application
 creation process from the begining still won't work.

 WDYT?

 GayanD

 Gayan Dhanuska
 Software Engineer
 http://wso2.com/
 Lean Enterprise Middleware

 Mobile
 071 666 2327

 Office
 Tel   : 94 11 214 5345
 Fax  : 94 11 214 5300

 Twitter : https://twitter.com/gayanlggd


 On Mon, Jan 6, 2014 at 10:33 AM, Janaka Ranabahu jan...@wso2.comwrote:

 Hi Manjula,


 On Mon, Jan 6, 2014 at 10:24 AM, Manjula Rathnayake manju...@wso2.com
  wrote:

 Hi all,

 Another option is to retry to create the application even after
 failed. There we create the application again and again until it get
 created. If it fails, users should be able to role back. In this process,
 for example, if application rxt adding process succeeds but creating git
 repo fails, we should be able to create git repo and continue without
 trying to add the rxt.

 If I understood you correctly, then what we need to do is to retry the
 failed process/action a number of times. But that can not guarantee 
 whether
 the app creation would complete successfully. Say that the git repo
 creation(or any other task) failed due to a network error or some other
 serious issue. Then retrying will not solve the issue. IMO, what we need 
 in
 the first place is the rollback functionality and as an improvement we can
 do the retry logic.

 WDYT?

 Thanks,
 Janaka


 thank you.


 On Mon, Jan 6, 2014 at 10:06 AM, Ashansa Perera asha...@wso2.comwrote:

 Hi all,

 To make the application creation process resilient we discussed to
 implement a rollback mechanism so that if any resource/infrastructure
 creation failed while creating the application we can rollback the app
 creation. With this we would be able to reuse the same application key 
 and
 utilize the resources.
 Another suggestion was to ping the external servers before starting
 application creation process, but since pinging servers cannot 
 guarantee anything
 as server can fail in between, we will be going ahead with the rollback
 application creation.

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




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


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture



 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Ramith Jayasinghe
 Technical Lead
 WSO2 Inc., http://wso2.com
 lean.enterprise.middleware

 E: ram...@wso2.com
 P: +94 776715671


 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc




 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


___
Architecture mailing list
Architecture@wso2.org

Re: [Architecture] [App Factory] Per Developer Repos

2014-01-05 Thread Janaka Ranabahu
Hi Manisha,


On Mon, Jan 6, 2014 at 11:02 AM, Manisha Gayathri mani...@wso2.com wrote:

 Hi all,

 According to the diagram in Sanjiva's mail, I have come up with a sequence
 diagram of the scenarios that would cover in this user story. Please refer
 [1]

 For M11, we are hoping to implement the scenarios up to Add Developer user
 story.

 [1].
 http://www.websequencediagrams.com/?lz=dGl0bGUgUGVyIERldmVsb3BlciBSZXBvIEltcGwgd2l0aCBHaXRIdWIKCm9wdCBDcmVhdGUgTmV3IFRlbmFudAogAAIHQWRtaW4gLT4AKAc6ACMIYSBHaXQgb3JnYW5pemF0aW9uACESQUYAJgluAD8bQUY6IFByb3ZpZGUgZwBGDyBjb250ZXh0ICYgY3JlZGVudGlhbHMAfCJuIGFwcCBvd25lciB0ZWFtAIFtBnB1c2ggcGVybWlzcwCBHRVHaXRodWI6YwCBXAhkZXYAOQZpZiBub3QgZXhpc3RpbmcgYW5kIGFkZCB1c2VyIHRvACAJCmVuZACCQhFBcHAKICBBcHBPAIELBQCCCBIAGgdGAIJVE25ldyByZXBvIGluIHRoZSBvcmcuAIINCAogAIM-BwCCaAUAWAc6IFJlc3BvbnNlAINhBgCDcQVkZXRhaQCCMwUAXwZKZW5raW5zOiBBZGQAgxcFYnVpbGQgdGFzayBmb3IAgjgFcmVwbwCBRQpBZGQAhEEKAIE_DwCEWgk6IGludml0AIM0BnRvIGpvaW4gcHJvamVjdAogAIUACwCEFgdTdXJlIACBaRFGb3JrAIFnBW1haW4AgQEGAIFdDABjC0hlcmUncyB5b3VyIGZvcmtlZAAnCACBQSYALQdkZXYAgV8PAIYrCldyaXRlcyBDb2RlAIEyEACGCghHaXQgUHVsbACBUhAAggwLACsUAIIrC0xvY2FsIElERQCDAgYASx5zaACDaw0Ag0IJQgA0BwCDVQcAgxIHIENsb3VkOiBEZXBsb3kgZACIBQkAVRUAgz8LAIguCnRlc3QvZGVidWcAhVQKUHVsbCBSZXF1ZXMAg0UVABsFcgAXCQCFVQYAhRkKABMMIHJlY2VpdmVkAIYUEACFRgt2aQCGAgUARgkAhkALAIkQCE1lcmdlAIR_Gk5vdGlmeSBhY2NlcHQAhyEFs=vs2010


The given diagram only contains up to committing the changes. How are we
going to handle build and deployment. Can developers have their own build
and own isolated deployment with their own repo? Or are they only allowed
to test once they merge with the central repo.

Thanks,
Janaka


 Thanks
 Manisha


 On Sun, Jan 5, 2014 at 3:07 AM, Dimuthu Leelarathne dimut...@wso2.comwrote:

 Hi Manisha and all,

 Please see my comments inline.


 On Friday, January 3, 2014, Manisha Gayathri wrote:

 Hi all,

 For the M11 of App Factory, we are implementing per developer repo
 feature to give a github like experience for the developers. The user 
 story
 for this federated development will be as follows:
  - Once an app-owner creates an application, the application will be
 getting a repo in gitblit
  - When a developer logs in, he gets an option to fork the main repo
 of the app


 Fork option should not be something done by developer when he logs in.
 Here is the user story we want from Sanjiva's mail titled per-developer
 git repos for App Factory. Here is the link from the mail [1]. The diagram
 here is very precise. Basically the fork request should be sent by AF when
 a developer is added to the project. And it should be done by AF on a
 listener when add user to application event is fired, so the developer do
 not do it.

 And as per the mail states GitBlit does not support PR(pull request) git
 workflow. Then thinking along this line, IMO we should NOT implement per
 developer repos using Gitblit, because it would require major hacking. I
 believe we should integrate with GitHub for this feature.

 Basically our story should be if underlying repo provider supports PR
 workflow then we do [1]. So lets provide this feature using GitHub. And if
 one day GitBlit provides PR git workflow, lets make it available for Git
 repositories as well.

 thanks,
 dimuthu


 [1]

 http://www.websequencediagrams.com/?lz=dGl0bGUgQXBwIEZhY3RvcnkgR2l0IFJlcG9zCgpvcHQgQ3JlYXRlIE5ldyBBcHAKICBBcHBPd25lciAtPiBBRjoAGQhuABcKRiAtPiBHaXRibGl0ABMNcmVwbwogABMIADwFAEYHOiBIZXJlJ3MgeW91ciBhcHAAJAgARwZKZW5raW5zOiBBZGQAZQVidWlsZCB0YXNrIGZvACYLZW5kAIExBkFkZCBEZXZlbG9wZXIAgScPAA8JOiBpbnZpdGF0aW9uIHRvIGpvaW4gcHJvamVjdAogADYKAIFjCFN1cmUgAIFJGXJlcG8AgQkFZGV2AIFYDgBmCwCBWwxwcml2ADEIAIFCKWRldgCBXA8AgR0KV3JpdGVzIENvZGUAgS8QAIMGCUdpdCBQdWxsAIFQEACCCgsALBQAgikLTG9jYWwgSURFAIMABgBLH3NoAINkDgCDQglCADYHAINVBwCDEgcgQ2xvdWQ6IERlcGxveSBkAIJ6CQBXFQCDPwsAgyMKdGVzdC9kZWJ1ZwCEBQpQdWxsIFJlcXVlcwCDRRUAGwVyABcJAIU9BgCFEwoAEwwgcmVjZWl2ZWQAhXwQAIVCCVJldmkAhWkFAEYJAIYoCwCGDwlNZXJnZQCFABpOb3RpZnkgYWNjZXB0AIVTBQs=vs2010



   - The developer should not be permitted to directly commit to the
 main repo
  - Developer can fork the main repo and have it as his remote repo.
 Developer commits his changes to his remote repo
  - Once the changes are committed he sends a pull request with the
 committed changes
  - App owner can login to the main repo and check what are the
 available pull requests. He can review the commits and reject the
 problamatic ones and merge the accepted changes with the main repo

 There are couple of things to consider.
 We are using Gitblit as the repo provider in AF. In Gitblit only the
 fork option is available. The pull merge capability of Gitblit is still in
 work in progress state according to their discussions. They are hoping to
 make it available in the next release but still could not find even a 
 trunk
 build of those components. In that case we will need to implement that
 capability in AF side.
 Therefore, we will give all these repo releated options from AF side.

 Thanks
 Manisha

 --
 ~Regards
 

Re: [Architecture] [App Factory] Per Developer Repos

2014-01-05 Thread Manisha Gayathri
After the offline discussion with Dimuthu, we decided to go ahead with the
per developer repo for now. Per developer build, deploy and test will be
considered later.

Thanks
Manisha


On Mon, Jan 6, 2014 at 11:45 AM, Manisha Gayathri mani...@wso2.com wrote:

 Thanks for bringing this up Janaka. Was going to address this separately.

 What I thought was, the ideal scenario would be, the developer should be
 able to build, deploy and test in their own isolated environment. But this
 incorporates a lot of work and changes. In that case, the user story will
 be like once the developer does the Pull Request he waits to test until the
 Pull Merge Accept Notification comes from the app owner. This is
 inconvenient from the developer's perspective.

 Dimuthu, how can we address this?

 Thanks
 Manisha



 On Mon, Jan 6, 2014 at 11:32 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Manisha,


 On Mon, Jan 6, 2014 at 11:02 AM, Manisha Gayathri mani...@wso2.comwrote:

 Hi all,

 According to the diagram in Sanjiva's mail, I have come up with a
 sequence diagram of the scenarios that would cover in this user story.
 Please refer [1]

 For M11, we are hoping to implement the scenarios up to Add Developer
 user story.

 [1].
 http://www.websequencediagrams.com/?lz=dGl0bGUgUGVyIERldmVsb3BlciBSZXBvIEltcGwgd2l0aCBHaXRIdWIKCm9wdCBDcmVhdGUgTmV3IFRlbmFudAogAAIHQWRtaW4gLT4AKAc6ACMIYSBHaXQgb3JnYW5pemF0aW9uACESQUYAJgluAD8bQUY6IFByb3ZpZGUgZwBGDyBjb250ZXh0ICYgY3JlZGVudGlhbHMAfCJuIGFwcCBvd25lciB0ZWFtAIFtBnB1c2ggcGVybWlzcwCBHRVHaXRodWI6YwCBXAhkZXYAOQZpZiBub3QgZXhpc3RpbmcgYW5kIGFkZCB1c2VyIHRvACAJCmVuZACCQhFBcHAKICBBcHBPAIELBQCCCBIAGgdGAIJVE25ldyByZXBvIGluIHRoZSBvcmcuAIINCAogAIM-BwCCaAUAWAc6IFJlc3BvbnNlAINhBgCDcQVkZXRhaQCCMwUAXwZKZW5raW5zOiBBZGQAgxcFYnVpbGQgdGFzayBmb3IAgjgFcmVwbwCBRQpBZGQAhEEKAIE_DwCEWgk6IGludml0AIM0BnRvIGpvaW4gcHJvamVjdAogAIUACwCEFgdTdXJlIACBaRFGb3JrAIFnBW1haW4AgQEGAIFdDABjC0hlcmUncyB5b3VyIGZvcmtlZAAnCACBQSYALQdkZXYAgV8PAIYrCldyaXRlcyBDb2RlAIEyEACGCghHaXQgUHVsbACBUhAAggwLACsUAIIrC0xvY2FsIElERQCDAgYASx5zaACDaw0Ag0IJQgA0BwCDVQcAgxIHIENsb3VkOiBEZXBsb3kgZACIBQkAVRUAgz8LAIguCnRlc3QvZGVidWcAhVQKUHVsbCBSZXF1ZXMAg0UVABsFcgAXCQCFVQYAhRkKABMMIHJlY2VpdmVkAIYUEACFRgt2aQCGAgUARgkAhkALAIkQCE1lcmdlAIR_Gk5vdGlmeSBhY2NlcHQAhyEFs=vs2010


 The given diagram only contains up to committing the changes. How are we
 going to handle build and deployment. Can developers have their own build
 and own isolated deployment with their own repo? Or are they only allowed
 to test once they merge with the central repo.

 Thanks,
 Janaka


 Thanks
 Manisha


 On Sun, Jan 5, 2014 at 3:07 AM, Dimuthu Leelarathne 
 dimut...@wso2.comwrote:

 Hi Manisha and all,

 Please see my comments inline.


 On Friday, January 3, 2014, Manisha Gayathri wrote:

 Hi all,

 For the M11 of App Factory, we are implementing per developer repo
 feature to give a github like experience for the developers. The user 
 story
 for this federated development will be as follows:
  - Once an app-owner creates an application, the application will be
 getting a repo in gitblit
  - When a developer logs in, he gets an option to fork the main repo
 of the app


 Fork option should not be something done by developer when he logs in.
 Here is the user story we want from Sanjiva's mail titled per-developer
 git repos for App Factory. Here is the link from the mail [1]. The diagram
 here is very precise. Basically the fork request should be sent by AF when
 a developer is added to the project. And it should be done by AF on a
 listener when add user to application event is fired, so the developer do
 not do it.

 And as per the mail states GitBlit does not support PR(pull request)
 git workflow. Then thinking along this line, IMO we should NOT implement
 per developer repos using Gitblit, because it would require major
 hacking. I believe we should integrate with GitHub for this feature.

 Basically our story should be if underlying repo provider supports PR
 workflow then we do [1]. So lets provide this feature using GitHub. And if
 one day GitBlit provides PR git workflow, lets make it available for Git
 repositories as well.

 thanks,
 dimuthu


 [1]

 http://www.websequencediagrams.com/?lz=dGl0bGUgQXBwIEZhY3RvcnkgR2l0IFJlcG9zCgpvcHQgQ3JlYXRlIE5ldyBBcHAKICBBcHBPd25lciAtPiBBRjoAGQhuABcKRiAtPiBHaXRibGl0ABMNcmVwbwogABMIADwFAEYHOiBIZXJlJ3MgeW91ciBhcHAAJAgARwZKZW5raW5zOiBBZGQAZQVidWlsZCB0YXNrIGZvACYLZW5kAIExBkFkZCBEZXZlbG9wZXIAgScPAA8JOiBpbnZpdGF0aW9uIHRvIGpvaW4gcHJvamVjdAogADYKAIFjCFN1cmUgAIFJGXJlcG8AgQkFZGV2AIFYDgBmCwCBWwxwcml2ADEIAIFCKWRldgCBXA8AgR0KV3JpdGVzIENvZGUAgS8QAIMGCUdpdCBQdWxsAIFQEACCCgsALBQAgikLTG9jYWwgSURFAIMABgBLH3NoAINkDgCDQglCADYHAINVBwCDEgcgQ2xvdWQ6IERlcGxveSBkAIJ6CQBXFQCDPwsAgyMKdGVzdC9kZWJ1ZwCEBQpQdWxsIFJlcXVlcwCDRRUAGwVyABcJAIU9BgCFEwoAEwwgcmVjZWl2ZWQAhXwQAIVCCVJldmkAhWkFAEYJAIYoCwCGDwlNZXJnZQCFABpOb3RpZnkgYWNjZXB0AIVTBQs=vs2010



   - The developer should not be permitted to directly commit to the
 main repo
  - Developer can fork the main repo and have it as his 

Re: [Architecture] Resilient application creation process

2014-01-05 Thread Ashansa Perera
The main error situations would be the failures on any of the following
actions
- Repository creation
- Build job creation
- Issue repository creation
- Authorize roles
- Add users to application


On Mon, Jan 6, 2014 at 11:12 AM, Samisa Abeysinghe sam...@wso2.com wrote:

 What are the error situations that we roll back on? Are they numerous or
 are they handful?

 Thanks,
 Samisa...


 Samisa Abeysinghe

 Vice President Developer Evangelism

 WSO2 Inc.
 http://wso2.com



 On Mon, Jan 6, 2014 at 11:04 AM, Ashansa Perera asha...@wso2.com wrote:

 @Ramith
 Application creation process do
 - repository creation
 - jenkins job creation
 - publish application creation ( which calls all the application event
 listeners )


 On Mon, Jan 6, 2014 at 10:55 AM, Ashansa Perera asha...@wso2.com wrote:

 Agree with Janaka's idea of having rollback mechanism first and of
 course we can have retry logic in each operation as well.


 On Mon, Jan 6, 2014 at 10:48 AM, Ramith Jayasinghe ram...@wso2.comwrote:

 Shall we list down what are the steps involved in creating a
 application. then what needs to be to undo each step that was performed?


 On Mon, Jan 6, 2014 at 10:45 AM, Gayan Dhanushka gay...@wso2.comwrote:

 Hi Janaka,

 IMO it is ok for us to have a mechanism for retrying. If it was an
 intermittent issue that interrupted the system from creating the
 application this will solve it. If the application creation failed after
 retrying for a few times we can roll back the entire process. If it is 
 some
 other serious issue rolling back and trying to start the application
 creation process from the begining still won't work.

 WDYT?

 GayanD

 Gayan Dhanuska
 Software Engineer
 http://wso2.com/
 Lean Enterprise Middleware

 Mobile
 071 666 2327

 Office
 Tel   : 94 11 214 5345
 Fax  : 94 11 214 5300

 Twitter : https://twitter.com/gayanlggd


 On Mon, Jan 6, 2014 at 10:33 AM, Janaka Ranabahu jan...@wso2.comwrote:

 Hi Manjula,


 On Mon, Jan 6, 2014 at 10:24 AM, Manjula Rathnayake 
 manju...@wso2.com wrote:

 Hi all,

 Another option is to retry to create the application even after
 failed. There we create the application again and again until it get
 created. If it fails, users should be able to role back. In this 
 process,
 for example, if application rxt adding process succeeds but creating git
 repo fails, we should be able to create git repo and continue without
 trying to add the rxt.

 If I understood you correctly, then what we need to do is to retry
 the failed process/action a number of times. But that can not guarantee
 whether the app creation would complete successfully. Say that the git 
 repo
 creation(or any other task) failed due to a network error or some other
 serious issue. Then retrying will not solve the issue. IMO, what we need 
 in
 the first place is the rollback functionality and as an improvement we 
 can
 do the retry logic.

 WDYT?

 Thanks,
 Janaka


 thank you.


 On Mon, Jan 6, 2014 at 10:06 AM, Ashansa Perera asha...@wso2.comwrote:

 Hi all,

 To make the application creation process resilient we discussed to
 implement a rollback mechanism so that if any resource/infrastructure
 creation failed while creating the application we can rollback the app
 creation. With this we would be able to reuse the same application key 
 and
 utilize the resources.
 Another suggestion was to ping the external servers before starting
 application creation process, but since pinging servers cannot 
 guarantee anything
 as server can fail in between, we will be going ahead with the rollback
 application creation.

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




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


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture



 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Ramith Jayasinghe
 Technical Lead
 WSO2 Inc., http://wso2.com
 lean.enterprise.middleware

 E: ram...@wso2.com
 P: +94 776715671


 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc




 --
 Thanks  Regards,

 Ashansa Perera
 

Re: [Architecture] Resilient application creation process

2014-01-05 Thread Shamika Ariyawansa
Hi,

Is there any possibility of showing the user that what step of this
is exactly failed ?. So that user would know that due to that failure the
application creation process is cancelled and rolled back.

Regards


On Mon, Jan 6, 2014 at 11:57 AM, Ashansa Perera asha...@wso2.com wrote:

 The main error situations would be the failures on any of the following
 actions
 - Repository creation
 - Build job creation
 - Issue repository creation
 - Authorize roles
 - Add users to application


 On Mon, Jan 6, 2014 at 11:12 AM, Samisa Abeysinghe sam...@wso2.comwrote:

 What are the error situations that we roll back on? Are they numerous or
 are they handful?

 Thanks,
 Samisa...


 Samisa Abeysinghe

 Vice President Developer Evangelism

 WSO2 Inc.
 http://wso2.com



 On Mon, Jan 6, 2014 at 11:04 AM, Ashansa Perera asha...@wso2.com wrote:

 @Ramith
 Application creation process do
 - repository creation
 - jenkins job creation
 - publish application creation ( which calls all the application event
 listeners )


 On Mon, Jan 6, 2014 at 10:55 AM, Ashansa Perera asha...@wso2.comwrote:

 Agree with Janaka's idea of having rollback mechanism first and of
 course we can have retry logic in each operation as well.


 On Mon, Jan 6, 2014 at 10:48 AM, Ramith Jayasinghe ram...@wso2.comwrote:

 Shall we list down what are the steps involved in creating a
 application. then what needs to be to undo each step that was performed?


 On Mon, Jan 6, 2014 at 10:45 AM, Gayan Dhanushka gay...@wso2.comwrote:

 Hi Janaka,

 IMO it is ok for us to have a mechanism for retrying. If it was an
 intermittent issue that interrupted the system from creating the
 application this will solve it. If the application creation failed after
 retrying for a few times we can roll back the entire process. If it is 
 some
 other serious issue rolling back and trying to start the application
 creation process from the begining still won't work.

 WDYT?

 GayanD

 Gayan Dhanuska
 Software Engineer
 http://wso2.com/
 Lean Enterprise Middleware

 Mobile
 071 666 2327

 Office
 Tel   : 94 11 214 5345
 Fax  : 94 11 214 5300

 Twitter : https://twitter.com/gayanlggd


 On Mon, Jan 6, 2014 at 10:33 AM, Janaka Ranabahu jan...@wso2.comwrote:

 Hi Manjula,


 On Mon, Jan 6, 2014 at 10:24 AM, Manjula Rathnayake 
 manju...@wso2.com wrote:

 Hi all,

 Another option is to retry to create the application even after
 failed. There we create the application again and again until it get
 created. If it fails, users should be able to role back. In this 
 process,
 for example, if application rxt adding process succeeds but creating 
 git
 repo fails, we should be able to create git repo and continue without
 trying to add the rxt.

 If I understood you correctly, then what we need to do is to retry
 the failed process/action a number of times. But that can not guarantee
 whether the app creation would complete successfully. Say that the git 
 repo
 creation(or any other task) failed due to a network error or some other
 serious issue. Then retrying will not solve the issue. IMO, what we 
 need in
 the first place is the rollback functionality and as an improvement we 
 can
 do the retry logic.

 WDYT?

 Thanks,
 Janaka


 thank you.


 On Mon, Jan 6, 2014 at 10:06 AM, Ashansa Perera 
 asha...@wso2.comwrote:

 Hi all,

 To make the application creation process resilient we discussed to
 implement a rollback mechanism so that if any resource/infrastructure
 creation failed while creating the application we can rollback the app
 creation. With this we would be able to reuse the same application 
 key and
 utilize the resources.
 Another suggestion was to ping the external servers before
 starting application creation process, but since pinging servers 
 cannot
 guarantee anything as server can fail in between, we will be
 going ahead with the rollback application creation.

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




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


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture



 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Ramith Jayasinghe
 Technical Lead
 WSO2 Inc., http://wso2.com
 lean.enterprise.middleware

 E: 

Re: [Architecture] Resilient application creation process

2014-01-05 Thread Shiroshica Kulatilake
Hi,


On Mon, Jan 6, 2014 at 12:17 PM, Janaka Ranabahu jan...@wso2.com wrote:




 On Mon, Jan 6, 2014 at 12:10 PM, Shamika Ariyawansa sham...@wso2.comwrote:

 Hi,

 Is there any possibility of showing the user that what step of this
 is exactly failed ?. So that user would know that due to that failure the
 application creation process is cancelled and rolled back.

 +1. That would help the user to get an understanding on why(or where) the
 app creation failed.


+1 since this would also help to understand where it failed when fixing the
setup.



 Thanks,
 Janaka


 Regards


 On Mon, Jan 6, 2014 at 11:57 AM, Ashansa Perera asha...@wso2.com wrote:

 The main error situations would be the failures on any of the following
 actions
 - Repository creation
 - Build job creation
 - Issue repository creation
 - Authorize roles
 - Add users to application



Can the activities of the creation process be drawn diagrammatically where
the various error situations are also included - we might find more error
situations or different flavors while doing this.
We should also identify what errors can be lived with and what cannot be.

A retry mechanism for each activity should be included and the number can
be configurable. On failure rollback should be done. When saying rollback,
again we should ideally clearly identify what the rollback steps will be at
each activity point.

Thank you,
Shiro



 On Mon, Jan 6, 2014 at 11:12 AM, Samisa Abeysinghe sam...@wso2.comwrote:

 What are the error situations that we roll back on? Are they numerous
 or are they handful?

 Thanks,
 Samisa...


 Samisa Abeysinghe

 Vice President Developer Evangelism

 WSO2 Inc.
 http://wso2.com



 On Mon, Jan 6, 2014 at 11:04 AM, Ashansa Perera asha...@wso2.comwrote:

 @Ramith
 Application creation process do
 - repository creation
 - jenkins job creation
 - publish application creation ( which calls all the application event
 listeners )


 On Mon, Jan 6, 2014 at 10:55 AM, Ashansa Perera asha...@wso2.comwrote:

 Agree with Janaka's idea of having rollback mechanism first and of
 course we can have retry logic in each operation as well.


 On Mon, Jan 6, 2014 at 10:48 AM, Ramith Jayasinghe 
 ram...@wso2.comwrote:

 Shall we list down what are the steps involved in creating a
 application. then what needs to be to undo each step that was performed?


 On Mon, Jan 6, 2014 at 10:45 AM, Gayan Dhanushka gay...@wso2.comwrote:

 Hi Janaka,

 IMO it is ok for us to have a mechanism for retrying. If it was an
 intermittent issue that interrupted the system from creating the
 application this will solve it. If the application creation failed 
 after
 retrying for a few times we can roll back the entire process. If it is 
 some
 other serious issue rolling back and trying to start the application
 creation process from the begining still won't work.

 WDYT?

 GayanD

 Gayan Dhanuska
 Software Engineer
 http://wso2.com/
 Lean Enterprise Middleware

 Mobile
 071 666 2327

 Office
 Tel   : 94 11 214 5345
 Fax  : 94 11 214 5300

 Twitter : https://twitter.com/gayanlggd


 On Mon, Jan 6, 2014 at 10:33 AM, Janaka Ranabahu 
 jan...@wso2.comwrote:

 Hi Manjula,


 On Mon, Jan 6, 2014 at 10:24 AM, Manjula Rathnayake 
 manju...@wso2.com wrote:

 Hi all,

 Another option is to retry to create the application even after
 failed. There we create the application again and again until it get
 created. If it fails, users should be able to role back. In this 
 process,
 for example, if application rxt adding process succeeds but creating 
 git
 repo fails, we should be able to create git repo and continue without
 trying to add the rxt.

 If I understood you correctly, then what we need to do is to retry
 the failed process/action a number of times. But that can not 
 guarantee
 whether the app creation would complete successfully. Say that the 
 git repo
 creation(or any other task) failed due to a network error or some 
 other
 serious issue. Then retrying will not solve the issue. IMO, what we 
 need in
 the first place is the rollback functionality and as an improvement 
 we can
 do the retry logic.

 WDYT?

 Thanks,
 Janaka


 thank you.


 On Mon, Jan 6, 2014 at 10:06 AM, Ashansa Perera asha...@wso2.com
  wrote:

 Hi all,

 To make the application creation process resilient we discussed
 to implement a rollback mechanism so that if any 
 resource/infrastructure
 creation failed while creating the application we can rollback the 
 app
 creation. With this we would be able to reuse the same application 
 key and
 utilize the resources.
 Another suggestion was to ping the external servers before
 starting application creation process, but since pinging servers 
 cannot
 guarantee anything as server can fail in between, we will be
 going ahead with the rollback application creation.

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 

Re: [Architecture] Resilient application creation process

2014-01-05 Thread Suresh Attanayaka
Hi,

As a user I would like to continue app creation even when some steps are
failed such as Issue repository creation, And then I can try those steps
later to complete the app creation.


On Mon, Jan 6, 2014 at 12:10 PM, Shamika Ariyawansa sham...@wso2.comwrote:

 Hi,

 Is there any possibility of showing the user that what step of this
 is exactly failed ?. So that user would know that due to that failure the
 application creation process is cancelled and rolled back.

 Regards


 On Mon, Jan 6, 2014 at 11:57 AM, Ashansa Perera asha...@wso2.com wrote:

 The main error situations would be the failures on any of the following
 actions
 - Repository creation
 - Build job creation
 - Issue repository creation
 - Authorize roles
 - Add users to application


 On Mon, Jan 6, 2014 at 11:12 AM, Samisa Abeysinghe sam...@wso2.comwrote:

 What are the error situations that we roll back on? Are they numerous or
 are they handful?

 Thanks,
 Samisa...


 Samisa Abeysinghe

 Vice President Developer Evangelism

 WSO2 Inc.
 http://wso2.com



 On Mon, Jan 6, 2014 at 11:04 AM, Ashansa Perera asha...@wso2.comwrote:

 @Ramith
 Application creation process do
 - repository creation
 - jenkins job creation
 - publish application creation ( which calls all the application event
 listeners )


 On Mon, Jan 6, 2014 at 10:55 AM, Ashansa Perera asha...@wso2.comwrote:

 Agree with Janaka's idea of having rollback mechanism first and of
 course we can have retry logic in each operation as well.


 On Mon, Jan 6, 2014 at 10:48 AM, Ramith Jayasinghe ram...@wso2.comwrote:

 Shall we list down what are the steps involved in creating a
 application. then what needs to be to undo each step that was performed?


 On Mon, Jan 6, 2014 at 10:45 AM, Gayan Dhanushka gay...@wso2.comwrote:

 Hi Janaka,

 IMO it is ok for us to have a mechanism for retrying. If it was an
 intermittent issue that interrupted the system from creating the
 application this will solve it. If the application creation failed after
 retrying for a few times we can roll back the entire process. If it is 
 some
 other serious issue rolling back and trying to start the application
 creation process from the begining still won't work.

 WDYT?

 GayanD

 Gayan Dhanuska
 Software Engineer
 http://wso2.com/
 Lean Enterprise Middleware

 Mobile
 071 666 2327

 Office
 Tel   : 94 11 214 5345
 Fax  : 94 11 214 5300

 Twitter : https://twitter.com/gayanlggd


 On Mon, Jan 6, 2014 at 10:33 AM, Janaka Ranabahu jan...@wso2.comwrote:

 Hi Manjula,


 On Mon, Jan 6, 2014 at 10:24 AM, Manjula Rathnayake 
 manju...@wso2.com wrote:

 Hi all,

 Another option is to retry to create the application even after
 failed. There we create the application again and again until it get
 created. If it fails, users should be able to role back. In this 
 process,
 for example, if application rxt adding process succeeds but creating 
 git
 repo fails, we should be able to create git repo and continue without
 trying to add the rxt.

 If I understood you correctly, then what we need to do is to retry
 the failed process/action a number of times. But that can not guarantee
 whether the app creation would complete successfully. Say that the git 
 repo
 creation(or any other task) failed due to a network error or some other
 serious issue. Then retrying will not solve the issue. IMO, what we 
 need in
 the first place is the rollback functionality and as an improvement we 
 can
 do the retry logic.

 WDYT?

 Thanks,
 Janaka


 thank you.


 On Mon, Jan 6, 2014 at 10:06 AM, Ashansa Perera 
 asha...@wso2.comwrote:

 Hi all,

 To make the application creation process resilient we discussed
 to implement a rollback mechanism so that if any 
 resource/infrastructure
 creation failed while creating the application we can rollback the 
 app
 creation. With this we would be able to reuse the same application 
 key and
 utilize the resources.
 Another suggestion was to ping the external servers before
 starting application creation process, but since pinging servers 
 cannot
 guarantee anything as server can fail in between, we will be
 going ahead with the rollback application creation.

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




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


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture