SlideShare ist ein Scribd-Unternehmen logo
1 von 90
Downloaden Sie, um offline zu lesen
Copyright © 2016 Mirantis, Inc. All rights reserved
software.mirantis.com
Production Plone
on OpenStack Cloud
Learn how to automate scalable multi-node deployments of Plone for
OpenStack Cloud and see how easy it is to have this deployment tweaked to
your taste
Copyright © 2016 Mirantis, Inc. All rights reserved
About me
● 4 Years in OpenStack Community
● Now Development Manager for Murano
● Started as regular developer
Sergey Melikyan
smelikyan@mirantis.com
@sergmelikyan
fb.me/sergmelikyan #running #sightseeing
#hiking #motorcycles #rock
Copyright © 2016 Mirantis, Inc. All rights reserved
Production OpenStack Plone Deployments
How to deploy Plone on OpenStack
● Introduction to the Cloud and OpenStack
● Basics of automation using built-in OpenStack tools
● How to automate scalable multi-node deployments
● Extend a cloud-ready Plone for your use-cases
● Everything else you want to learn today and I can help
Copyright © 2016 Mirantis, Inc. All rights reserved
Introduction to the Cloud and
OpenStack
why your head is not in the clouds yet?
Copyright © 2016 Mirantis, Inc. All rights reserved
Definition: Cloud
As described by the National Institute of Standards and Technology (NIST):
“Cloud computing is a model for enabling ubiquitous, convenient,
on-demand network access to a shared pool of configurable
computing resources (e.g., networks, servers, storage, applications,
and services) that can be rapidly provisioned and released with
minimal management effort or service provider interaction”
Copyright © 2016 Mirantis, Inc. All rights reserved
Essential Characteristics of the Cloud*
● Provisioning of computing capabilities (compute,
network, storage) without human interaction
On-demand Self-service
● Services are available over the network and accessed
through standard mechanisms
Broad Network Access
● Capabilities can be elastically provisioned and
released to scale rapidly
Rapid Elasticity
● Computing resources are pooled to serve multiple
consumers using a multi-tenant model
● Customer generally has no knowledge over the exact
location of resources
Resource Pooling
● Resource usage can be monitored, controlled, and
reported
Measured Service
*According to NIST (National Institute of Standards and Technology)
Copyright © 2016 Mirantis, Inc. All rights reserved
SPI Model
● Software as a Service (SaaS)
● Provides consumers with an application
running on a cloud infrastructure
● Platform as a Service (PaaS)
● Provides consumers with the ability to
deploy an application to the cloud
utilizing tools and platform supported by
the provider
● Infrastructure as a Service (IaaS)
● Provides consumers with the ability to
provision fundamental computing
resources and deploy arbitrary software
ConsumerFlexibility
LevelofAbstraction
Data Center
Hardware, servers, networking
Provision CPU, RAM, VM
INFRASTRUCTURE AS A SERVICE (IAAS)
Remote login to install applications
PLATFORM AS A SERVICE (PAAS)
Browser or thin client access
SOFTWARE AS A SERVICE (SAAS)
Copyright © 2016 Mirantis, Inc. All rights reserved
Cloud Deployment Models*
*According to NIST (National Institute of Standards and Technology)
● Cloud services are only available to members of a
single organization.
● Cloud infrastructure can be hosted by the same
organization or a third-party.
Private Cloud
● Cloud services are offered to members of a community
or organization.
● Cloud infrastructure is hosted by members of the same
organization.
Community Cloud
● Cloud services are offered to the general public.
● Cloud infrastructure is hosted by anyone.
Public Cloud
● Composition of two or more distinct cloud
infrastructure, such as a Private+Public cloud
combination.
Hybrid Cloud
Copyright © 2016 Mirantis, Inc. All rights reserved
Private Cloud
Copyright © 2016 Mirantis, Inc. All rights reserved
Public Cloud Providers
Copyright © 2016 Mirantis, Inc. All rights reserved
Hybrid
Copyright © 2016 Mirantis, Inc. All rights reserved
Definition: OpenStack
As described by the OpenStack Foundation:
“Aims to produce the ubiquitous Open Source Cloud Computing
platform that will meet the needs of public and private clouds
regardless of size, by being simple
to implement and massively scalable.”
Copyright © 2016 Mirantis, Inc. All rights reserved
History
Founded by Rackspace and NASA in 2010
Mission: to enable any organization regardless of size to
create and offer cloud computing services running on
standardized hardware
Copyright © 2016 Mirantis, Inc. All rights reserved
Deployments by Release
Copyright © 2016 Mirantis, Inc. All rights reserved
Openstack Foundation
Created in 2012 to provide shared resources to help achieve
the OpenStack Mission by Protecting, Empowering, and
Promoting OpenStack software and the community around it,
including users, developers and the entire ecosystem.
Copyright © 2016 Mirantis, Inc. All rights reserved
Governance
Copyright © 2016 Mirantis, Inc. All rights reserved
OpenStack Layer
Copyright © 2016 Mirantis, Inc. All rights reserved
Core Services
Copyright © 2016 Mirantis, Inc. All rights reserved
Optional Services
Copyright © 2016 Mirantis, Inc. All rights reserved
Sample Configuration - Web Hosting
Copyright © 2016 Mirantis, Inc. All rights reserved
Basics of Automation
… using built-in OpenStack tools
Copyright © 2016 Mirantis, Inc. All rights reserved
Goal
● Install & configure development environment
● Provision Plone via Heat
● Provision Plone via Murano
Develop automated Plone deployment
Copyright © 2016 Mirantis, Inc. All rights reserved
Not going to happen...
What I am not going to do today:
● Teach you how to develop software on python
● Explain what is version control systems, specifically git
● Teach you how to use linux or virtualbox
… but what I should do if I don’t know how to … ?
Copyright © 2016 Mirantis, Inc. All rights reserved
Let me google that for you...
Copyright © 2016 Mirantis, Inc. All rights reserved
Development Environment
or... tools matter!
Copyright © 2016 Mirantis, Inc. All rights reserved
● OS: Ubuntu or CentOS
● OpenStack: DevStack
● Dependencies:
● git, python, pip, tox, virtualenv
● OpenStack System Dependencies
● IDE or text editor
Tools
Copyright © 2016 Mirantis, Inc. All rights reserved
Installing DevStack
● Requirements
● 4Gb RAM
● 2 CPU
● 32 Gb Storage
● Recommendation
● Use VirtualBox
https://etherpad.openstack.org/p/murano-development-environment
Copyright © 2016 Mirantis, Inc. All rights reserved
OpenStack System Dependencies
Ubuntu
● python-dev
● libxml2-dev
● libxslt-dev
● libffi-dev
● libpq-dev
● python-openssl
● mysql-client
CentOS
● python-devel
● libxml2-devel
● libxslt-devel
● libffi-devel
● postgresql-devel
● pyOpenSSL
● mysql
Copyright © 2016 Mirantis, Inc. All rights reserved
Tools: pip
pip is a package management system used to install and
manage software packages written in Python. Many packages
can be found in the Python Package Index (PyPI).
$ curl -O https://bootstrap.pypa.io/get-pip.py
$ sudo python -W ignore get-pip.py --force-reinstall
$ rm get-pip.py
http://pypi.python.org
Copyright © 2016 Mirantis, Inc. All rights reserved
Tools: virtualenv
virtualenv solves a very specific problem: it allows multiple
Python projects that have different (and often conflicting)
requirements, to coexist on the same computer.
● Installed as dependency for tox
● Managed through tox
https://virtualenv.pypa.io/
Copyright © 2016 Mirantis, Inc. All rights reserved
Tools: tox
tox is a generic virtualenv management and test command line
tool you can use for: checking your package installs correctly
with different Python versions and interpreters or running
your tests in each of the environments, configuring your test
tool of choice.
$ sudo pip install tox
https://tox.readthedocs.org/
Copyright © 2016 Mirantis, Inc. All rights reserved
or short overview of how Plone looks like
Plone Architecture & Deployment
Copyright © 2016 Mirantis, Inc. All rights reserved
More: http://docs.plone.org/manage/deploying/stack.html
Architecture
Internet Zone / Plone
ZODB/Blobs
Copyright © 2016 Mirantis, Inc. All rights reserved
Requirements
● OS: Ubuntu (or anything else...)
● Recommended Flavor
● 2Gb RAM
● 40 Gb Storage
● Software Prerequisites:
● Python 2.7 (dev), built with support for expat (xml.parsers.expat),
zlib and ssl.
● libz (dev), libjpeg (dev), readline (dev), libexpat (dev), libssl or
openssl (dev), libxml2 >= 2.7.8 (dev), libxslt >= 1.1.26 (dev).
Copyright © 2016 Mirantis, Inc. All rights reserved
Unified Plone UNIX Installer
● The Universal UNIX Installer lets you choose an
installation mode:
● a standalone mode - single Zope web application server will be
installed.
● or a ZEO cluster mode - ZEO Server and Zope instances will be
installed.
http://docs.plone.org/manage/installing/installation.html
Copyright © 2016 Mirantis, Inc. All rights reserved
Provision Plone via Heat
or ...heating the cloud!
Copyright © 2016 Mirantis, Inc. All rights reserved
Heat - OpenStack Orchestration
To orchestrate composite cloud applications using a
declarative template format through an OpenStack-native
REST API.
Orchestration for Openstack
Copyright © 2016 Mirantis, Inc. All rights reserved
Orchestration vs Configuration Management
● Orchestration is a sub-category of automation, concerned with
coordination of multiple component:
● For example, servers, networks, volumes, etc..
● Orchestration is a “higher form” of automation
● Not just simple or lower-level tasks, but multilayer applications
● Configuration Management is automation of server configuration:
● Typically a declarative model, based on “fact” discovery of the server
● Abstracts out the underlying implementation detail of service deployment
● Both are needed to fully automate cloud application deployment
Copyright © 2016 Mirantis, Inc. All rights reserved
Heat Capabilities
● Describes the infrastructure for a cloud application – stack (deployment):
● OpenStack resources: for example, servers, networks, volumes, etc..
● Relationships between resources: for example, this volume is connected to this server
● In a text file in the special format – template (blueprint)
● Manages that infrastructure:
● Automatically changes the infrastructure when the template is modified and re-applied
● Deletes infrastructure when the stack is deleted
● Integrates with software configuration management tools such as Puppet
and Chef:
● For example: can create VM with puppet server and install puppet clients on VMs
● Can pass parameters to cloud-init, etc.
Copyright © 2016 Mirantis, Inc. All rights reserved
Heat Orchestration Template
● Declarative definition of resources, based on YAML
● Stack = deployed template, instance of the template
● Structure
● Parameters
● Resources
● Outputs
Full Specification:
http://docs.openstack.org/developer/heat/template_guide/
Copyright © 2016 Mirantis, Inc. All rights reserved
Example
heat_template_version: 2013-05-23
description: Simple template to deploy a single compute instance
resources:
my_instance:
type: OS::Nova::Server
properties:
key_name: my_key
image: cirros-0.3.0-i386-uec
flavor: m1.small
Copyright © 2016 Mirantis, Inc. All rights reserved
CloudInit
● An open-source package from Ubuntu that is the industry
standard for bootstrapping cloud servers (initialization on first
boot)
● Available on various Linux distributions such as Ubuntu Cloud
Images and the official Ubuntu images available on EC2.
● Some of the things it configures are:
● setting a default locale
● setting hostname
● resizing boot disk to that specified in boot flavor
● adding ssh keys to user's .ssh/authorized_keys so they can log in
● setting up ephemeral mount points
Copyright © 2016 Mirantis, Inc. All rights reserved
CloudInit: Example
resources:
database:
type: OS::Nova::Server
properties:
...
user_data: |
#!/bin/bash -v
yum -y install mariadb mariadb-server
systemctl start mariadb.service
Copyright © 2016 Mirantis, Inc. All rights reserved
Developing Template
● Uses “Unified Plone UNIX Installer”
● Single node deployment
● Allows to configure
● Size of the VM (RAM, Storage)
● Setup password for Plone
● Choose port on which Plone is going to be running
Copyright © 2016 Mirantis, Inc. All rights reserved
Template
http://q.melikyan.me/plone-via-heat-template
Copyright © 2016 Mirantis, Inc. All rights reserved
Links
● Project Links:
● https://launchpad.net/heat
● https://wiki.openstack.org/wiki/Heat
● http://docs.openstack.org/developer/heat/
● MailingList:
● openstack-dev@openstack.org with [Heat] in the subject
Copyright © 2016 Mirantis, Inc. All rights reserved
Provision Plone via Murano
or ...going for a good stuff!
Copyright © 2016 Mirantis, Inc. All rights reserved
Murano
Introduce an application catalog to OpenStack, enabling
application developers and cloud administrators to publish
various cloud-ready applications in a browsable categorized
catalog.
Application Catalog for OpenStack
Copyright © 2016 Mirantis, Inc. All rights reserved
Catalog
Copyright © 2016 Mirantis, Inc. All rights reserved
Benefits
Developer Tooling Application Catalog Cloud Orchestration
Onboarding Developers Onboarding Workloads Self-Service Deployment
IT Admins End Users
Build better cloud apps faster Deploy without assistance from ITManage what end users can deploy
Copyright © 2016 Mirantis, Inc. All rights reserved
Capabilities
● Supports both Windows and Linux
● Complete application lifecycle management
● Integration with configuration management tools
● Ansible, Chef & Puppet
● Pluggable app definition languages
● Heat Templates
● MuranoPL
Copyright © 2016 Mirantis, Inc. All rights reserved
Demo
or ...demo is worth a thousand words!
Copyright © 2016 Mirantis, Inc. All rights reserved
Past
● Windows DataCenter as a Service
● Fixed building blocks: AD, IIS, MS SQL, Exchange, Sharepoint
● Complicated software composition
● Only Windows software provisioning
Bringing Windows to OpenStack
Copyright © 2016 Mirantis, Inc. All rights reserved
LayersLayers
catalog
app interoperability layer
orchestration
configuration management
glare murano-api + dashboard
murano pl murano-engine
murano-engine
heat heat-translator third-partymurano pl
murano-agent
bash puppet powershellchef
Copyright © 2016 Mirantis, Inc. All rights reserved
Apps Interoperability
MySQL
host: instance
deploy()
createDatabase()
createUser()
getConnectionS()
.destroy()
WordPress
webserver: httpd
db: mysql
deploy()
.destroy()
WordPress: deploy() →
…
webserver.deploy()
…
db.createDatabase(<name>)
db.createUser(<name>, <pass>)
db.assignUser(<dname>, <uname>)
...
● Murano PL: imperative OOP DSL
● Sandboxed, built on top of Python
● Everything is an object
● Dependencies on interface
● Decoupling
Apps form an ecosystem where complex
environments can be constructed from
independent building blocks
Copyright © 2016 Mirantis, Inc. All rights reserved
YAQL
YAQL: Yet Another Query Language
● Embeddable and extensible query language
● Allows performing complex queries against arbitrary objects
● Used by Murano, Mistral, Heat and Fuel
pip install yaql
$ yaql
yaql> @load my_file.json
yaql> $.customers.groupBy($.sex)
yaql> $.customers.where($.orders.len() >= 1 or name = "John")
Find more about YAQL at https://github.com/openstack/yaql or play at http://yaqluator.com/
Copyright © 2016 Mirantis, Inc. All rights reserved
Developing Plone App
or … getting your hands dirty!
Copyright © 2016 Mirantis, Inc. All rights reserved
https://github.com/sergmelikyan/plone-training
Source Code
Copyright © 2016 Mirantis, Inc. All rights reserved
Hello World: Step 1
Adding manifest.yaml
$ mkdir HelloWorld
$ vi HelloWorld/manifest.yaml
FullName: com.yourdomain.HelloWorld
Type: Application
Checkout sources for step #1 - git checkout step1
Copyright © 2016 Mirantis, Inc. All rights reserved
Hello World: Step 2
Adding HelloWorld.yaml
$ mkdir Classes
$ vi Classes/HelloWorld.yaml
Name: com.yourdomain.HelloWorld
Extends: io.murano.Application
Methods:
deploy:
Body:
- $reporter: $this.find('io.murano.Environment').reporter
- $reporter.report($this, "Hello, World!")
Checkout sources for step #2 - git checkout step2
Copyright © 2016 Mirantis, Inc. All rights reserved
Hello World: Step 2
Updating manifest.yaml
$ vi HelloWorld/manifest.yaml
...
Classes:
com.yourdomain.HelloWorld: HelloWorld.yaml
Checkout sources for step #2 - git checkout step2
Copyright © 2016 Mirantis, Inc. All rights reserved
HelloWorld: Pack & Upload
Pack & Upload
$ zip -r hello_world.zip *
$ murano package-import ./hello_world.zip
Copyright © 2016 Mirantis, Inc. All rights reserved
HelloWorld: Deploy
Deploy
$ vi input.js
[{
"op": "add", "path": "/-",
"value": {
"?": {
"name": "Demo",
"type": "com.yourdomain.HelloWorld",
"id": "42"
}
}
}]
http://q.melikyan.me/input-json
Copyright © 2016 Mirantis, Inc. All rights reserved
HelloWorld: Deploy
Deploy
$ murano environment-create TestHello
$ murano environment-session-create <environment-id>
$ murano environment-apps-edit --session-id <session-id> <env-id> ./input.json
$ murano environment-deploy --session-id <session-id> <env-id>
$ murano environment-show <env-id>
Copyright © 2016 Mirantis, Inc. All rights reserved
Hello World: Step 3
Adding User Input
$ vi Classes/HelloWorld.yaml
Properties:
username:
Usage: In
Contract: $.string().notNull()
Methods:
deploy:
Body:
- $reporter: $this.find('io.murano.Environment').reporter
- $reporter.report($this, "Hello, " + $this.username + "!")
Checkout sources for step #3 - git checkout step3
Copyright © 2016 Mirantis, Inc. All rights reserved
HelloWorld: re-upload the package
Pack & Reupload
$ zip -r hello_world.zip *
$ murano package-import ./hello_world.zip
Copyright © 2016 Mirantis, Inc. All rights reserved
HelloWorld: Deploy again
Deploy with an updated input
$ vi input.js
[{
"op": "add", "path": "/-",
"value": {
"?": {
"name": "Demo",
"type": "com.yourdomain.HelloWorld",
"id": "42"
},
"username": "Alice"
}
}]
http://q.melikyan.me/input-json-updated
Copyright © 2016 Mirantis, Inc. All rights reserved
HelloWorld: Deploy again
Deploy
$ murano environment-create TestHello2
$ murano environment-session-create <environment-id>
$ murano environment-apps-edit --session-id <session-id> <env-id> ./input.json
$ murano environment-deploy --session-id <session-id> <env-id>
$ murano environment-show <env-id>
Copyright © 2016 Mirantis, Inc. All rights reserved
Hello World: Step 4
Adding UI wizard
$ mkdir UI
$ vi UI/UI.yaml
Application:
?:
type: com.yourdomain.HelloWorld
username: Alice
Checkout sources for step #4 - git checkout step4
Copyright © 2016 Mirantis, Inc. All rights reserved
Hello World: Step 4 (continued)
Application:
?:
type: com.yourdomain.HelloWorld
username: $.step1.username
Forms:
- step1:
fields:
- name: username
type: string
description: Username of the user to say 'hello' to
required: true
Checkout sources for step #4 - git checkout step4
Copyright © 2016 Mirantis, Inc. All rights reserved
Hello World: Use UI Wizard
Copyright © 2016 Mirantis, Inc. All rights reserved
Hello World: Use UI Wizard (continued)
Copyright © 2016 Mirantis, Inc. All rights reserved
Hello World: Use UI Wizard (ending)
Copyright © 2016 Mirantis, Inc. All rights reserved
Plone: Goals
● Provision a virtual machine in OpenStack (VM);
● Configure VMs network connectivity and security;
● Download a distribution of Plone from Internet to the
virtual machine;
● Install the distribution and configure some of its
parameters with user input.
Copyright © 2016 Mirantis, Inc. All rights reserved
Plone: Preparation
Preparation
$ mkdir PloneApp
$ vi PloneApp/manifest.yaml
FullName: com.yourdomain.Plone
Name: Plone CMS
Description: Simple Plone Deployment
Type: Application
Author: John Doe
Checkout sources for step #5 - git checkout step5
Copyright © 2016 Mirantis, Inc. All rights reserved
Plone: Preparation (continued)
Add Plone.yaml
$ mkdir PloneApp/Classes
$ vi PloneApp/Classes/Plone.yaml
Namespaces:
=: com.yourdomain
std: io.murano
apps: io.murano.applications
Name: Plone
Extends: apps:SingleServerApplication
Checkout sources for step #6 - git checkout step6
Copyright © 2016 Mirantis, Inc. All rights reserved
Plone: Preparation (ends)
Checkout sources for step #6 - git checkout step6
Updating manifest.yaml
$ vi PloneApp/manifest.yaml
...
Classes:
com.yourdomain.Plone: Plone.yaml
Require:
io.murano.applications:
Copyright © 2016 Mirantis, Inc. All rights reserved
Plone: Properties
Adding properties
$ vi PloneApp/Classes/Plone.yaml
Properties:
deploymentPath:
Contract: $.string()
Default: '/opt/plone'
adminPassword:
Contract: $.string().notNull()
listeningPort:
Contract: $.int()
Default: 8080
Copyright © 2016 Mirantis, Inc. All rights reserved
Plone: Properties
Adding UI.yaml
server:
?:
type: io.murano.resources.LinuxMuranoInstance
name: $.instanceConfiguration.hostname
image: $.instanceConfiguration.image
flavor: $.instanceConfiguration.flavor
assignFloatingIp: $.instanceConfiguration.assignFloatingIp
Checkout sources for step #7 - git checkout step7
Copyright © 2016 Mirantis, Inc. All rights reserved
Plone: Configuration Management
● Use “Unified Plone UNIX Installer”
● Use almost same script as we did for Heat template
http://q.melikyan.me/install-plone-sh
Copyright © 2016 Mirantis, Inc. All rights reserved
Plone: Configuration
Checkout sources for step #8 - git checkout step8
Add install-plone.sh
$ mkdir PloneApp/Resources
<download and put install-plone.sh in the directory above>
Copyright © 2016 Mirantis, Inc. All rights reserved
Plone: Deploy
Checkout sources for step #9 - git checkout step9
Adding logic
$ vi PloneApp/Classes/Plone.yaml
...
Methods:
onInstallServer:
...
Body:
- $file: sys:Resources.string('install-plone.sh').replace({"$1" =>
$this.deploymentPath, "$2" => $this.adminPassword, "$3" => $this.listeningPort})
- conf:Linux.runCommand($server.agent, $file)
Copyright © 2016 Mirantis, Inc. All rights reserved
Bonus: Logo & Security Rules
● Please checkout step10 and take a look
● Try to analyze what we are doing and why
● Explain
Checkout sources for step #10 - git checkout step10
Copyright © 2016 Mirantis, Inc. All rights reserved
Ready to use applications!
DBaaS Containers
PaaS
CI/CD
CMS Web/ App Servers
Copyright © 2016 Mirantis, Inc. All rights reserved
How to get them?
http://apps.openstack.org
Copyright © 2016 Mirantis, Inc. All rights reserved
Screencasts
● Openstack Application Catalog. Quick introduction
● HA & Autoscaling for Applications
● Docker Integration
● Support for Heat based application
● Composing Murano Application Package
Please, find more screencasts published on wiki: https://wiki.openstack.org/wiki/Murano/Screencasts
Copyright © 2016 Mirantis, Inc. All rights reserved
Links
● Project Links:
● https://launchpad.net/murano
● https://wiki.openstack.org/wiki/Murano
● http://docs.openstack.org/developer/murano/
● MailingList:
● openstack-dev@openstack.org with [Murano] in the subject
Weekly IRC meeting is held on Tuesdays at 17:00 UTC on #openstack-meeting-alt at Freenode.
Copyright © 2016 Mirantis, Inc. All rights reserved
Survey
ploneconf.sixfeetup.com
Copyright © 2016 Mirantis, Inc. All rights reserved
Credits
● Alexander Tivelkov & Evgeniy Mashkin
● for amazing articles and developing Plone app for Murano
● David Flanders & Philip Bauer
● for opportunity being here and present this training
Copyright © 2016 Mirantis, Inc. All rights reserved
Thank you
for your time

