pharo-users@lists.pharo.org

Any question about pharo is welcome

View all threads

ZnServer multi-tenanting

V
vinref@gmail.com
Tue, Sep 14, 2021 6:30 AM

Hello

I am planning some web apps, each of which at least initially will have a modest amount of traffic. Therefore it makes sense to use one image to run them all at the same time.

I can do in a straightforward way from the delegate:

(ZnServer startOn: 1701)
  delegate: (ZnDefaultServerDelegate new 
    at: '/' put: 'shop';
    at: 'shop' put: [ :req | self serveShopPages: req ]; …)

and then:

#serveShopPages: aRequest
  | host |
  host := self getHostDetails: aRequest.

and

#getHostDetails: aRequest
  “Look in a class-side collection for cached host details.”

It is cumbersome though because each slot of the routing table I have to fetch the host details, but it is not too onerous. Most of the content will be static so I can cache it on the web-cache (nginx, ATS etc).

Has anyone had any experience with multi-tenanting a ZnServer? It is hard to test the scaling as it depends on 1001 different things.

Vince

Hello I am planning some web apps, each of which at least initially will have a modest amount of traffic. Therefore it makes sense to use one image to run them all at the same time. I can do in a straightforward way from the delegate: ``` (ZnServer startOn: 1701) ``` ``` delegate: (ZnDefaultServerDelegate new ``` ``` at: '/' put: 'shop'; ``` ``` at: 'shop' put: [ :req | self serveShopPages: req ]; …) ``` and then: ``` #serveShopPages: aRequest ``` ``` | host | ``` ``` host := self getHostDetails: aRequest. ``` ``` … ``` and ``` #getHostDetails: aRequest ``` ``` “Look in a class-side collection for cached host details.” ``` It is cumbersome though because each slot of the routing table I have to fetch the host details, but it is not too onerous. Most of the content will be static so I can cache it on the web-cache (nginx, ATS etc). Has anyone had any experience with multi-tenanting a ZnServer? It is hard to test the scaling as it depends on 1001 different things. Vince