You are on page 1of 44

Webinar on September 24th, 2015 - 15:00 CET

Platform As a Service (Paas)


and Openstack

Alessandro M. Martellone - Cloud Engineer


Daniel Depaoli - Cloud Developer
Hello!
I am Alessandro M. Martellone
I am an enthusiastic user of OpenStack.
I work at Create-Net as Cloud Platform Engineer. Mainly
involved on Future Internet infrastructures and cloud
platforms.
Contacts:
amartellone@create-net.org
http://www.linkedin.com/in/alessandromartellone

I am Daniel Depaoli
I am an enthusiastic user of OpenStack too!
I work at Create-Net and I’m involved in software defined
networking and cloud network project. I’m also an
Openstack devops.

Contacts:
ddepaoli@create-net.org
http://www.linkedin.com/in/ddepaoli
1.
Introduction
A brief introduction
Content

1. Introduction
2. Containers
a. What are containers
b. LXC
c. Docker
d. Kubernetes
3. Murano
4. Container in Openstack
a. Nova docker
b. Murano
c. Magnum
5. Demo
a. Murano
2.a
Containers
What are Containers? How are they implemented?
The problem in real world

■ Many objects to transport

■ Many transports type


The problem in real world
The problem

■ Many frameworks, many

libraries, softwares, versions,

etc.

■ Many operating systems

■ Many steps and many times to

configure a working environment


Software Containers

a. traditional case b. containers case


Software Containers

Hardware resource Namespace Common Kernel

A container is an Using of namespaces to Containers model


allocation, portioning, isolate processes, eliminates the hypervisor
and assignment of host networks, mount points layer, redundant OS
(compute) resources from one container to kernels, binaries and
such as CPU Shares, others. libraries needed to
Network I/O, Bandwidth, typically run workloads
Block I/O, and Memory in a vm.
(RAM).
Hypervisor vs Containers
Hypervisor Operating System

VM 1 VM 2 VM 3
(Ubuntu) (Centos) (Windows)

Kernel Kernel Kernel


1 2 3

Hypervisor

Kernel
Containers Service

Service container Service container Service container


1 2 3
(Continuous
(Web Server) (Database)
Integration)

Container engine

Kernel
Containers Operating System

Container 1 Container 2 Container 3


(Ubuntu) (Centos) (Debian)

Container engine

Kernel
Software Containers

Hypervisor Containers

Runs operating system Runs processes

Heavyweight isolated virtual machines Lightweight kernel namespaces

Can theoretically emulate any architecture Is less flexible in architecture emulation

VMs start via a full boot-up process Very fast namespace + process creation

Platform-oriented solution Service-oriented solution

Optimized for generality Optimized for minimalism and speed


Why Containers?

Speed Still
Ships within
seconds,
Virtualization
automated deploy Networks, file
in seconds, boot in system, resource
seconds. isolation

Footprint
In a single machine
100-1000
containers, against
10-100 virtual
machines
2.b
Containers implementation
How are they implemented?
Containers

● Linux Containers
● Docker
● many others

● Kubernetes
LXC (Linux Containers)

■ Working with Linux Kernel > 2.6.24 when cgroups was


introduced

■ It combines kernel's cgroups and support for isolated


namespaces to provide an isolated environment for
applications.
Docker

Docker is an open platform for developers and


sysadmins to build, ship, and run distributed
applications.

API + tools for developers

cross platform

component re-use

● online containers repository


Docker
Other implementations

Warden Solaris Containers

BSD Jails Rocket (rkt)


Workload partitions Parallels Virtuozzo Containers

iCore Virtual Accounts WPARS

Hp-UX Containers Sandboxie

Linux V-Server
Kubernetes

Open source system for managing containerized


applications across multiple hosts, providing basic
mechanisms for deployment, maintenance, and
scaling of applications.

● deployment automation

● scaling application

● cluster management

● container organizer
Kubernetes architecture

● Cluster: set of nodes

● Master: Main cluster node.


It’s the main management
contact point for
administrators

● Minion: working server

● Pod: one or more containers


that should be controlled as
a single application
Kubernetes main processes

Replication
Proxy Label
controllers
Load key/value pair
Replication balancing for for objects
pods pods identification
management

Kubelet
Api
Container
agent, ensure
Api service
containers
running
3.
Murano
An Openstack application catalog
Why Murano?

■ Applications deployment

■ Integration with Openstack

■ Public and browsable applications


Murano

An application catalog that enable developers and


cloud administrators to publish various cloud-ready
applications in a browsable categorized catalog
Murano
Murano
4.
Containers in Openstack
How to integrate containers in Openstack cloud
Containers in Openstack

● Nova docker

● Murano and Docker


● Murano and Kubernetes

● Magnum
Nova docker

An hypervisor driver for Nova Compute

Deprecated
Nova docker

● “replace” the Nova compute hypervisor

● runs only docker containers

● consider a containers as a virtual machine

● compute node dedicated for it


Docker and Murano

Murano should deploy a Machine with docker engine and load on it a container.
Kubernetes and Murano

Murano should also deploy a Kubernetes environment.


Magnum

An OpenStack API service making container


orchestration engines available as first class
resource
Magnum

● Multi containers type support

● Uses Heat to orchestrate an OS image with containers


engine

● Full OpenStack integrate


5.
Video Demo
Demo 1 Murano

Demo 2 Docker by Murano

Demo 3 Kubernetes by Murano


OpenStack Bootcamp
In partnership with Mirantis
The main topics covered are: At the end of the Bootcamp each
Overview on OpenStack and its student will be able to:
architecture, Describe the architecture of an
OpenStack networking; OpenStack deployment;
Swift; Discuss the main functionalities of
Ceilometer and its architecture, OpenStack;
Heat Overview; Deploy, configure and use the
OpenStack deployment. Openstack services;
Create and manage VMs and
Virtual Networks;
Create and manage, suers, roles,
and quotas;
Use the OpenStack CLI and
Dashboard.
For further information:
http://openstack.create-net.org
openstack@create-net.org
Reference

[1] https://www.docker.com/whatisdocker
[2] http://www.slideshare.net/jpetazzo/introduction-docker-linux-containers-lxc
[3] https://linuxcontainers.org/lxc/introduction/
[4] https://coreos.com/blog/rocket/
[5] http://kubernetes.io/v1.0/docs/whatisk8s.html
[6] https://docs.docker.com/swarm/
[7] https://coreos.com/
[8] http://www.projectatomic.io/
[9] https://wiki.openstack.org/wiki/Docker
[10] https://wiki.openstack.org/wiki/Murano
[11] https://wiki.openstack.org/wiki/Magnum
[12] http://kubernetes.io/v1.0/docs/whatisk8s.html
[13] http://aucouranton.com/2014/06/13/linux-containers-parallels-lxc-openvz-docker-and-more/
[14] http://www.socallinuxexpo.org/sites/default/files/presentations/Jerome-
Scale11x%20LXC%20Talk.pdf
[15] http://martinfowler.com/articles/microservices.html
[16] https://www.digitalocean.com/community/tutorials/an-introduction-to-kubernetes
[17] https://blog.risingstack.com/operating-system-containers-vs-application-containers/
[18] https://github.com/appc/spec/blob/master/SPEC.md
[19] http://media.wix.com/ugd/295986_d5059f95a78e451db5de3d54f711e45d.pdf
Thanks!

Any questions?

You can find us at:


ddepaoli@create-net.org
amartellone@create-
net.org
Vuoi sapere di più?
Guarda il video
completo del webinar!

https://youtu.be/90HOYKznIsI