Copyright © 2015 Mirantis, Inc. All rights reserved
www.mirantis.com
Application Management in
OpenStack
OpenStack Israel - 5 Aug 2015
Craig Peters, Director of Product Management, Mirantis
@peterscraig
Copyright © 2015 Mirantis, Inc. All rights reserved
Even Simple Systems Exhibit Complex Behaviors
Even a simple logistic
system results in
complex outcomes
Xn+1
= rXn
(1-Xn
)
Reference: Wiki: Logistic Maps https://en.wikipedia.org/wiki/Logistic_map
Copyright © 2015 Mirantis, Inc. All rights reserved
Large Distributed Systems are Complex
Copyright © 2015 Mirantis, Inc. All rights reserved
Large Distributed Systems are Complex
Copyright © 2015 Mirantis, Inc. All rights reserved
Large Distributed Systems are Complex
Copyright © 2015 Mirantis, Inc. All rights reserved
Large Distributed Systems are Complex
Copyright © 2015 Mirantis, Inc. All rights reserved
Large Distributed Systems are Complex
Copyright © 2015 Mirantis, Inc. All rights reserved
How to Handle Complexity?
Copyright © 2015 Mirantis, Inc. All rights reserved
OpenStack exposes
infrastructure resources
so they can be controlled
programmatically
→Compute
→Network
→Persistent Storage
→Ephemeral Caching
→Auth/Access
→Monitor/Logs/Audit
→OS-Image/Virtualization
→User Credentials
Each app “can” specify its own infrastructure...
Copyright © 2015 Mirantis, Inc. All rights reserved
Every
programmable
resource has a
potentially
independent
revision
cycle.
Application’s
internal
configuration
… but each app also becomes a snowflake*
APPLICATION
/WORKLOAD
/SERVICE
Network
switch and
routing
Persistent
Storage
Operating
System
Image
East/West
authentication
access/control
Ephemeral
(cache)
Storage
Monitoring
Logging
User
credentials
*snowflake -- unique configuration,
difficult to manage consistently
Copyright © 2015 Mirantis, Inc. All rights reserved
Puppet
Chef
Salt
Heat
...
Declarative Approaches to Simplify
Enable operators to control
the end state of the cloud
Copyright © 2015 Mirantis, Inc. All rights reserved
Declarative Approaches to Simplify
Local cloud dependencies
● Networks
● Security groups
● Availability zones
● Roles
● Storage
● Backup software...
Result: versions of
templates for every
deployment environment
Copyright © 2015 Mirantis, Inc. All rights reserved
How can the developer
define?
● Deploy
● Upgrade
● Scale
● Backup/restore
For every deployment
environment?
The developer shouldn’t care
at all about the deployed
environment.
Declarative Approaches to Simplify
Copyright © 2015 Mirantis, Inc. All rights reserved
OperatorDeveloper
Imperative Approach to Simplify
Service
User
Infrastructure Requirements
Deployment config & app mgt.
Publish to Catalog
Copyright © 2015 Mirantis, Inc. All rights reserved
Keep complexity in the box improves out-of-box
OpenStack Catalog
Developers and Operators
1. Define
- Raw Application
- Murano Packaging
and Logic
- Heat, etc. (Orches-
tration Assets &
Templates)
- VMs/OS-Images
2. Operate
OpenStack Catalog
Users
1. Click 2. Launch
White Box Black Box
Copyright © 2015 Mirantis, Inc. All rights reserved
Murano High-Level Workflow
Define
App/Service
Lifecycle
Actions
Push Murano
Package to Git
Pull Murano
Package from
Git
Modify for Local
Cloud and
Merge
Publish to
Catalog
Browse Catalog
Manage
Environ-
ments
App/Service
Actions
ConsumerOperatorDeveloper
Copyright © 2015 Mirantis, Inc. All rights reserved
Developer Defines Generic Lifecycle
Define the basic steps for each lifecycle events using a
simple workflow language
Object oriented to define events with inputs
● deploy, upgrade, scale, backup, restore, etc…
Documentation https://murano.readthedocs.org/en/stable-kilo/articles/app_pkg.html
Copyright © 2015 Mirantis, Inc. All rights reserved
Developer Defines Generic Lifecycle
https://murano.readthedocs.org/en/stable-kilo/murano_pl/murano_pl_index.html
Copyright © 2015 Mirantis, Inc. All rights reserved
Wordpress Example
Copyright © 2015 Mirantis, Inc. All rights reserved
Wordpress Example
https://github.com/openstack/murano-apps/tree/master/WordPress/package
Copyright © 2015 Mirantis, Inc. All rights reserved
Wordpress Example
Copyright © 2015 Mirantis, Inc. All rights reserved
Continuous signaling from dev to ops
OperatorDeveloper
Application
Repository
Infrastructure
Ops Config
Repository
Murano Package:
• Manifest
• Classes
• User input requirements
• Image dependencies
• Supporting Files
Murano
Service
Murano service
codifies Dev-Ops
contract
Copyright © 2015 Mirantis, Inc. All rights reserved
Cloud Operator Adapts to Local Clouds
Application | Chef | Puppet (extensible)
https://github.com/openstack/murano-
agent/tree/master/muranoagent/executors
Copyright © 2015 Mirantis, Inc. All rights reserved
Cloud Operator Adapts to Local Clouds
Easily re-use Heat, Chef, Puppet and any local scripts
https://github.com/openstack/murano-
apps/blob/master/Chef/GitChef/package/Classes/GitChef.
yaml
to specify local rules and policies
Copyright © 2015 Mirantis, Inc. All rights reserved
Cloud Operator
Refine the UI to only ask for needed input
https://murano.readthedocs.org/en/stable-
kilo/articles/dynamic_ui.html
Copyright © 2015 Mirantis, Inc. All rights reserved
Copyright © 2015 Mirantis, Inc. All rights reserved
Consumer Uses Cloud Operator Controlled UI/API
Copyright © 2015 Mirantis, Inc. All rights reserved
Murano partitions OpenStack cloud app/service lifecycle mgt.
1. Catalog users:
Launch apps/services independent of infra dependencies
2. Cloud Application/Service developers
Specify apps’ infra needs, no direct binding of resources
3. Cloud administrators
Configure and control automation for deployment,
operations OpenStack cloud apps/workloads
Murano delivers apps/services to OpenStack faster
Copyright © 2015 Mirantis, Inc. All rights reserved
OpenStack Community Apps Catalog
http://apps.openstack.org
https://wiki.openstack.org/wiki/App-Catalog
https://github.com/openstack/murano-apps
Copyright © 2015 Mirantis, Inc. All rights reserved
Thank You!
Q&A
Copyright © 2015 Mirantis, Inc. All rights reserved
Accelerates uptake of OpenStack Cloud & workloads
● Infrastructure flexibility without reducing stability
● Simple out-of-box launch to cloud for users -> point/click
● Insulate app developers and users from infra changes, complexity
● Streamline packaging, automation-chain complexity
● Simplify how developers specify infra needs
● Improve OpenStack interoperability
● Readily extensible for orchestration, PaaS frameworks, other IaaS
● Support cloud native, cloud-ready and legacy apps
Key Murano benefits
Copyright © 2015 Mirantis, Inc. All rights reserved
DEVS
IT USERS
IT INFRA
Validation
Test Target
Tenant config
New version
of App ready
for Test
New version
of App validated
for deployment
Murano
sets infra app
deployment
reqts
Murano
publishes
app to
catalog
User
launches
app
directly
Enabling IT Ops for continuous deployment
Continuous Integration Continuous Deployment