Weitere ähnliche Inhalte

Was ist angesagt?

NFV Infrastructure Manager with High Performance Software Switch Lagopus
NFV Infrastructure Manager with High Performance Software Switch Lagopus NFV Infrastructure Manager with High Performance Software Switch Lagopus
NFV Infrastructure Manager with High Performance Software Switch Lagopus
Hirofumi Ichihara
 
Building your own PaaS using Apache Stratos
Building your own PaaS using Apache Stratos Building your own PaaS using Apache Stratos
Building your own PaaS using Apache Stratos
WSO2
 
20121204 open technet_openstack_이틀만하면나처럼할수있다
20121204 open technet_openstack_이틀만하면나처럼할수있다20121204 open technet_openstack_이틀만하면나처럼할수있다
20121204 open technet_openstack_이틀만하면나처럼할수있다
Nalee Jang
 
OpenStack: Inside Out
OpenStack: Inside OutOpenStack: Inside Out
OpenStack: Inside Out
Etsuji Nakai
 

Was ist angesagt? (19)

OpenStack運用管理最前線 - OpenStack最新情報セミナー 2014年12月
OpenStack運用管理最前線 - OpenStack最新情報セミナー 2014年12月OpenStack運用管理最前線 - OpenStack最新情報セミナー 2014年12月
OpenStack運用管理最前線 - OpenStack最新情報セミナー 2014年12月
 
