OpenStack Murano

37
www.mirantis.com Copyright ©2015 Mirantis, Inc. All rights reserved Application Management in OpenStack St. Louis Meetup Ben Silverman, Cloud Architect, Mirantis @mirantisBen

Transcript of OpenStack Murano

www.mi rant is.com

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Application  Management in    OpenStackSt.  Louis   MeetupBen  Silverman,  Cloud  Architect, Mirantis@mirantisBen

Main  Trends

DevOps Cloud

Network Function

Virtualization (NFV)

IT-as-a-Service

Big Data processing

Use  Case  #1  -­‐ DevOps  Cloud

Environment  for  developers  to  create,  test  and  publish  applications

Environment  includes  development  tools  and  possibly  common  application  components

Use  existing  or  DIY  PaaS platform  -­‐ Cloud  Foundry,  OpenShift,  Appcara etc.

Even  Simple  Systems   Exhibit  Complex Behaviors

Xn+1 = rXn (1-Xn)

Even  a  simple  logistic    system  results  in    complex outcomes

Reference:   Wiki:  Logistic  Maps  h ttps://en.wikipedia.org/wiki/Logistic_mapCopyright ©2015 Mirantis, Inc. Al l r ights reserved

Large   Distr ibuted  Systems  are Complex

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Large   Distr ibuted  Systems  are Complex

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Large   Distr ibuted  Systems  are Complex

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Large   Distr ibuted  Systems  are Complex

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Large   Distr ibuted  Systems  are Complex

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

How  to  Handle Complexity?

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Is  there  an  easier  way?

OpenStack exposes  infrastructure resources  

so  they  can  be controlledprogrammatically

→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. Al l r ights reserved

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Every    programmable    resource  has  a    potentially    independent    revisioncycle.

Application’s    internal    configuration

… but each app also becomes a snowflake*

APPLICATION/WORKLOAD/SERVICE

Network    switch and    routing

Persistent    Storage

OperatingSystemImage

East/West    authentication  access/control

Ephemeral(cache)    Storage

Monitoring    Logging

User    credentials

*snowflake   -­‐-­‐ unique  configuration,    difficult   to  manage   consistently

Application  Workload

Get,  Share  and  Run  Apps  on  Demand

Create Catalog● Easily add new apps● Describe forms, app

dependencies, suggested configurations, billing rules etc.

Deploy Apps● Deploy applications and services

with a push of a button● Choose apps, specify settings,

and deploy

Automatically Manage Apps

● Monitor with Ceilometer● Automatically self-heal, scale

up & down, failover, backup● Application specific actions● Track usage

Murano with Open APIs or GUI

Murano – Openstack App  Catalog

Puppet    

Chef    

Salt    

Heat

...

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Declarative  Approaches  to Simplify

Enable  operators to  control    the  end  state  of  the cloud

Declarative  Approaches  to Simplify

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Local  cloud dependencies

● Networks● Security groups● Availability zones● Roles● Storage● Backup software...

Result:   versions   of    templates   for  every    deployment environment

How  can  the  developer    define?

● Deploy● Upgrade● Scale● Backup/restore

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

For  every  deployment    environment?

The  developer  shouldn’t  care    at  all  about  the  deployed    environment.

Declarative  Approaches  to Simplify

Developer  Def ines  Gener ic Lifecycle

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

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…

Documentationhttps://murano.readthedocs.org/en/stable-­‐kilo/articles/app_pkg.html

Murano  partitions   OpenStack  cloud  app/service   lifecycle mgt.

1. Catalog users:Launch  apps/services   independent  of  infra dependencies

2. Catalog Application/Service developersSpecify  apps’  infra  needs,  no  direct  binding  of resources

3. Cloud administratorsConfigure  and  control  apps  for  automation   for  deployment,    operations for OpenStack  cloudapps/workloads

Murano  delivers  apps/services  to  OpenStack faster

OperatorDeveloper

Imperative  Approach  to Simplify

Service    User

Publish  toCatalog

InfrastructureRequirements

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

CatalogServiceUser

MurantoCatalog  Developer

MuranoCatalogOperator

Infrastructure  Requirements

Deployment  cfg &  app  mgt

Keep complexity in the box improves out-­‐of-­‐box

1.Define

-­‐ RawApplication-­‐ Murano  Packaging    and  Logic

-­‐ Heat,  etc.  (Orches-­‐tration  Assets  &    Templates)

-­‐ VMs/OS-­‐Images

2.  Operate 1.  Click

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

2.  Launch

OpenStack  Catalog    Developers  and Operators

White Box

OpenStackCatalog  Users

Black  Box

Murano  High-­‐Level Workflow

Define    App/Service  Lifecycle    Actions

Push  Murano    Package  toGit

Pull   Murano    Packagefrom  

Git

Modifyfor Local  Cloud  and    Merge

Publish to    Catalog

BrowseCatalogManageEnviron-­‐ments

App/Service    Actions

Consumer

Operator

Developer

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

How  do  developers  start  working  with  Murano?

1. Glance2. Heat  Templates3. Murano Packages

Glance  images  – 3  words  “Disk  Image  Builder”

Drop  it  like  it’s  HOT  – Heat  Orchestration  Templates

Murano – Ingredients

• YAML  definitions  of  assets• Javascript site  to  display• New  content/assets  flow  

through  the  OpenStackCommunity  Process

• Cosumable via  Horizon  or  an  OpenStack API

http://murano.readthedocs.org

Developer  Def ines  Gener ic Lifecycle

https://murano.readthedocs.org/en/stable-­kilo/murano_pl/murano_pl_index.html

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

• MuranoPL  Core  Library• Class:  Object• Class:  Application• Class:  SecurityGroupManager• Class:  Environment• Class:  Instance• Class:  Network• Class:  NewNetwork

• Murano PL  System  Class  Definitions• io.murano.system.Resources• io.murano.system.Agent• io.murano.system.AgentListener• io.murano.system.HeatStack• io.murano.system.InstanceNotifier• io.murano.system.NetworkExplorer• io.murano.system.StatusReporter

Wordpress Example

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

https://github.com/openstack/murano-­‐apps/tree/master/WordPress/package

Wordpress Example

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Wordpress Example

Copyright ©2015 Mirantis, Inc. Al l r ights 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. Al l r ights reserved

Cloud  Operator  Adapts  to  Local Clouds

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Easily  re-­‐use   Heat,  Chef,  Puppet  and  any  local scripts

https://github.com/openstack/murano-­‐apps/blob/master/Chef/GitChef/package/Classes/GitChef.   y  aml

to  specify  local  rules  and policies

Cloud Operator

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Refine  the  UI  to  only  ask  for  needed input

https://murano.readthedocs.org/en/stable-­‐kilo/articles/dynamic_ui.html

“The  main  purpose   of  Dynamic  UI  is  to  generate  application  creation  forms  “on-­‐the-­‐fly”.  Murano dashboard  doesn’t   know  anything  about  what  applications  can  be  deployed  and  which  web  form  are  needed   to  create  application  instance.  So  all  application  definitions  should  contain  a  yaml file  which  tells  dashboard  how  to  create  an  application  and  what  validations  are  to  be  applied.”  

Copyright ©2015 Mirantis, Inc. Al l r ights reserved

Consumer  Uses  Cloud  Operator  Controlled UI/API