stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Imesh Gunaratne (JIRA)" <>
Subject [jira] [Commented] (STRATOS-1234) Software Update Management Solution for Stratos
Date Tue, 10 Mar 2015 19:12:38 GMT


Imesh Gunaratne commented on STRATOS-1234:

Hi Sandaruwan,

Thanks for sharing the Google document. IMO it needs to include more detailed information
about the project plan (may be not the implementation details but the approach). What you
have currently written is not sufficient. 

At this stage you might not need to spend time on designing the API methods. The core requirement
of this project would be to analyze and propose a solution for managing the software update
process in Stratos. We might need to design a sequence diagram to describe the entire flow.
We may also need to consider introducing new events in Messaging component to handle the process.
Up to the point where an event is sent to the cartridge instance to trigger the software update
process should be able to handle in the same way for both Puppet based and Docker based cartridges.

As the first step try to run Stratos with Mock IaaS/Kubernetes, this would allow you to understand
how it works. Then try to analyze the lifecycle of the cartridge instance (member). Thereafter
analyze and see how we can change the member's lifecycle to support software update process.
At this point draw a diagram to illustrate the eventing model. Hope this would help.


>  Software Update Management Solution for Stratos
> ------------------------------------------------
>                 Key: STRATOS-1234
>                 URL:
>             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
> 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]
> [2]

This message was sent by Atlassian JIRA

View raw message