From Bare Metal to Cloud Andy Edmonds, @dizz, ICCLab, ZHAW Piotr - - PowerPoint PPT Presentation

from bare metal to cloud
SMART_READER_LITE
LIVE PREVIEW

From Bare Metal to Cloud Andy Edmonds, @dizz, ICCLab, ZHAW Piotr - - PowerPoint PPT Presentation

From Bare Metal to Cloud Andy Edmonds, @dizz, ICCLab, ZHAW Piotr Kasprzak, GWDG Intros ICCLab GWDG Zurich University for Service Provider for Applied Sciences Max Planck Society Cloud Computing and University of Research


slide-1
SLIDE 1

From Bare Metal to Cloud

Andy Edmonds, @dizz, ICCLab, ZHAW Piotr Kasprzak, GWDG

slide-2
SLIDE 2

Intros

ICCLab

  • Zurich University for

Applied Sciences

  • Cloud Computing

Research GWDG

  • Service Provider for

Max Planck Society and University of Goettingen

  • Research
slide-3
SLIDE 3

GWDG Cloud Hardware

Nodes 38 CPUs 152 Core 2432 Memory 9728 TB Nodes 20 CPUs 80 Core 1280 Memory 1920 TB

ICCLab Cloud Hardware We've Hardware for Cloud!

slide-4
SLIDE 4

Challenges or Problems?

  • Clouds in essence

are big data centres

○ Means lots of servers: ■ Manual configuration not an option ■ Automation is required

slide-5
SLIDE 5

Challenges or Problems?

Cloud frameworks can/are be complicated!

slide-6
SLIDE 6

Challenges or Problems?

  • But Clouds are "cool" - Aayyy!
  • How to deploy a "cloud"

○ with minimal user interaction? ○ least number of "hands"? ○ across many servers?

BUT

slide-7
SLIDE 7

Challenges or Problems?

  • How to share/standardise these

processes?

○ Configuration - drift prevention ○ Testing - configuration, system functionality ○ Compliance - auditing, ITIL ○ Agility ○ Independence ■ Of physical/virtual deployment ■ Of infrastructure

slide-8
SLIDE 8

Automation Toolchain

slide-9
SLIDE 9

Automation Toolchain

slide-10
SLIDE 10

Provision - OS rollout

Baremetal

VM

?

slide-11
SLIDE 11
  • "Single Address For All Machines Lifecycle

Management".

  • Manages or proxies to DNS, DHCP, TFTP,

Virtual Machines, PuppetCA, CMDB

  • Integrates with Puppet (and acts as web

front end to it).

  • Provisions:

○ most flavours of *NIX, Windows ○ Virtual machines - libvirt, oVirt ○ Cloud Resources - Amazon EC2, VMware vCenter

  • Has an API! :-)

Provision - Foreman

slide-12
SLIDE 12

Provision - Foreman Arch

slide-13
SLIDE 13
  • Declarative configuration language

○ Describe desired state of a system, not how to achieve it ○ Idempotence

  • Different types of resources: software package, service,

user, configuration file, mysql database, ...

  • Dependencies can be formulated
  • Grouping of resources by "class" concept:

○ Way of structuring your descriptions

  • Abstraction layer for resources:

○ Independence from system type (different variants of linux, *bsd, mac os, windows, ...)

Configuration - Puppet

slide-14
SLIDE 14

current state desired state ==? sync event

Configuration - Puppet's Model

slide-15
SLIDE 15

current state desired state ==? sync event package {‘sshd’: ensure => present, }

You describe system state...

slide-16
SLIDE 16

current state desired state ==? sync event package {‘sshd’: ensure => present, } rpm –q sshd

  • dpkg-query –

search sshd

Puppet collects current state...

slide-17
SLIDE 17

current state desired state != sync event package {‘sshd’: ensure => present, } absent present rpm –q sshd

  • dpkg-query –

search sshd

Puppet compares...

slide-18
SLIDE 18

current state desired state != sync event package {‘sshd’: ensure => present, } absent present yum install sshd

  • apt-get install sshd

