Hi All,

This requirement came for Dmitry's uberstories. The idea is to let users to
have the freedom to decide the actual production url of a deployed
application. I will describe the details it as follows.

*The Problem:*
In App Factory, Application Servers will be fronted with Apache Stratos LB
where it's proxyPort attribute are set to 80(HTTP) and 443(HTTPS).
Say a web application of a particular tenant is ready to use. Therefore it
is now deployed in Production stage and the url to access this application
is similar to below pattern in the current implementation.

http://appserver.prod.milestones.appfactory.wso2.com/t/
<tenant_domain>/webapps/<AppKey>-<Version>/

e.g:
http://appserver.prod.milestones.appfactory.wso2.com/t/myorg.com/webapps/sampleapp-1.0.0/

*The Requirement:*
Rather than having a lengthy url with unnecessary information is it
possible to map this url to a more user-friendly and meaningful pattern?

*The solution*

*Initial Plan (Had a discussion with Lakmal to implement this feature in
Apache Stratos LB):*

In order to implement this requirement in Apache Stratos LB front, the
solution has to be generic and with a minimal impact to it's performance.
Moreover following facts need to be taken into consideration while
designing the mapped url from App Factory perspective.

1. It's not particle to let the user to decide the mapped url. Because
certain data has to be added to url for it's uniqueness.
 - Cartridge type (Which has the capability to deploy PHP, ESB, Web,
jaggery Applications)
 - Stage (Dev, Test, Prod)
 - App name with the version (Because there can be multiple versions of the
same application in Production)

The mapped url pattern can be as follows:

http://appserver.prod.<tenant_domain>/webapps/<AppKey>-<Version>/

e.g:
http://appserver.prod.myorg.com/webapps/sampleapp-1.0.0/

Note: If we remove the version from this mapped url again the number of
mappings that we need to keep in LB front will increase which is not a good
solution.

If the above solution is implemented only below mapping is required to have
in Straos LB front and the rest can be generated with the facts comes with
the mapped url.

myorg.com - milestones.appfactory.wso2.com


*New direction (Had a discussion with Lakmal and Azeez):*

With the initial plan the actual requirement of having a custom url cannot
be achieved properly. Because the mapped url pattern has lot of
restrictions.
Now the solution is to implement the url mapping logic in AS and domain
mapping logic in Apache Stratos LB. In that case a mapped url can be a
simple and meaningful url.
By having the domain mapping in LB front, the corresponding cluster can be
identified when the mapped url is hit from the browser.
Wso2 AS previously had this url mapper component and it requires to be
added back to implement this solution.
What was the reason that this url mapper was removed from AS?

Please share your thoughts and ideas...

-- 
Thanks and Regards,

Punnadi Gunarathna
Senior Software Engineer,
WSO2, Inc.; http://wso2.com <http://wso2>
Blog: http://hi-my-world.blogspot.com/
Tel : 94 11 214 5345
Fax :94 11 2145300



 <http://lalajisureshika.blogspot.com/>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to