[OpenStack Day in Korea 2015] Track 1 - Triple O를 이용한 빠르고 쉬운 OpenStack 설치
[OpenStack Day in Korea 2015] Track 1 - Triple O를 이용한 빠르고 쉬운 OpenStack 설치[OpenStack Day in Korea 2015] Track 1 - Triple O를 이용한 빠르고 쉬운 OpenStack 설치
[OpenStack Day in Korea 2015] Track 1 - Triple O를 이용한 빠르고 쉬운 OpenStack 설치
 
NFV Infrastructure Manager with High Performance Software Switch Lagopus
NFV Infrastructure Manager with High Performance Software Switch Lagopus NFV Infrastructure Manager with High Performance Software Switch Lagopus
NFV Infrastructure Manager with High Performance Software Switch Lagopus
 
Building your own PaaS using Apache Stratos
Building your own PaaS using Apache Stratos Building your own PaaS using Apache Stratos
Building your own PaaS using Apache Stratos
 
Open stack
Open stackOpen stack
Open stack
 
The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...
The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...
The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...
 
Automating OpenStack Deployment with Fuel
Automating OpenStack Deployment with FuelAutomating OpenStack Deployment with Fuel
Automating OpenStack Deployment with Fuel
 
RDO
RDORDO
RDO
 
