* Adding the missing images.* Hi All,
Currently I’m working with php application type support for wso2 appfactory product. The scenario is as follows, Multi-Tenant Cartridge Case The existing supported application types (ex: java web application) work with in-container multi-tenancy support which means those applications run inside wso2 application server, deployed inside one cartridge instance of stratos (of course with many for clustering). Based on the current “dev setup” and “production deployment”, when new tenant is created with app factory, relevant tenant is created in the wso2-as of the shared cartridge instance illustrated as follows. The sample is for dev cloud without LB. (same as dev setup). The cartridge instance could be spawned before tenant is created. Hence, the “Public IP address” or the “DNS name” is know. [image: Inline image 1] Single Tenant Cartridge Case But, in the “php application type” case, no multi-tenant cartridges are there, we have to use single tenant cartridges with “apache http server”. In this case, Need to spawn a new instance when a new tenant is created. The workflow would be as follows. [image: Inline image 2] Generating Application URL of Single Tenant Application Types But the problem in single-tenant case is, the Public IP or the DNS name of the newly spawned cartridge is unknow. Or in case of clustering, the Public IP or the DNS name of the LB is unknow. Hence, In order to get the Public IP of entry point, I propose the following workflow. [image: Inline image 3] The purpose of this design is to get the “Public IP of DNS Name” of the newly spawned cartridge or the LB of the cartridge cluster (If cluster is present). The logic is as follows, 1. When server is started App-Fac’s “StratosMemberActivated Listener” is subscribed to topic in active mq. 2. Tenant user create new single tenant type application. 3. App-Fac do the necessary logic and then, subscribed to new cartridge via stratos controller. 4. When cartridge is spawning it sends events to topic in active mq and when cartridge is activated, it send the “MemberActivated Event” to the topic. 5. App-Fac receives the “MemberActivated Event” and get the “Public IP” of the cartridge or the LB. 6. App-Fac generates the “Application URL” using received public IP and store in the registry. 7. When user request the “Application URL” of the newly created application, App-Fac get the url from registry. In this feature, upto figure :02 is already done and the application url generation has designed based on the figure: 03. NOTE : In order to get the cartridge’s Public IP or DNS name (or LB Public IP if clustering is present), there are 3 options. 1. Subscribe to topic in stratos and get the relevant information. 2. Stratos can provide a REST API and app-fac can pool to get the information. 3. Cartridge agent can be modified to send information to provided url of app-fac. >From above 3 approaches, the first one is selected. I expect your valuable comment on this design and approach to generate url of the applications deployed with single tenant cartridges, Any comment would be appreciated. Thanks, Roshan Deniyage Associate Technical Lead WSO2, Inc: http://wso2.com Mobile : +94 777636406 Twitter : *https://twitter.com/roshku <https://twitter.com/roshku>* LinkedIn : https://www.linkedin.com/in/roshandeniyage
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
