stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bala ajanthan <>
Subject Re: LXC based Cartridges
Date Thu, 11 Jul 2013 11:03:53 GMT
Hi devs,
I am not a LXC expert but like to share some thoughts.

On Thu, Jul 11, 2013 at 2:19 PM, Lakmal Warusawithana <>wrote:

> Hi,
> In the current Stratos, cartridge run time is a VM. With this if we want
> to create a cartridge we have to do it for each and every IaaS that run
> Stratos. So cartridge creator have to spend lot of time on this. And it
> will be more costly when it comes to do a update of cartridges. We need to
> have a way to create universal cartridges.
+1 for universal cartridges.But if the server (eg: wso2as) supports
multi-tenancy already it is not good to spawn that server into some light
weight container, rather we can spawn a vm(as it works in current model) or
possibly LXC with more resource(we have to loose some i/o performance due
to file system mounting). If the server is not multi-tenanted(eg:php) then
we can spawn a container(lxc). This way we can optimize resource sharing
and performance.

> The best option what I see is we can use LXC as Cartridge run time.  Then
> when we create a LXC cartridge it will run on top of any IaaS, and only
> need Linux VM. Also it give more benefit like we can pack many cartridge
> runtime in single VM which give high utilization.
Here if the implementation is abstracted(OS independent way) out such a way
the container implementation is pluggable then we can run even .net
cartridge also based on other implementation.

> Here auto scaling going to happen in two levels and it’s coupled with
> smart auto scaling policies, will discuss  separate mail thread for what
> kind of auto scaling polices need for Stratos.
> Here I have drow some sample scenarios.  Before going into detail we need
> to get familiar with some terms
>    -
>    Partition
> We can have partition for each cartridge type. For example we can have PHP
> Partition, Tomcat Partition ..etc. Partition may consist of one or many VM
> and this will come from policies. (will discuss in separate mail )
>    -
>    Subscription
> User can subscribe to cartridge with some unique alias, say subscription A
>    -
>    Cartridge Process
> Cartridge Processes are runtime environment (LXC) of subscribed cartridge.
> For a one subscribed cartridge can have multiple Cartridge Processes
> depending on auto scaling policies.
> To accomplish this, Stratos Cloud Controller (CC) need to expand to
> support LXC management.  We need to have a cartridge store and it will
> store all Cartridges (LXC based images).
So here we need a image registry.possible candidate may be Openstack
galance[0]. Docker has it own image registry[1].

> Then CC can spin out Partition VM depending on policies associated with
> that cartridge type. A partition will have a CC LXC agent and for the first
> time it will copy relevant Cartridge images.  When scaling request comes to
> CC it will communicate relevant Partition’s LXC agent and agent who is
> responsible for spinning up LXCs (Cartridge Processes).
In addition to that the container can be showdown if there is no request
for long time and we can start the container when there is a request.This
way we can improve resource re-usage.We do not need to worry about the time
to the first response hence the container boot up time is very minimal if
we boot up the container(boot up a image snapshot. There is a way to save
image like base image +changes using union file-system) without re
initialize the cartridge.

> So we need to implement this LXC agent (It should handle all LXC
> management). I am looking some help from expert who in the Apache Stratos
> community who may already worked on LXC. Maybe we can used existing open
> source tools.  Docker [1] is one I found while doing some research.
Consider warden[2] also there they have abstracted out so that they were
able to build a .net warden also[3].

> Please share your expertise on this then we can finalize how we can
> implement this. We are in the process of organizing some google hangout
> sessions to conduct some technical discussion of Stratos and we can discuss
> this also in a hangout.
> thanks
> [1]
> --
> Lakmal Warusawithana
> Software Architect; WSO2 Inc.
> Mobile : +94714289692
> Blog :
>  [0]

Balachandiran Ajanthan
Blog   :
Twitter: ajanthan87
skype  :bala.ajanthan
gtalk   :balaajanthan

View raw message