20121204 open technet_openstack_이틀만하면나처럼할수있다
20121204 open technet_openstack_이틀만하면나처럼할수있다20121204 open technet_openstack_이틀만하면나처럼할수있다
20121204 open technet_openstack_이틀만하면나처럼할수있다
 
Neutron CI Run on Docker
Neutron CI Run on DockerNeutron CI Run on Docker
Neutron CI Run on Docker
 
Mastering OpenStack - Episode 04 - Provisioning and Deployment
Mastering OpenStack - Episode 04 - Provisioning and DeploymentMastering OpenStack - Episode 04 - Provisioning and Deployment
Mastering OpenStack - Episode 04 - Provisioning and Deployment
 
Red Hat presentatie: Open stack Latest Pure Tech
Red Hat presentatie: Open stack Latest Pure TechRed Hat presentatie: Open stack Latest Pure Tech
Red Hat presentatie: Open stack Latest Pure Tech
 
Salt conf 2014-installing-openstack-using-saltstack-v02
Salt conf 2014-installing-openstack-using-saltstack-v02Salt conf 2014-installing-openstack-using-saltstack-v02
Salt conf 2014-installing-openstack-using-saltstack-v02
 
OpenStack 4th Birthday
OpenStack 4th BirthdayOpenStack 4th Birthday
OpenStack 4th Birthday
 
OpenStack 101
OpenStack 101OpenStack 101
OpenStack 101
 
OpenStack Day Taiwan 2016 -Shintaro Mizuno
OpenStack Day Taiwan 2016 -Shintaro MizunoOpenStack Day Taiwan 2016 -Shintaro Mizuno
OpenStack Day Taiwan 2016 -Shintaro Mizuno
 
OpenStack & OpenDaylight Hands-on Lab
OpenStack & OpenDaylight Hands-on LabOpenStack & OpenDaylight Hands-on Lab
OpenStack & OpenDaylight Hands-on Lab
 
[OpenStack Day in Korea 2015] Track 3-1 - OpenStack Storage Infrastructure & ...
[OpenStack Day in Korea 2015] Track 3-1 - OpenStack Storage Infrastructure & ...[OpenStack Day in Korea 2015] Track 3-1 - OpenStack Storage Infrastructure & ...
[OpenStack Day in Korea 2015] Track 3-1 - OpenStack Storage Infrastructure & ...
 
OpenStack: Inside Out
OpenStack: Inside OutOpenStack: Inside Out
OpenStack: Inside Out
 

Andere mochten auch

2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
Mirantis
 

Andere mochten auch (14)

Unlock Your Cloud Potential with Mirantis OpenStack & Cumulus Linux
Unlock Your Cloud Potential with Mirantis OpenStack & Cumulus LinuxUnlock Your Cloud Potential with Mirantis OpenStack & Cumulus Linux
Unlock Your Cloud Potential with Mirantis OpenStack & Cumulus Linux
 
