[ 
https://issues.apache.org/jira/browse/STRATOS-1234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14355341#comment-14355341
 ] 

Sandaruwan Nanayakkara commented on STRATOS-1234:
-------------------------------------------------

Hi Rajkumar,

Thanks for nice explaination and I was really in need of such an advice :)
I figured that I have to implement a good design to make a backward compatible 
udate scenario using REST api. And it should handle the update procedure very 
seriously without stopping the cluster or cartridge.
I thought of PUT  /api/applications/ as it will be more precise with the 
currrent api nomenclature that has been implemented. 

But I think using a POST request and updating software or any detail in tenents 
will be more accurate for the update mechanism we are going to develop. 

Um still digging some details I want about rest api. As soon as I get on a good 
path I will post. 
PS: Your blog was really helpful :)

>  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)

Reply via email to