rpm –q sshd

  • dpkg-query –

search sshd

Puppet synchronizes...

slide-19
SLIDE 19

current state desired state != sync event package {‘sshd’: ensure => present, } absent present state transition: absent -> present rpm –q sshd

  • dpkg-query –

search sshd yum install sshd

  • apt-get install sshd

Puppet logs...

slide-20
SLIDE 20

A more complete puppet manifest

class ssh::install { package { "openssh": ensure => present, } } class ssh::config { file { "/etc/ssh/sshd_config": ensure => present,

  • wner

=> 'root', group => 'root', mode => 0600, source => "puppet:///modules/ssh/sshd_config", require => Class["ssh::install"], notify => Class["ssh::service"], } } class ssh::service { service { "sshd": ensure => running, hasstatus => true, hasrestart => true, enable => true, require => Class["ssh::config"], } } class ssh { include ssh::install, ssh::config, ssh::service } dependency "if I change..."

slide-21
SLIDE 21

OpenStack @ 10,000m, Looks Easy!

slide-22
SLIDE 22

OpenStack - The Ugly Close-up

Complicated

  • Many Services
  • Many Dependencies

Challenge to deploy

  • 100's, 1000's of

nodes? You need an automated toolchain!

slide-23
SLIDE 23

Apple Moment!

slide-24
SLIDE 24

Demo - What could go wrong?! Multi-node OpenStack Installation

  • 1 controller node

○ "boss"

  • 1 compute node

○ "worker1"

  • More time? Easy to add more.
slide-25
SLIDE 25

Demo: Deployment Architecture

slide-26
SLIDE 26

Demo: OpenStack Component Deployment

slide-27
SLIDE 27

Demo: Code/Config Details

  • There are 2 roles (hostgroups)

○ openstack/controller - controller.pp ○ openstack/compute - compute.pp

  • Both have different puppet manifests

○ Same 'icclab' module

slide-28
SLIDE 28

What's in a controller node?

slide-29
SLIDE 29

What's in a compute node?

slide-30
SLIDE 30
slide-31
SLIDE 31

Conclusions/Learnings

  • Automation is essential
  • Puppet codifies learnings, makes sharing easy
  • Foreman a central management point, full lifecycle,

adaptable to other services

  • Dependence on infrastructure service management

frameworks is lessened ○ Fast and efficient to install new ones with a tool chain

  • Other than SLA guarantees, the only guarantee to

maintain is the API between provider and customer and this is where standard APIs are need such as OCCI/CDMI/OVF.

slide-32
SLIDE 32

Next Steps

  • OpenStack to be rolled-out in ICCLab

○ New data centre, rolled-out within the month ○ Will include all OS Nova (Essex) and Swift services ■ Including OCCI interface

  • puppetlab-nova pull-request available
  • OpenStack to be rolled-out in GWDG

○ Will include all OS Nova (Essex) and Swift services ○ Providing production-quality OpenStack services

slide-33
SLIDE 33

Everything Presented is Documented at: http://www.cloudcomp.ch http://cloud.gwdg.de

Including:

  • HOWTOs
  • Foreman, Puppet, OpenStack installs
  • Virtual Machine images

Thanks!

Questions?

slide-34
SLIDE 34

Backup slides

slide-35
SLIDE 35

Toolchain map

VM Dashboard Git Config-DB (SQL) ITIL CMDB

Puppet Agent

Host

Puppet Agent

Puppet Master

slide-36
SLIDE 36

Foreman Arch

Bare-Metal

VM

Foreman

TFTP DHCP kernel initrd packages kickstart.ks

XEN

VM

KVM

HTTP DNS

Netinstall (PXE) OS artefacts

slide-37
SLIDE 37

Puppetmaster <-> agent interaction

slide-38
SLIDE 38

What are the common config params?

slide-39
SLIDE 39

CNA und FCoE

(Converged Network Adapter/ Fiber Channel over Ethernet)

ToR

(Top of Rack)

EoR/MoR

(End/Middle of Row)

Core

GWDG Cloud topology