Jump to: navigation, search

Difference between revisions of "Heat/Blueprints/Multi Region Support for Heat"

Line 54: Line 54:
 
==== Overview ====
 
==== Overview ====
 
[[File:Components Diagram.png|framed|Components Diagram]]
 
[[File:Components Diagram.png|framed|Components Diagram]]
 +
 +
Description:
 +
* More than one region (for example two: East and West)
 +
* Separate OpenStack installation (Nova, Glance, Swift, Neutron and Cinder) in each region
 +
* One Keystone service for all regions
 +
* One Horizon with multi region support
 +
* One Heat for multi region orchestration - to be clear right now it does not exist
 +
 
==== Template Flow ====
 
==== Template Flow ====
 
[[File:Template flow.png|framed|Template flow]]
 
[[File:Template flow.png|framed|Template flow]]
 
==== Challenges & Solutions ====
 
==== Challenges & Solutions ====
 +
 +
{| class="wikitable"
 +
|-
 +
! Challenge !! First step !! Future work
 +
|-
 +
| Dependencies between resources from different regions. || There will be not such dependencies and we do not need to deal with them. || Multi region Heat component will be responsible for dealing with dependencies and creation order (needs to create dependencies graph where each node is a single region template).
 +
|-
 +
| Amount of single region templates. || Only one template for each region containing all resources from that region. It is possible because there is not dependencies between regions. || Decreasing number of templates by putting independent resources to the same template (assuming we have dependencies between resources from different regions).
 +
|-
 +
| Update stack || Silly update (Delete old and Create new) || More efficient update.
 +
|}
 +
 
== What needs to be done ==
 
== What needs to be done ==
 
=== Heat ===
 
=== Heat ===
 
==== Engine ====
 
==== Engine ====
 +
 +
Adding new resources types:
 +
* VPNServices
 +
* IKEPolicy
 +
* IPsecPolicy
 +
* VPNConnections
 +
 
===== VPNServices =====
 
===== VPNServices =====
 
===== IKEPolicy =====
 
===== IKEPolicy =====

Revision as of 18:40, 15 July 2013

Overview

Introduction

Most of enterprises are focusing on Multi-cloud (using both private and public clouds) as enterprise cloud strategy. They will not completely migrate to Service Provider's cloud (public cloud). They will still keep their mission critical information assets to their premise or collocation space (private cloud).

Our goal is to create Hybrid-cloud (combination of public and private cloud). Creating Hybrid-cloud requires:

  • Seamless operation among heterogeneous environment
  • End-to-end automatic provisioning based on system template (VM, network, topology)
  • Unified control and monitoring
    • Multi-Hypervisor including bare-metal
    • Multi-Region control
    • Secure network access via Internet (VPN connection)
Multi Region Heat

Requirements & Challenges

Requirements for Heat:

  • Mapping between Regions and API endpoints
  • Mapping between Regions and Images
  • Specifying Region for each resource
  • Support for VPN as resource
  • Horizon interface for Heat with multi regions


Challenges:

  • dealing with dependencies between resources in different regions
  • minimizing number of single region templates for which multi region template will be split
  • figure out efficient way to update multi region stack

Goal

Basic Use Case Scenario

Multi region first use case

We have two regions (East and West) with separate OpenStack installations. We want to use Heat with multi region support to create in both regions:

  • Quantum Network
  • Quantum Subnet
    • 10.1.0.0/24 in East
    • 10.2.0.0/24 in West
  • Router
    • Router Interface for created subnet
    • Router Gateway for external network
  • VPN Service for created router
    • IKE Policy
    • IPsec Policy
    • VPN Connection
  • Server connected to created subnet


Template file example in appendix.

Architecture

Overview

Components Diagram

Description:

  • More than one region (for example two: East and West)
  • Separate OpenStack installation (Nova, Glance, Swift, Neutron and Cinder) in each region
  • One Keystone service for all regions
  • One Horizon with multi region support
  • One Heat for multi region orchestration - to be clear right now it does not exist

Template Flow

Template flow

Challenges & Solutions

Challenge First step Future work
Dependencies between resources from different regions. There will be not such dependencies and we do not need to deal with them. Multi region Heat component will be responsible for dealing with dependencies and creation order (needs to create dependencies graph where each node is a single region template).
Amount of single region templates. Only one template for each region containing all resources from that region. It is possible because there is not dependencies between regions. Decreasing number of templates by putting independent resources to the same template (assuming we have dependencies between resources from different regions).
Update stack Silly update (Delete old and Create new) More efficient update.

What needs to be done

Heat

Engine

Adding new resources types:

  • VPNServices
  • IKEPolicy
  • IPsecPolicy
  • VPNConnections
VPNServices
IKEPolicy
IPsecPolicy
VPNConnections

API/CLI

UI

Multi region Heat [DRAFT - WORK IN PROGRESS]

Engine

Mapping regions with API endpoints [SUPPORTED]
Mapping regions with images [SUPPORTED]
Specify RegionName property for resource [NOT SUPPORTED]

API/CLI

UI

Horizon support for multi regions

Dependencies & References

Action Plan

Appendix

Templates

Heat UI screenshots

Horizon Multi region support screenshots