Hammock, a Good Place to Rest
Hammock, a Good Place to RestHammock, a Good Place to Rest
Hammock, a Good Place to Rest
 
Operators experience and perspective on SDN with VLANs and L3 Networks
Operators experience and perspective on SDN with VLANs and L3 NetworksOperators experience and perspective on SDN with VLANs and L3 Networks
Operators experience and perspective on SDN with VLANs and L3 Networks
 
OpenContrail deployment experience
OpenContrail deployment experienceOpenContrail deployment experience
OpenContrail deployment experience
 
The Cloud Convergence: OpenStack and Kubernetes.
The Cloud Convergence: OpenStack and Kubernetes.The Cloud Convergence: OpenStack and Kubernetes.
The Cloud Convergence: OpenStack and Kubernetes.
 
Deployment Automation on OpenStack with TOSCA and Cloudify
Deployment Automation on OpenStack with  TOSCA and CloudifyDeployment Automation on OpenStack with  TOSCA and Cloudify
Deployment Automation on OpenStack with TOSCA and Cloudify
 
Evolve or Die: Enterprise Ready OpenStack upgrades with Kubernetes
Evolve or Die: Enterprise Ready OpenStack upgrades with KubernetesEvolve or Die: Enterprise Ready OpenStack upgrades with Kubernetes
Evolve or Die: Enterprise Ready OpenStack upgrades with Kubernetes
 
Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014
 
Kubernetes SDN performance and architecture
Kubernetes SDN performance and architectureKubernetes SDN performance and architecture
Kubernetes SDN performance and architecture
 
OpenStack Journey in Tieto Elastic Cloud
OpenStack Journey in Tieto Elastic CloudOpenStack Journey in Tieto Elastic Cloud
OpenStack Journey in Tieto Elastic Cloud
 
Infographic OpenStack - Deployment Tools
Infographic OpenStack - Deployment ToolsInfographic OpenStack - Deployment Tools
Infographic OpenStack - Deployment Tools
 
Mirantis life
Mirantis lifeMirantis life
Mirantis life
 
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 

Ähnlich wie Production Plone on OpenStack Cloud

Data Con LA 2022-Open Source or Open Core in Your Data Layer? What Needs to B...
Data Con LA 2022-Open Source or Open Core in Your Data Layer? What Needs to B...Data Con LA 2022-Open Source or Open Core in Your Data Layer? What Needs to B...
Data Con LA 2022-Open Source or Open Core in Your Data Layer? What Needs to B...
Data Con LA
 

Ähnlich wie Production Plone on OpenStack Cloud (20)

OpenStack Overview and History
OpenStack Overview and HistoryOpenStack Overview and History
OpenStack Overview and History
 
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
BlackStor - World's fastest & most reliable Cloud Native Software Defined Sto...
 
Data Con LA 2022-Open Source or Open Core in Your Data Layer? What Needs to B...
Data Con LA 2022-Open Source or Open Core in Your Data Layer? What Needs to B...Data Con LA 2022-Open Source or Open Core in Your Data Layer? What Needs to B...
Data Con LA 2022-Open Source or Open Core in Your Data Layer? What Needs to B...
 
Танки в облаках
Танки в облакахТанки в облаках
Танки в облаках
 
Mirantis unlocked partner webinar deck
Mirantis unlocked partner webinar deckMirantis unlocked partner webinar deck
Mirantis unlocked partner webinar deck
 
OpenStack Murano
OpenStack MuranoOpenStack Murano
OpenStack Murano
 
Operate with an openstack deployment by code
Operate with an openstack deployment by codeOperate with an openstack deployment by code
Operate with an openstack deployment by code
 
Linux 101
Linux 101Linux 101
Linux 101
 
ZendCon - Linux 101
ZendCon - Linux 101ZendCon - Linux 101
ZendCon - Linux 101
 
DCOS Presentation
DCOS PresentationDCOS Presentation
DCOS Presentation
 
OpenStack Introduction
OpenStack IntroductionOpenStack Introduction
OpenStack Introduction
 
DRBD + OpenStack (Openstack Live Prague 2016)
DRBD + OpenStack (Openstack Live Prague 2016)DRBD + OpenStack (Openstack Live Prague 2016)
DRBD + OpenStack (Openstack Live Prague 2016)
 
Oracle Cloud - Infrastruktura jako kód
Oracle Cloud - Infrastruktura jako kódOracle Cloud - Infrastruktura jako kód
Oracle Cloud - Infrastruktura jako kód
 
My First 100 days with a Cassandra Cluster
My First 100 days with a Cassandra ClusterMy First 100 days with a Cassandra Cluster
My First 100 days with a Cassandra Cluster
 
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
 
