On Tue, Oct 11, 2016 at 2:58 PM, Lakmal Warusawithana <lak...@wso2.com>
wrote:

>
>
> On Tue, Oct 11, 2016 at 2:51 PM, Manjula Rathnayake <manju...@wso2.com>
> wrote:
>
>> Hi Lakmal,
>>
>> On Tue, Oct 11, 2016 at 2:44 PM, Lakmal Warusawithana <lak...@wso2.com>
>> wrote:
>>
>>> Further thinking on implementation for k8s, we need to improve in 3
>>> places.
>>>
>>> 1.) Need to introduce min=0 for autoscaling policies
>>>      kubectl autoscale rc foo --min=0 --max=5 --inflight-request-count=80
>>>
>>> 2.) Have to config auto scaler for use load balancing factor
>>> (inflight-request-count) - K8S have extension in Auto scaler
>>>
>>
>>> 3.) Improve load balancer for hold first request (until service running)
>>>
>> Do you mean load balancers like nginx, haproxy? Or can we get this done
>> with gateway itself without worrying about load balancers being used?
>>
>
> With this implementation this can be any. (May be a load balancer or
> gateway etc)
>

But gateway also can terminated if idle, then this should be load balancer.


>
>
>>
>> thank you.
>>
>>
>>>
>>> On Tue, Oct 11, 2016 at 2:24 PM, Imesh Gunaratne <im...@wso2.com> wrote:
>>>
>>>> On Mon, Oct 10, 2016 at 8:01 PM, Sanjeewa Malalgoda <sanje...@wso2.com>
>>>> wrote:
>>>>
>>>>>
>>>>> When we do container based deployment standard approach we discussed
>>>>> so far was,
>>>>>
>>>>>    - At the first request check the tenant and service from URL and
>>>>>    do lookup for running instances.
>>>>>    - If matching instance available route traffic to that.
>>>>>    - Else spawn new instance using template(or image).  When we spawn
>>>>>    this new instance we need to let it know what is the current tenant and
>>>>>    data sources, configurations it should use.
>>>>>    - Then route requests to new node.
>>>>>    - After some idle time this instance may terminate.
>>>>>
>>>>> ​If we were to do this with a container cluster manager, I think we
>>>> would need to implement a custom scheduler (an entity similar to HPA in
>>>> K8S) to handle the orchestration process properly. Otherwise it would be
>>>> difficult to use the built-in orchestration features such as auto-healing
>>>> and autoscaling with this feature.
>>>>
>>>> By saying that this might be a feature which should be implemented at
>>>> the container cluster manager.
>>>>
>>>> *Suggestion*
>>>>> If we maintain hot pool(started and ready to serve requests) of
>>>>> servers for each server type(API Gateway, Identity Server etc) then we can
>>>>> cutoff server startup time + IaaS level spawn time from above process. 
>>>>> Then
>>>>> when requests comes to wso2.com tenants API Gateway we can pick
>>>>> instance from gateway instance pool and set wso2.com tenant context
>>>>> and data source using service call(assuming setting context and
>>>>> configurations is much faster).
>>>>>
>>>>
>>>> ​I think with this approach tenant isolation will become a problem. It
>>>> would be ideal to use tenancy features at the container cluster manager
>>>> level. For an example namespaces in K8S.
>>>>
>>>> Thanks
>>>>
>>>>>
>>>>> *Implementation*
>>>>> For this we need to implement some plug-in to instance spawn process.
>>>>> Then instead of spawning new instance it will pick one instance from
>>>>> the pool and configure it to behave as specific tenant.
>>>>> For this each instance running in pool can open up port, so load
>>>>> balancer or scaling component can call it and tell what is the tenant and
>>>>> configurations.
>>>>> Once it configured server close that configuration port and start
>>>>> traffic serving.
>>>>> After some idle time this instance may terminate.
>>>>>
>>>>> This approach will help us if we met following condition.
>>>>> (Instance loading time + Server startup time + Server Lookup) *>*
>>>>> (Server Lookup + Loading configuration and tenant of running server from
>>>>> external call)
>>>>>
>>>>> Any thoughts on this?
>>>>>
>>>>> Thanks,
>>>>> sanjeewa.
>>>>> --
>>>>>
>>>>> *Sanjeewa Malalgoda*
>>>>> WSO2 Inc.
>>>>> Mobile : +94713068779
>>>>>
>>>>> <http://sanjeewamalalgoda.blogspot.com/>blog
>>>>> :http://sanjeewamalalgoda.blogspot.com/
>>>>> <http://sanjeewamalalgoda.blogspot.com/>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> *Imesh Gunaratne*
>>>> Software Architect
>>>> WSO2 Inc: http://wso2.com
>>>> T: +94 11 214 5345 M: +94 77 374 2057
>>>> W: https://medium.com/@imesh TW: @imesh
>>>> lean. enterprise. middleware
>>>>
>>>>
>>>
>>>
>>> --
>>> Lakmal Warusawithana
>>> Director - Cloud Architecture; WSO2 Inc.
>>> Mobile : +94714289692
>>> Blog : http://lakmalsview.blogspot.com/
>>>
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> Manjula Rathnayaka
>> Technical Lead
>> WSO2, Inc.
>> Mobile:+94 77 743 1987
>>
>> _______________________________________________
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> Lakmal Warusawithana
> Director - Cloud Architecture; WSO2 Inc.
> Mobile : +94714289692
> Blog : http://lakmalsview.blogspot.com/
>
>


-- 
Lakmal Warusawithana
Director - Cloud Architecture; WSO2 Inc.
Mobile : +94714289692
Blog : http://lakmalsview.blogspot.com/
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to