That’s the basic idea.  Now, if you’re a reseller of cloud services, you deploy 
Horizon+Aggregator/Keystone behind your public endpoint, with your branding on 
Horizon. You then bind each of your Aggregator Regions to a Virtual Region from 
one of your providers. As a reseller, you don’t actually deploy the rest of 
OpenStack.

As for tokens, there are at least two variations, each with pros and cons: 
proxy and pass-through. Still working through implications of both.

Geoff


> On Apr 15, 2015, at 12:49 PM, Fox, Kevin M <kevin....@pnnl.gov> wrote:
> 
> So, an Aggregator would basically be a stripped down keystone that basically 
> provided a dynamic service catalog that points to the registered other 
> regions?  You could then point a horizon, cli, or rest api at the aggregator 
> service?
> 
> I guess if it was an identity provider too, it can potentially talk to the 
> remote keystone and generate project scoped tokens, though you'd need 
> project+region scoped tokens, which I'm not sure exists today?
> 
> Thanks,
> Kevin
> 
> ________________________________________
> From: Geoff Arnold [ge...@geoffarnold.com]
> Sent: Wednesday, April 15, 2015 12:05 PM
> To: OpenStack Development Mailing List (not for usage questions)
> Subject: [openstack-dev] [all] Introducing the Cloud Service Federation 
> project (cross-project design summit proposal)
> 
> tl;dr We want to implement a new system which we’re calling an Aggregator 
> which is based on Horizon and Keystone, and that can provide access to 
> virtual Regions from multiple independent OpenStack providers. We plan on 
> developing this system as a project in Stackforge, but we need help right now 
> in identifying any unexpected dependencies.
> 
> 
> 
> For the last 6-7 years, there has been great interest in the potential for 
> various business models involving multiple clouds and/or cloud providers. 
> These business models include but are not limited to, federation, reseller, 
> broker, cloud-bursting, hybrid and intercloud. The core concept of this 
> initiative is to go beyond the simple dyadic relationship between a cloud 
> service provider and a cloud service consumer to a more sophisticated “supply 
> chain” of cloud services, dynamically configured, and operated by different 
> business entities. This is an ambitious goal, but there is a general sense 
> that OpenStack is becoming stable and mature enough to support such an 
> undertaking.
> 
> Until now, OpenStack has focused on the logical abstraction of a Region as 
> the basis for cloud service consumption. A user interacts with Horizon and 
> Keystone instances for a Region, and through them gains access to the 
> services and resources within the specified Region. A recent extension of 
> this model has been to share Horizon and Keystone instances between several 
> Regions. This simplifies the user experience and enables single sign on to a 
> “single pane of glass”. However, in this configuration all of the services, 
> shared or otherwise, are still administered by a single entity, and the 
> configuration of the whole system is essentially static and centralized.
> 
> We’re proposing that the first step in realizing the Cloud Service Federation 
> use cases is to enable the administrative separation of interface and region: 
> to create a new system which provides the same user interface as today - 
> Horizon, Keystone - but which is administratively separate from the Region(s) 
> which provide the actual IaaS resources. We don’t yet have a good name for 
> this system; we’ve been referring to it as the “Aggregator”. It includes 
> slightly-modified Horizon and Keystone services, together with a subsystem 
> which configures these services to implement the mapping of “Aggregator 
> Regions” to multiple, administratively independent, “Provider Regions”. Just 
> as the User-Provider relationship in OpenStack is “on demand”, we want the 
> Aggregator-Provider mappings to be dynamic, established by APIs, rather than 
> statically configured. We want to achieve this without substantially changing 
> the user experience, and with no changes to applications or to core OpenStack 
> services. The Aggregator represents an additional way of accessing a cloud; 
> it does not replace the existing Horizon and Keystone.
> 
> The functionality and workflow is as follows: A user, X, logs into the 
> Horizon interface provided by Aggregator A. The user sees two Regions, V1 and 
> V2, and selects V1. This Region is actually provided by OpenStack service 
> provider P; it’s the Region which P knows as R4.  X now creates a new tenant 
> project, T. Leveraging the Hierarchical Multitenancy work in Kilo, T is 
> actually instantiated as a subproject of a Domain in R4, thus providing 
> namespace isolation and quota management. Now X can deploy and operate her 
> project T as she is used to, using Horizon, CLI, or other client-side tools. 
> UI and API requests are forwarded by the Aggregator to P’s Region R4. [I’ll 
> transfer this to the wiki and add diagrams.]
> 
> As noted, the high-level workflow is relatively straightforward, but we need 
> to understand two important concepts. First, how does P make R4 available for 
> use by A? Are all of the services and resources in R4 available to A, or can 
> P restrict things in some way? What’s the lifecycle of the relationship? 
> Secondly, how do we handle identity? Can we arrange that same identity 
> provider is used in the Aggregator and in the relevant domain within R4? One 
> answer to these issues is to introduce what Mark Shuttleworth called “virtual 
> Regions” at his talk in Paris; add a layer which exposes a Domain within a 
> Region (with associated IDM, quotas, and other policies) as a browsable, 
> consumable resource aggregate. To implement this, P can add a new service to 
> R4, the Virtual Region Manager, with the twin roles of defining Virtual 
> Regions in terms of physical Region resources, and managing the service 
> provider side of the negotiation with the Aggregator when setting up 
> Aggregator-to-provider mappings. The intention is that the Virtual Region 
> Manager will be a non-disruptive add-on to an existing OpenStack deployment.
> 
> Obviously there are many more issues to be solved, both within OpenStack and 
> outside (especially in the areas of OSS and BSS). However, we have the 
> beginnings of an architecture which seems to address many of the interesting 
> use cases. The immediate question is how to implement it within the OpenStack 
> process. It’s too complicated for any one of the existing OpenStack projects 
> to take it on; large-scale proposals rarely do well in this community. So we 
> intend to start this work as a new Stackforge project, with the objective of 
> completing a first version during the Liberty cycle. To meet this goal, we 
> must identify all of the features or fixes that we’ll need in other OpenStack 
> projects, and submit them for the Liberty cycle. (This is time critical!) 
> Hopefully each of these changes will be small enough that it can be accepted 
> without too much debate. The two projects most affected will be Keystone and 
> Horizon; in many cases, we will need to replace a static configuration with 
> something more dynamic.
> 
> We think the time is right to begin this work. The Keystone team paved the 
> way during Kilo with their work on Hierarchical Multitenancy, and during the 
> Liberty cycle we expect to see work in other projects that will build on 
> this. (Hierarchical quotas, aggregated Ceilometer queries, that kind of 
> thing). By starting the Cloud Service Federation project within Stackforge, 
> we hope to avoid the “complexity antibodies”. However we really need to get 
> this proposal in front of OpenStack developers, because it’s critically 
> important to identify unexpected dependencies as soon as possible. For this 
> reason, we’d like to discuss it in Vancouver as part of the cross-project 
> track in the Design Summit.
> 
> Geoff Arnold
> Cisco Cloud Services
> geoff(at)geoffarnold.com
> geoarnol(at)cisco.com
> @geoffarnold
> 
> 
> 
> 
> 
> 
> 
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to