[ https://issues.apache.org/jira/browse/STRATOS-1234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14354979#comment-14354979 ]
Rajkumar Rajaratnam commented on STRATOS-1234: ---------------------------------------------- A small correction, I guess the API should be *PUT /api/applications/{applicationId}/updateSoftware* @Imesh, I am little confused about the HTTP method of this API, because we don't actually create or update any RESOURCES in this API. Thanks. On Tue, Mar 10, 2015 at 7:54 PM, Rajkumar Rajaratnam <rajkum...@wso2.com> -- Rajkumar Rajaratnam Committer & PMC Member, Apache Stratos Software Engineer, WSO2 Mobile : +94777568639 Blog : rajkumarr.com > 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)