[ 
https://issues.apache.org/jira/browse/STRATOS-1234?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Imesh Gunaratne updated STRATOS-1234:
-------------------------------------
    Description: 
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

  was:
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


>  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