You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stratos.apache.org by Everett Toews <ev...@RACKSPACE.COM> on 2013/09/12 19:27:14 UTC

Scope of work to add Rackspace support to Stratos

Hi All,

I had a great chat with Nirmal on IRC today. I got a good feel for what it will take to add Rackspace support to Stratos. Here are the work items and stumbling blocks we identified.

1. Get Stratos code and IDE setup (Done).

2. Learn how to deploy Stratos as a user.

3. Learn how to deploy Stratos as a developer from an IDE to test changes to the Cloud Controller (CC).

4. Create a Cartridge (i.e. an Image) [1] for Rackspace.

Intermediate stumbling block here is that Rackspace doesn't support customized public images but it does support customized private images. That means we'll have to provide a guide for users to create an Image that will work with Stratos. FYI, Rackspace users can't share images but a user can share an images with it's sub-users.

Cartridge creation could be eased by use of Rackspace Deployments [2] but it would take time to get up to speed on that too.

5. Implement a RackspaceIaas by extending org.apache.stratos.cloud.controller.interfaces.Iaas. 

Minor stumbling block here is that Rackspace doesn't have floating/elastic IPs. Not really a big deal. Picking up the auto assigned public IP after the instance has started will suffice. Iaas.associateAddress() will need to return an empty String.

6. Get the Stratos payload into the Cartridge instance.

Major stumbling block here is that Rackspace doesn't support cloud-init like functionality. Servers can be created with something similar known as Personality [3] but it's pretty limited.

We could hack something together so that the Image has a script that expects a URL (or some other data) in the Personality file that directs it to download the payload from the CC. This means something would have to be built into the CC to allow this download of the payload file.

This was just our initial stab at the problem. Suggestions or alternatives are welcome.

7. Security

Rackspace supports key pairs so that's okay.

Intermediate stumbling block here is that Rackspace doesn't support security groups. We might have to lock down the machines manually with iptables or something. Here's the list of ports that Stratos uses [4].

8. Documentation.

User and developer documentation

9. Examples.

Examples on how to use it.


Can anyone see anything we've missed? 

Are there any assumptions hidden in here?

As the Rackspace cloud evolves, some of these pain points will go away. But for now, this is what we have to deal with.

Thanks,
Everett


[1] https://cwiki.apache.org/confluence/display/STRATOS/Creating+a+Cartridge
[2] http://www.rackspace.com/blog/automate-your-deployments-quickly-easily-launch-your-app-in-the-rackspace-cloud/
[3] http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html
[4] https://cwiki.apache.org/confluence/display/STRATOS/Common+IaaS+Configurations

Re: Scope of work to add Rackspace support to Stratos

Posted by Paul Fremantle <pa...@wso2.com>.
Everett

It all looks fine. I don't think you've missed anything. To get the payload
over, it should be easy to access it as an HTTP resource with say a GET
from the cartridge. You can deploy JAX-RS services into the stratos
controller, so it would be easy to add the server side part.

Paul


On 12 September 2013 18:27, Everett Toews <ev...@rackspace.com>wrote:

> Hi All,
>
> I had a great chat with Nirmal on IRC today. I got a good feel for what it
> will take to add Rackspace support to Stratos. Here are the work items and
> stumbling blocks we identified.
>
> 1. Get Stratos code and IDE setup (Done).
>
> 2. Learn how to deploy Stratos as a user.
>
> 3. Learn how to deploy Stratos as a developer from an IDE to test changes
> to the Cloud Controller (CC).
>
> 4. Create a Cartridge (i.e. an Image) [1] for Rackspace.
>
> Intermediate stumbling block here is that Rackspace doesn't support
> customized public images but it does support customized private images.
> That means we'll have to provide a guide for users to create an Image that
> will work with Stratos. FYI, Rackspace users can't share images but a user
> can share an images with it's sub-users.
>
> Cartridge creation could be eased by use of Rackspace Deployments [2] but
> it would take time to get up to speed on that too.
>
> 5. Implement a RackspaceIaas by extending
> org.apache.stratos.cloud.controller.interfaces.Iaas.
>
> Minor stumbling block here is that Rackspace doesn't have floating/elastic
> IPs. Not really a big deal. Picking up the auto assigned public IP after
> the instance has started will suffice. Iaas.associateAddress() will need to
> return an empty String.
>
> 6. Get the Stratos payload into the Cartridge instance.
>
> Major stumbling block here is that Rackspace doesn't support cloud-init
> like functionality. Servers can be created with something similar known as
> Personality [3] but it's pretty limited.
>
> We could hack something together so that the Image has a script that
> expects a URL (or some other data) in the Personality file that directs it
> to download the payload from the CC. This means something would have to be
> built into the CC to allow this download of the payload file.
>
> This was just our initial stab at the problem. Suggestions or alternatives
> are welcome.
>
> 7. Security
>
> Rackspace supports key pairs so that's okay.
>
> Intermediate stumbling block here is that Rackspace doesn't support
> security groups. We might have to lock down the machines manually with
> iptables or something. Here's the list of ports that Stratos uses [4].
>
> 8. Documentation.
>
> User and developer documentation
>
> 9. Examples.
>
> Examples on how to use it.
>
>
> Can anyone see anything we've missed?
>
> Are there any assumptions hidden in here?
>
> As the Rackspace cloud evolves, some of these pain points will go away.
> But for now, this is what we have to deal with.
>
> Thanks,
> Everett
>
>
> [1]
> https://cwiki.apache.org/confluence/display/STRATOS/Creating+a+Cartridge
> [2]
> http://www.rackspace.com/blog/automate-your-deployments-quickly-easily-launch-your-app-in-the-rackspace-cloud/
> [3]
> http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html
> [4]
> https://cwiki.apache.org/confluence/display/STRATOS/Common+IaaS+Configurations




