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