Application Management in Openstack

  • 1.
    Copyright © 2015Mirantis, Inc. All rights reserved www.mirantis.com Application Management in OpenStack OpenStack Israel - 5 Aug 2015 Craig Peters, Director of Product Management, Mirantis @peterscraig
  • 2.
    Copyright © 2015Mirantis, Inc. All rights reserved Even Simple Systems Exhibit Complex Behaviors Even a simple logistic system results in complex outcomes Xn+1 = rXn (1-Xn ) Reference: Wiki: Logistic Maps https://en.wikipedia.org/wiki/Logistic_map
  • 3.
    Copyright © 2015Mirantis, Inc. All rights reserved Large Distributed Systems are Complex
  • 4.
    Copyright © 2015Mirantis, Inc. All rights reserved Large Distributed Systems are Complex
  • 5.
    Copyright © 2015Mirantis, Inc. All rights reserved Large Distributed Systems are Complex
  • 6.
    Copyright © 2015Mirantis, Inc. All rights reserved Large Distributed Systems are Complex
  • 7.
    Copyright © 2015Mirantis, Inc. All rights reserved Large Distributed Systems are Complex
  • 8.
    Copyright © 2015Mirantis, Inc. All rights reserved How to Handle Complexity?
  • 9.
    Copyright © 2015Mirantis, Inc. All rights reserved OpenStack exposes infrastructure resources so they can be controlled programmatically →Compute →Network →Persistent Storage →Ephemeral Caching →Auth/Access →Monitor/Logs/Audit →OS-Image/Virtualization →User Credentials Each app “can” specify its own infrastructure...
  • 10.
    Copyright © 2015Mirantis, Inc. All rights reserved Every programmable resource has a potentially independent revision cycle. Application’s internal configuration … but each app also becomes a snowflake* APPLICATION /WORKLOAD /SERVICE Network switch and routing Persistent Storage Operating System Image East/West authentication access/control Ephemeral (cache) Storage Monitoring Logging User credentials *snowflake -- unique configuration, difficult to manage consistently
  • 11.
    Copyright © 2015Mirantis, Inc. All rights reserved Puppet Chef Salt Heat ... Declarative Approaches to Simplify Enable operators to control the end state of the cloud
  • 12.
    Copyright © 2015Mirantis, Inc. All rights reserved Declarative Approaches to Simplify Local cloud dependencies ● Networks ● Security groups ● Availability zones ● Roles ● Storage ● Backup software... Result: versions of templates for every deployment environment
  • 13.
    Copyright © 2015Mirantis, Inc. All rights reserved How can the developer define? ● Deploy ● Upgrade ● Scale ● Backup/restore For every deployment environment? The developer shouldn’t care at all about the deployed environment. Declarative Approaches to Simplify
  • 14.
    Copyright © 2015Mirantis, Inc. All rights reserved OperatorDeveloper Imperative Approach to Simplify Service User Infrastructure Requirements Deployment config & app mgt. Publish to Catalog
  • 15.
    Copyright © 2015Mirantis, Inc. All rights reserved Keep complexity in the box improves out-of-box OpenStack Catalog Developers and Operators 1. Define - Raw Application - Murano Packaging and Logic - Heat, etc. (Orches- tration Assets & Templates) - VMs/OS-Images 2. Operate OpenStack Catalog Users 1. Click 2. Launch White Box Black Box
  • 16.
    Copyright © 2015Mirantis, Inc. All rights reserved Murano High-Level Workflow Define App/Service Lifecycle Actions Push Murano Package to Git Pull Murano Package from Git Modify for Local Cloud and Merge Publish to Catalog Browse Catalog Manage Environ- ments App/Service Actions ConsumerOperatorDeveloper
  • 17.
    Copyright © 2015Mirantis, Inc. All rights reserved Developer Defines Generic Lifecycle Define the basic steps for each lifecycle events using a simple workflow language Object oriented to define events with inputs ● deploy, upgrade, scale, backup, restore, etc… Documentation https://murano.readthedocs.org/en/stable-kilo/articles/app_pkg.html
  • 18.
    Copyright © 2015Mirantis, Inc. All rights reserved Developer Defines Generic Lifecycle https://murano.readthedocs.org/en/stable-kilo/murano_pl/murano_pl_index.html
  • 19.
    Copyright © 2015Mirantis, Inc. All rights reserved Wordpress Example
  • 20.
    Copyright © 2015Mirantis, Inc. All rights reserved Wordpress Example https://github.com/openstack/murano-apps/tree/master/WordPress/package
  • 21.
    Copyright © 2015Mirantis, Inc. All rights reserved Wordpress Example
  • 22.
    Copyright © 2015Mirantis, Inc. All rights reserved Continuous signaling from dev to ops OperatorDeveloper Application Repository Infrastructure Ops Config Repository Murano Package: • Manifest • Classes • User input requirements • Image dependencies • Supporting Files Murano Service Murano service codifies Dev-Ops contract
  • 23.
    Copyright © 2015Mirantis, Inc. All rights reserved Cloud Operator Adapts to Local Clouds Application | Chef | Puppet (extensible) https://github.com/openstack/murano- agent/tree/master/muranoagent/executors
  • 24.
    Copyright © 2015Mirantis, Inc. All rights reserved Cloud Operator Adapts to Local Clouds Easily re-use Heat, Chef, Puppet and any local scripts https://github.com/openstack/murano- apps/blob/master/Chef/GitChef/package/Classes/GitChef. yaml to specify local rules and policies
  • 25.
    Copyright © 2015Mirantis, Inc. All rights reserved Cloud Operator Refine the UI to only ask for needed input https://murano.readthedocs.org/en/stable- kilo/articles/dynamic_ui.html
  • 26.
    Copyright © 2015Mirantis, Inc. All rights reserved
  • 27.
    Copyright © 2015Mirantis, Inc. All rights reserved Consumer Uses Cloud Operator Controlled UI/API
  • 28.
    Copyright © 2015Mirantis, Inc. All rights reserved Murano partitions OpenStack cloud app/service lifecycle mgt. 1. Catalog users: Launch apps/services independent of infra dependencies 2. Cloud Application/Service developers Specify apps’ infra needs, no direct binding of resources 3. Cloud administrators Configure and control automation for deployment, operations OpenStack cloud apps/workloads Murano delivers apps/services to OpenStack faster
  • 29.
    Copyright © 2015Mirantis, Inc. All rights reserved OpenStack Community Apps Catalog http://apps.openstack.org https://wiki.openstack.org/wiki/App-Catalog https://github.com/openstack/murano-apps
  • 30.
    Copyright © 2015Mirantis, Inc. All rights reserved Thank You! Q&A
  • 31.
    Copyright © 2015Mirantis, Inc. All rights reserved Accelerates uptake of OpenStack Cloud & workloads ● Infrastructure flexibility without reducing stability ● Simple out-of-box launch to cloud for users -> point/click ● Insulate app developers and users from infra changes, complexity ● Streamline packaging, automation-chain complexity ● Simplify how developers specify infra needs ● Improve OpenStack interoperability ● Readily extensible for orchestration, PaaS frameworks, other IaaS ● Support cloud native, cloud-ready and legacy apps Key Murano benefits
  • 32.
    Copyright © 2015Mirantis, Inc. All rights reserved DEVS IT USERS IT INFRA Validation Test Target Tenant config New version of App ready for Test New version of App validated for deployment Murano sets infra app deployment reqts Murano publishes app to catalog User launches app directly Enabling IT Ops for continuous deployment Continuous Integration Continuous Deployment