-- 
Paul Fremantle
CTO and Co-Founder, WSO2
OASIS WS-RX TC Co-chair, Apache Member

UK: +44 207 096 0336
US: +1 646 595 7614

blog: http://pzf.fremantle.org
twitter.com/pzfreo
paul@wso2.com

wso2.com Lean Enterprise Middleware

Disclaimer: This communication may contain privileged or other confidential
information and is intended exclusively for the addressee/s. If you are not
the intended recipient/s, or believe that you may have received this
communication in error, please reply to the sender indicating that fact and
delete the copy you received and in addition, you should not print, copy,
retransmit, disseminate, or otherwise use the information contained in this
communication. Internet communications cannot be guaranteed to be timely,
secure, error or virus-free. The sender does not accept liability for any
errors or omissions.

Re: Scope of work to add Rackspace support to Stratos

Posted by Everett Toews <ev...@RACKSPACE.COM>.
10. Testing testing testing

On Sep 12, 2013, at 12:27 PM, Everett Toews wrote:

> Hi All,
> 
> I had a great chat with Nirmal on IRC today. I got a good feel for what it will take to add Rackspace support to Stratos. Here are the work items and stumbling blocks we identified.
> 
> 1. Get Stratos code and IDE setup (Done).
> 
> 2. Learn how to deploy Stratos as a user.
> 
> 3. Learn how to deploy Stratos as a developer from an IDE to test changes to the Cloud Controller (CC).
> 
> 4. Create a Cartridge (i.e. an Image) [1] for Rackspace.
> 
> Intermediate stumbling block here is that Rackspace doesn't support customized public images but it does support customized private images. That means we'll have to provide a guide for users to create an Image that will work with Stratos. FYI, Rackspace users can't share images but a user can share an images with it's sub-users.
> 
> Cartridge creation could be eased by use of Rackspace Deployments [2] but it would take time to get up to speed on that too.
> 
> 5. Implement a RackspaceIaas by extending org.apache.stratos.cloud.controller.interfaces.Iaas. 
> 
> Minor stumbling block here is that Rackspace doesn't have floating/elastic IPs. Not really a big deal. Picking up the auto assigned public IP after the instance has started will suffice. Iaas.associateAddress() will need to return an empty String.
> 
> 6. Get the Stratos payload into the Cartridge instance.
> 
> Major stumbling block here is that Rackspace doesn't support cloud-init like functionality. Servers can be created with something similar known as Personality [3] but it's pretty limited.
> 
> We could hack something together so that the Image has a script that expects a URL (or some other data) in the Personality file that directs it to download the payload from the CC. This means something would have to be built into the CC to allow this download of the payload file.
> 
> This was just our initial stab at the problem. Suggestions or alternatives are welcome.
> 
> 7. Security
> 
> Rackspace supports key pairs so that's okay.
> 
> Intermediate stumbling block here is that Rackspace doesn't support security groups. We might have to lock down the machines manually with iptables or something. Here's the list of ports that Stratos uses [4].
> 
> 8. Documentation.
> 
> User and developer documentation
> 
> 9. Examples.
> 
> Examples on how to use it.
> 
> 
> Can anyone see anything we've missed? 
> 
> Are there any assumptions hidden in here?
> 
> As the Rackspace cloud evolves, some of these pain points will go away. But for now, this is what we have to deal with.
> 
> Thanks,
> Everett
> 
> 
> [1] https://cwiki.apache.org/confluence/display/STRATOS/Creating+a+Cartridge
> [2] http://www.rackspace.com/blog/automate-your-deployments-quickly-easily-launch-your-app-in-the-rackspace-cloud/
> [3] http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html
> [4] https://cwiki.apache.org/confluence/display/STRATOS/Common+IaaS+Configurations