Bringing New Experience with Openstack and Fuel (Ihor Dvoretskyi, Oleksandr M...
Bringing New Experience with Openstack and Fuel (Ihor Dvoretskyi, Oleksandr M...Bringing New Experience with Openstack and Fuel (Ihor Dvoretskyi, Oleksandr M...
Bringing New Experience with Openstack and Fuel (Ihor Dvoretskyi, Oleksandr M...
 
Learn OpenStack from trystack.cn
Learn OpenStack from trystack.cnLearn OpenStack from trystack.cn
Learn OpenStack from trystack.cn
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of docker
 
Introducing Cloud Development with Project Shipped and Mantl: a deep dive
Introducing Cloud Development with Project Shipped and Mantl: a deep diveIntroducing Cloud Development with Project Shipped and Mantl: a deep dive
Introducing Cloud Development with Project Shipped and Mantl: a deep dive
 
Introducing Cloud Development with Mantl
Introducing Cloud Development with MantlIntroducing Cloud Development with Mantl
Introducing Cloud Development with Mantl
 

Kürzlich hochgeladen

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Kürzlich hochgeladen (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 

Production Plone on OpenStack Cloud

  • 1. Copyright © 2016 Mirantis, Inc. All rights reserved software.mirantis.com Production Plone on OpenStack Cloud Learn how to automate scalable multi-node deployments of Plone for OpenStack Cloud and see how easy it is to have this deployment tweaked to your taste
  • 2. Copyright © 2016 Mirantis, Inc. All rights reserved About me ● 4 Years in OpenStack Community ● Now Development Manager for Murano ● Started as regular developer Sergey Melikyan smelikyan@mirantis.com @sergmelikyan fb.me/sergmelikyan #running #sightseeing #hiking #motorcycles #rock
  • 3. Copyright © 2016 Mirantis, Inc. All rights reserved Production OpenStack Plone Deployments How to deploy Plone on OpenStack ● Introduction to the Cloud and OpenStack ● Basics of automation using built-in OpenStack tools ● How to automate scalable multi-node deployments ● Extend a cloud-ready Plone for your use-cases ● Everything else you want to learn today and I can help
  • 4. Copyright © 2016 Mirantis, Inc. All rights reserved Introduction to the Cloud and OpenStack why your head is not in the clouds yet?
  • 5. Copyright © 2016 Mirantis, Inc. All rights reserved Definition: Cloud As described by the National Institute of Standards and Technology (NIST): “Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction”
  • 6. Copyright © 2016 Mirantis, Inc. All rights reserved Essential Characteristics of the Cloud* ● Provisioning of computing capabilities (compute, network, storage) without human interaction On-demand Self-service ● Services are available over the network and accessed through standard mechanisms Broad Network Access ● Capabilities can be elastically provisioned and released to scale rapidly Rapid Elasticity ● Computing resources are pooled to serve multiple consumers using a multi-tenant model ● Customer generally has no knowledge over the exact location of resources Resource Pooling ● Resource usage can be monitored, controlled, and reported Measured Service *According to NIST (National Institute of Standards and Technology)
  • 7. Copyright © 2016 Mirantis, Inc. All rights reserved SPI Model ● Software as a Service (SaaS) ● Provides consumers with an application running on a cloud infrastructure ● Platform as a Service (PaaS) ● Provides consumers with the ability to deploy an application to the cloud utilizing tools and platform supported by the provider ● Infrastructure as a Service (IaaS) ● Provides consumers with the ability to provision fundamental computing resources and deploy arbitrary software ConsumerFlexibility LevelofAbstraction Data Center Hardware, servers, networking Provision CPU, RAM, VM INFRASTRUCTURE AS A SERVICE (IAAS) Remote login to install applications PLATFORM AS A SERVICE (PAAS) Browser or thin client access SOFTWARE AS A SERVICE (SAAS)
  • 8. Copyright © 2016 Mirantis, Inc. All rights reserved Cloud Deployment Models* *According to NIST (National Institute of Standards and Technology) ● Cloud services are only available to members of a single organization. ● Cloud infrastructure can be hosted by the same organization or a third-party. Private Cloud ● Cloud services are offered to members of a community or organization. ● Cloud infrastructure is hosted by members of the same organization. Community Cloud ● Cloud services are offered to the general public. ● Cloud infrastructure is hosted by anyone. Public Cloud ● Composition of two or more distinct cloud infrastructure, such as a Private+Public cloud combination. Hybrid Cloud
  • 9. Copyright © 2016 Mirantis, Inc. All rights reserved Private Cloud
  • 10. Copyright © 2016 Mirantis, Inc. All rights reserved Public Cloud Providers
  • 11. Copyright © 2016 Mirantis, Inc. All rights reserved Hybrid
  • 12. Copyright © 2016 Mirantis, Inc. All rights reserved Definition: OpenStack As described by the OpenStack Foundation: “Aims to produce the ubiquitous Open Source Cloud Computing platform that will meet the needs of public and private clouds regardless of size, by being simple to implement and massively scalable.”
  • 13. Copyright © 2016 Mirantis, Inc. All rights reserved History Founded by Rackspace and NASA in 2010 Mission: to enable any organization regardless of size to create and offer cloud computing services running on standardized hardware
  • 14. Copyright © 2016 Mirantis, Inc. All rights reserved Deployments by Release
  • 15. Copyright © 2016 Mirantis, Inc. All rights reserved Openstack Foundation Created in 2012 to provide shared resources to help achieve the OpenStack Mission by Protecting, Empowering, and Promoting OpenStack software and the community around it, including users, developers and the entire ecosystem.
  • 16. Copyright © 2016 Mirantis, Inc. All rights reserved Governance
  • 17. Copyright © 2016 Mirantis, Inc. All rights reserved OpenStack Layer
  • 18. Copyright © 2016 Mirantis, Inc. All rights reserved Core Services
  • 19. Copyright © 2016 Mirantis, Inc. All rights reserved Optional Services
  • 20. Copyright © 2016 Mirantis, Inc. All rights reserved Sample Configuration - Web Hosting
  • 21. Copyright © 2016 Mirantis, Inc. All rights reserved Basics of Automation … using built-in OpenStack tools
  • 22. Copyright © 2016 Mirantis, Inc. All rights reserved Goal ● Install & configure development environment ● Provision Plone via Heat ● Provision Plone via Murano Develop automated Plone deployment
  • 23. Copyright © 2016 Mirantis, Inc. All rights reserved Not going to happen... What I am not going to do today: ● Teach you how to develop software on python ● Explain what is version control systems, specifically git ● Teach you how to use linux or virtualbox … but what I should do if I don’t know how to … ?
  • 24. Copyright © 2016 Mirantis, Inc. All rights reserved Let me google that for you...
  • 25. Copyright © 2016 Mirantis, Inc. All rights reserved Development Environment or... tools matter!
  • 26. Copyright © 2016 Mirantis, Inc. All rights reserved ● OS: Ubuntu or CentOS ● OpenStack: DevStack ● Dependencies: ● git, python, pip, tox, virtualenv ● OpenStack System Dependencies ● IDE or text editor Tools
  • 27. Copyright © 2016 Mirantis, Inc. All rights reserved Installing DevStack ● Requirements ● 4Gb RAM ● 2 CPU ● 32 Gb Storage ● Recommendation ● Use VirtualBox https://etherpad.openstack.org/p/murano-development-environment
  • 28. Copyright © 2016 Mirantis, Inc. All rights reserved OpenStack System Dependencies Ubuntu ● python-dev ● libxml2-dev ● libxslt-dev ● libffi-dev ● libpq-dev ● python-openssl ● mysql-client CentOS ● python-devel ● libxml2-devel ● libxslt-devel ● libffi-devel ● postgresql-devel ● pyOpenSSL ● mysql
  • 29. Copyright © 2016 Mirantis, Inc. All rights reserved Tools: pip pip is a package management system used to install and manage software packages written in Python. Many packages can be found in the Python Package Index (PyPI). $ curl -O https://bootstrap.pypa.io/get-pip.py $ sudo python -W ignore get-pip.py --force-reinstall $ rm get-pip.py http://pypi.python.org
  • 30. Copyright © 2016 Mirantis, Inc. All rights reserved Tools: virtualenv virtualenv solves a very specific problem: it allows multiple Python projects that have different (and often conflicting) requirements, to coexist on the same computer. ● Installed as dependency for tox ● Managed through tox https://virtualenv.pypa.io/
  • 31. Copyright © 2016 Mirantis, Inc. All rights reserved Tools: tox tox is a generic virtualenv management and test command line tool you can use for: checking your package installs correctly with different Python versions and interpreters or running your tests in each of the environments, configuring your test tool of choice. $ sudo pip install tox https://tox.readthedocs.org/
  • 32. Copyright © 2016 Mirantis, Inc. All rights reserved or short overview of how Plone looks like Plone Architecture & Deployment
  • 33. Copyright © 2016 Mirantis, Inc. All rights reserved More: http://docs.plone.org/manage/deploying/stack.html Architecture Internet Zone / Plone ZODB/Blobs
  • 34. Copyright © 2016 Mirantis, Inc. All rights reserved Requirements ● OS: Ubuntu (or anything else...) ● Recommended Flavor ● 2Gb RAM ● 40 Gb Storage ● Software Prerequisites: ● Python 2.7 (dev), built with support for expat (xml.parsers.expat), zlib and ssl. ● libz (dev), libjpeg (dev), readline (dev), libexpat (dev), libssl or openssl (dev), libxml2 >= 2.7.8 (dev), libxslt >= 1.1.26 (dev).
  • 35. Copyright © 2016 Mirantis, Inc. All rights reserved Unified Plone UNIX Installer ● The Universal UNIX Installer lets you choose an installation mode: ● a standalone mode - single Zope web application server will be installed. ● or a ZEO cluster mode - ZEO Server and Zope instances will be installed. http://docs.plone.org/manage/installing/installation.html
  • 36. Copyright © 2016 Mirantis, Inc. All rights reserved Provision Plone via Heat or ...heating the cloud!
  • 37. Copyright © 2016 Mirantis, Inc. All rights reserved Heat - OpenStack Orchestration To orchestrate composite cloud applications using a declarative template format through an OpenStack-native REST API. Orchestration for Openstack
  • 38. Copyright © 2016 Mirantis, Inc. All rights reserved Orchestration vs Configuration Management ● Orchestration is a sub-category of automation, concerned with coordination of multiple component: ● For example, servers, networks, volumes, etc.. ● Orchestration is a “higher form” of automation ● Not just simple or lower-level tasks, but multilayer applications ● Configuration Management is automation of server configuration: ● Typically a declarative model, based on “fact” discovery of the server ● Abstracts out the underlying implementation detail of service deployment ● Both are needed to fully automate cloud application deployment
  • 39. Copyright © 2016 Mirantis, Inc. All rights reserved Heat Capabilities ● Describes the infrastructure for a cloud application – stack (deployment): ● OpenStack resources: for example, servers, networks, volumes, etc.. ● Relationships between resources: for example, this volume is connected to this server ● In a text file in the special format – template (blueprint) ● Manages that infrastructure: ● Automatically changes the infrastructure when the template is modified and re-applied ● Deletes infrastructure when the stack is deleted ● Integrates with software configuration management tools such as Puppet and Chef: ● For example: can create VM with puppet server and install puppet clients on VMs ● Can pass parameters to cloud-init, etc.
  • 40. Copyright © 2016 Mirantis, Inc. All rights reserved Heat Orchestration Template ● Declarative definition of resources, based on YAML ● Stack = deployed template, instance of the template ● Structure ● Parameters ● Resources ● Outputs Full Specification: http://docs.openstack.org/developer/heat/template_guide/
  • 41. Copyright © 2016 Mirantis, Inc. All rights reserved Example heat_template_version: 2013-05-23 description: Simple template to deploy a single compute instance resources: my_instance: type: OS::Nova::Server properties: key_name: my_key image: cirros-0.3.0-i386-uec flavor: m1.small
  • 42. Copyright © 2016 Mirantis, Inc. All rights reserved CloudInit ● An open-source package from Ubuntu that is the industry standard for bootstrapping cloud servers (initialization on first boot) ● Available on various Linux distributions such as Ubuntu Cloud Images and the official Ubuntu images available on EC2. ● Some of the things it configures are: ● setting a default locale ● setting hostname ● resizing boot disk to that specified in boot flavor ● adding ssh keys to user's .ssh/authorized_keys so they can log in ● setting up ephemeral mount points
  • 43. Copyright © 2016 Mirantis, Inc. All rights reserved CloudInit: Example resources: database: type: OS::Nova::Server properties: ... user_data: | #!/bin/bash -v yum -y install mariadb mariadb-server systemctl start mariadb.service
  • 44. Copyright © 2016 Mirantis, Inc. All rights reserved Developing Template ● Uses “Unified Plone UNIX Installer” ● Single node deployment ● Allows to configure ● Size of the VM (RAM, Storage) ● Setup password for Plone ● Choose port on which Plone is going to be running
  • 45. Copyright © 2016 Mirantis, Inc. All rights reserved Template http://q.melikyan.me/plone-via-heat-template
  • 46. Copyright © 2016 Mirantis, Inc. All rights reserved Links ● Project Links: ● https://launchpad.net/heat ● https://wiki.openstack.org/wiki/Heat ● http://docs.openstack.org/developer/heat/ ● MailingList: ● openstack-dev@openstack.org with [Heat] in the subject
  • 47. Copyright © 2016 Mirantis, Inc. All rights reserved Provision Plone via Murano or ...going for a good stuff!
  • 48. Copyright © 2016 Mirantis, Inc. All rights reserved Murano Introduce an application catalog to OpenStack, enabling application developers and cloud administrators to publish various cloud-ready applications in a browsable categorized catalog. Application Catalog for OpenStack
  • 49. Copyright © 2016 Mirantis, Inc. All rights reserved Catalog
  • 50. Copyright © 2016 Mirantis, Inc. All rights reserved Benefits Developer Tooling Application Catalog Cloud Orchestration Onboarding Developers Onboarding Workloads Self-Service Deployment IT Admins End Users Build better cloud apps faster Deploy without assistance from ITManage what end users can deploy
  • 51. Copyright © 2016 Mirantis, Inc. All rights reserved Capabilities ● Supports both Windows and Linux ● Complete application lifecycle management ● Integration with configuration management tools ● Ansible, Chef & Puppet ● Pluggable app definition languages ● Heat Templates ● MuranoPL
  • 52. Copyright © 2016 Mirantis, Inc. All rights reserved Demo or ...demo is worth a thousand words!
  • 53. Copyright © 2016 Mirantis, Inc. All rights reserved Past ● Windows DataCenter as a Service ● Fixed building blocks: AD, IIS, MS SQL, Exchange, Sharepoint ● Complicated software composition ● Only Windows software provisioning Bringing Windows to OpenStack
  • 54. Copyright © 2016 Mirantis, Inc. All rights reserved LayersLayers catalog app interoperability layer orchestration configuration management glare murano-api + dashboard murano pl murano-engine murano-engine heat heat-translator third-partymurano pl murano-agent bash puppet powershellchef
  • 55. Copyright © 2016 Mirantis, Inc. All rights reserved Apps Interoperability MySQL host: instance deploy() createDatabase() createUser() getConnectionS() .destroy() WordPress webserver: httpd db: mysql deploy() .destroy() WordPress: deploy() → … webserver.deploy() … db.createDatabase(<name>) db.createUser(<name>, <pass>) db.assignUser(<dname>, <uname>) ... ● Murano PL: imperative OOP DSL ● Sandboxed, built on top of Python ● Everything is an object ● Dependencies on interface ● Decoupling Apps form an ecosystem where complex environments can be constructed from independent building blocks
  • 56. Copyright © 2016 Mirantis, Inc. All rights reserved YAQL YAQL: Yet Another Query Language ● Embeddable and extensible query language ● Allows performing complex queries against arbitrary objects ● Used by Murano, Mistral, Heat and Fuel pip install yaql $ yaql yaql> @load my_file.json yaql> $.customers.groupBy($.sex) yaql> $.customers.where($.orders.len() >= 1 or name = "John") Find more about YAQL at https://github.com/openstack/yaql or play at http://yaqluator.com/
  • 57. Copyright © 2016 Mirantis, Inc. All rights reserved Developing Plone App or … getting your hands dirty!
  • 58. Copyright © 2016 Mirantis, Inc. All rights reserved https://github.com/sergmelikyan/plone-training Source Code
  • 59. Copyright © 2016 Mirantis, Inc. All rights reserved Hello World: Step 1 Adding manifest.yaml $ mkdir HelloWorld $ vi HelloWorld/manifest.yaml FullName: com.yourdomain.HelloWorld Type: Application Checkout sources for step #1 - git checkout step1
  • 60. Copyright © 2016 Mirantis, Inc. All rights reserved Hello World: Step 2 Adding HelloWorld.yaml $ mkdir Classes $ vi Classes/HelloWorld.yaml Name: com.yourdomain.HelloWorld Extends: io.murano.Application Methods: deploy: Body: - $reporter: $this.find('io.murano.Environment').reporter - $reporter.report($this, "Hello, World!") Checkout sources for step #2 - git checkout step2
  • 61. Copyright © 2016 Mirantis, Inc. All rights reserved Hello World: Step 2 Updating manifest.yaml $ vi HelloWorld/manifest.yaml ... Classes: com.yourdomain.HelloWorld: HelloWorld.yaml Checkout sources for step #2 - git checkout step2
  • 62. Copyright © 2016 Mirantis, Inc. All rights reserved HelloWorld: Pack & Upload Pack & Upload $ zip -r hello_world.zip * $ murano package-import ./hello_world.zip
  • 63. Copyright © 2016 Mirantis, Inc. All rights reserved HelloWorld: Deploy Deploy $ vi input.js [{ "op": "add", "path": "/-", "value": { "?": { "name": "Demo", "type": "com.yourdomain.HelloWorld", "id": "42" } } }] http://q.melikyan.me/input-json
  • 64. Copyright © 2016 Mirantis, Inc. All rights reserved HelloWorld: Deploy Deploy $ murano environment-create TestHello $ murano environment-session-create <environment-id> $ murano environment-apps-edit --session-id <session-id> <env-id> ./input.json $ murano environment-deploy --session-id <session-id> <env-id> $ murano environment-show <env-id>
  • 65. Copyright © 2016 Mirantis, Inc. All rights reserved Hello World: Step 3 Adding User Input $ vi Classes/HelloWorld.yaml Properties: username: Usage: In Contract: $.string().notNull() Methods: deploy: Body: - $reporter: $this.find('io.murano.Environment').reporter - $reporter.report($this, "Hello, " + $this.username + "!") Checkout sources for step #3 - git checkout step3
  • 66. Copyright © 2016 Mirantis, Inc. All rights reserved HelloWorld: re-upload the package Pack & Reupload $ zip -r hello_world.zip * $ murano package-import ./hello_world.zip
  • 67. Copyright © 2016 Mirantis, Inc. All rights reserved HelloWorld: Deploy again Deploy with an updated input $ vi input.js [{ "op": "add", "path": "/-", "value": { "?": { "name": "Demo", "type": "com.yourdomain.HelloWorld", "id": "42" }, "username": "Alice" } }] http://q.melikyan.me/input-json-updated
  • 68. Copyright © 2016 Mirantis, Inc. All rights reserved HelloWorld: Deploy again Deploy $ murano environment-create TestHello2 $ murano environment-session-create <environment-id> $ murano environment-apps-edit --session-id <session-id> <env-id> ./input.json $ murano environment-deploy --session-id <session-id> <env-id> $ murano environment-show <env-id>
  • 69. Copyright © 2016 Mirantis, Inc. All rights reserved Hello World: Step 4 Adding UI wizard $ mkdir UI $ vi UI/UI.yaml Application: ?: type: com.yourdomain.HelloWorld username: Alice Checkout sources for step #4 - git checkout step4
  • 70. Copyright © 2016 Mirantis, Inc. All rights reserved Hello World: Step 4 (continued) Application: ?: type: com.yourdomain.HelloWorld username: $.step1.username Forms: - step1: fields: - name: username type: string description: Username of the user to say 'hello' to required: true Checkout sources for step #4 - git checkout step4
  • 71. Copyright © 2016 Mirantis, Inc. All rights reserved Hello World: Use UI Wizard
  • 72. Copyright © 2016 Mirantis, Inc. All rights reserved Hello World: Use UI Wizard (continued)
  • 73. Copyright © 2016 Mirantis, Inc. All rights reserved Hello World: Use UI Wizard (ending)
  • 74. Copyright © 2016 Mirantis, Inc. All rights reserved Plone: Goals ● Provision a virtual machine in OpenStack (VM); ● Configure VMs network connectivity and security; ● Download a distribution of Plone from Internet to the virtual machine; ● Install the distribution and configure some of its parameters with user input.
  • 75. Copyright © 2016 Mirantis, Inc. All rights reserved Plone: Preparation Preparation $ mkdir PloneApp $ vi PloneApp/manifest.yaml FullName: com.yourdomain.Plone Name: Plone CMS Description: Simple Plone Deployment Type: Application Author: John Doe Checkout sources for step #5 - git checkout step5
  • 76. Copyright © 2016 Mirantis, Inc. All rights reserved Plone: Preparation (continued) Add Plone.yaml $ mkdir PloneApp/Classes $ vi PloneApp/Classes/Plone.yaml Namespaces: =: com.yourdomain std: io.murano apps: io.murano.applications Name: Plone Extends: apps:SingleServerApplication Checkout sources for step #6 - git checkout step6
  • 77. Copyright © 2016 Mirantis, Inc. All rights reserved Plone: Preparation (ends) Checkout sources for step #6 - git checkout step6 Updating manifest.yaml $ vi PloneApp/manifest.yaml ... Classes: com.yourdomain.Plone: Plone.yaml Require: io.murano.applications:
  • 78. Copyright © 2016 Mirantis, Inc. All rights reserved Plone: Properties Adding properties $ vi PloneApp/Classes/Plone.yaml Properties: deploymentPath: Contract: $.string() Default: '/opt/plone' adminPassword: Contract: $.string().notNull() listeningPort: Contract: $.int() Default: 8080
  • 79. Copyright © 2016 Mirantis, Inc. All rights reserved Plone: Properties Adding UI.yaml server: ?: type: io.murano.resources.LinuxMuranoInstance name: $.instanceConfiguration.hostname image: $.instanceConfiguration.image flavor: $.instanceConfiguration.flavor assignFloatingIp: $.instanceConfiguration.assignFloatingIp Checkout sources for step #7 - git checkout step7
  • 80. Copyright © 2016 Mirantis, Inc. All rights reserved Plone: Configuration Management ● Use “Unified Plone UNIX Installer” ● Use almost same script as we did for Heat template http://q.melikyan.me/install-plone-sh
  • 81. Copyright © 2016 Mirantis, Inc. All rights reserved Plone: Configuration Checkout sources for step #8 - git checkout step8 Add install-plone.sh $ mkdir PloneApp/Resources <download and put install-plone.sh in the directory above>
  • 82. Copyright © 2016 Mirantis, Inc. All rights reserved Plone: Deploy Checkout sources for step #9 - git checkout step9 Adding logic $ vi PloneApp/Classes/Plone.yaml ... Methods: onInstallServer: ... Body: - $file: sys:Resources.string('install-plone.sh').replace({"$1" => $this.deploymentPath, "$2" => $this.adminPassword, "$3" => $this.listeningPort}) - conf:Linux.runCommand($server.agent, $file)
  • 83. Copyright © 2016 Mirantis, Inc. All rights reserved Bonus: Logo & Security Rules ● Please checkout step10 and take a look ● Try to analyze what we are doing and why ● Explain Checkout sources for step #10 - git checkout step10
  • 84. Copyright © 2016 Mirantis, Inc. All rights reserved Ready to use applications! DBaaS Containers PaaS CI/CD CMS Web/ App Servers
  • 85. Copyright © 2016 Mirantis, Inc. All rights reserved How to get them? http://apps.openstack.org
  • 86. Copyright © 2016 Mirantis, Inc. All rights reserved Screencasts ● Openstack Application Catalog. Quick introduction ● HA & Autoscaling for Applications ● Docker Integration ● Support for Heat based application ● Composing Murano Application Package Please, find more screencasts published on wiki: https://wiki.openstack.org/wiki/Murano/Screencasts
  • 87. Copyright © 2016 Mirantis, Inc. All rights reserved Links ● Project Links: ● https://launchpad.net/murano ● https://wiki.openstack.org/wiki/Murano ● http://docs.openstack.org/developer/murano/ ● MailingList: ● openstack-dev@openstack.org with [Murano] in the subject Weekly IRC meeting is held on Tuesdays at 17:00 UTC on #openstack-meeting-alt at Freenode.
  • 88. Copyright © 2016 Mirantis, Inc. All rights reserved Survey ploneconf.sixfeetup.com
  • 89. Copyright © 2016 Mirantis, Inc. All rights reserved Credits ● Alexander Tivelkov & Evgeniy Mashkin ● for amazing articles and developing Plone app for Murano ● David Flanders & Philip Bauer ● for opportunity being here and present this training
  • 90. Copyright © 2016 Mirantis, Inc. All rights reserved Thank you for your time