Hi Imesh, Thanks for all the details and it was really helpful :) I think I started from a good place and I'm configuring the Puppet Master to implement the first step. I will inform you about the progress.
Regards Sandaruwan On Sun, Mar 8, 2015 at 12:00 PM, Imesh Gunaratne (JIRA) <[email protected]> wrote: > > [ > https://issues.apache.org/jira/browse/STRATOS-1234?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel > ] > > Imesh Gunaratne updated STRATOS-1234: > ------------------------------------- > Comment: was deleted > > (was: Hi Imesh, > > I would like to work on developing this solution to Stratos and already > started > digging some details. Can you give some ideas on approaches you have on > this solution? > > Thank You > Sandaruwan Nanayakkara > ) > > > Software Update Management Solution for Stratos > > ------------------------------------------------ > > > > Key: STRATOS-1234 > > URL: https://issues.apache.org/jira/browse/STRATOS-1234 > > Project: Stratos > > Issue Type: New Feature > > Reporter: Imesh Gunaratne > > Labels: gsoc2015, mentor > > > > Stratos uses Virtual Machines and Containers for hosting platform > services on different Infrastructure as a Service (IaaS) solutions. At > present Puppet is used for orchestration management on Virtual Machine > based systems and manages all required software in Puppet Master. Container > based systems creates Docker images for each platform service by including > required software in the Docker image itself. > > In Virtual Machine use-case VM instances will communicate with Puppet > master and execute the software installation. The same approach can be used > for applying software updates. > > In Docker use-case we do not use Puppet because a new container with > required software can be started in few seconds. This is very efficient > compared to using Puppet and installing software on demand. > > The requirement of this project is to implement a core Stratos feature > to propagate software updates in a live PaaS environment. > > 1. Puppet based solution: > > - Push software updates of a cartridge to Puppet Master (might not need > to automate). > > - Invoke the software update process via the Stratos API for a given > application. > > - Stratos Manager could send a new event to trigger puppet agent in each > instance to apply the updates. > > 2. Docker based solution > > - Create a new docker image (with a new image id) for the cartridge with > software updates (might not need to automate). > > - Invoke the software update process via the Stratos API for a given > application. > > - Autoscaler can implement a new feature to bring down existing > instances and create new instances with the new docker image id. > > Important! > > - In each scenario if updates are backward compatible, software update > process should execute in phases, it should not bring down the entire > cluster to apply the updates. If so the service will be unavailable for a > certain time period. The idea is to apply the updates to set of members at > a time. > > - If the updates are not backward compatible, we could make the entire > cluster unavailable at once and apply the updates. > > - Member's state needs to be changed to a new state called "Updating" > when applying the updates. > > If there is an interest on doing this project please send a mail to > imesh at apache dot org by copying Apache Dev mailing list [1]. Please > refer Stratos Wiki [2] for more information on Stratos architecture and how > it works. > > [1] http://stratos.apache.org/community/mailing-lists.html > > [2] https://cwiki.apache.org/confluence/display/STRATOS > > > > -- > This message was sent by Atlassian JIRA > (v6.3.4#6332) >
