OpenStack Murano
-
Upload
openstackstl -
Category
Technology
-
view
650 -
download
1
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
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
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
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
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
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
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.”