an intrudction to openstack 2017

47
An Introduction To OpenStack By Haim Ateya 07.11.2017

Upload: haim-ateya

Post on 22-Jan-2018

225 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: An Intrudction to OpenStack 2017

An Introduction To OpenStack

By Haim Ateya07.11.2017

Page 2: An Intrudction to OpenStack 2017

Introduction

Married + 1

Works for EMC as a Group Manager In the Quality Assurance department of XtremIO

Previous companies: Red hat, Microsoft, Radware.

Professional trainer for Linux, Storage, DevOps and Cloud technologies

Page 3: An Intrudction to OpenStack 2017

Agenda

Quick introduction to OpenStack project

Explain the OpenStack architecture and how its built

Get you familiar with the different terminology and concepts

Get you familiar with OpenStack services (components)

Go over installation methods and tools

Review risks

Page 4: An Intrudction to OpenStack 2017

Definition of Cloud Computing

• Cloud computing, also known as 'on-demand computing', is a kind of Internet-based computing, where shared resources, data and information are provided to computers and other devices on-demand.

• It is a model for enabling ubiquitous, on-demand access to a shared pool of configurable computing resources

Page 5: An Intrudction to OpenStack 2017

10 Amendments Of The Cloud

• Massive scale

• Agility \ Elasticity

• Abstraction

• Automation

• Infinite capacity

• Converged API’s

• Quick provisioning of resources

• On demand service

• Metering (billing)

• Pay as you go

Page 6: An Intrudction to OpenStack 2017

Applications

Data

Run Time

Middleware

OS

Virtualization

Servers

Storage

Networking

Applications

Data

Run Time

Middleware

OS

Virtualization

Servers

Storage

Networking

Applications

Data

Run Time

Middleware

OS

Virtualization

Servers

Storage

Networking

Applications

Data

Run Time

Middleware

OS

Virtualization

Servers

Storage

Networking

IT Man

aged

IT Man

aged

IT Man

aged

Clo

ud

Pro

vide

r M

anage

d

Clo

ud

Pro

vide

r M

anage

d

Cloud Service Types

Page 7: An Intrudction to OpenStack 2017

What Is OpenStack ?

OpenStack is a cloud computing project aimed at providing an Infrastructure as a service (IaaS). ”

It’s 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.”

Page 8: An Intrudction to OpenStack 2017

What OpenStack Provides ?

Virtual machines on demand

Virtual networks management

Storage for VMs and arbitrary files

Multi-tenancy

Metering

Orchestration

Page 9: An Intrudction to OpenStack 2017

History

Begun in 2010 as a joint project of Rackspace hosting and NASA to build Cloud based operating system

Free and open source software platform under the apache license

Actively driven by a strong open-source community with thousands of developers and more than 500 companies that actively contributing to the project: IBM, Red Hat, HP, Cisco, Intel, Google, Oracle, Dell, EMC, VMware.

15 releases to this point (Havana Pike)

Page 10: An Intrudction to OpenStack 2017

OpenStack In A Nutshell

Cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

Page 11: An Intrudction to OpenStack 2017

Cont.

Controls large pools of storage, network and compute resources throughout a data-center.

Believes in open source, open design, open development, all in an open community that encourages participation by anyone

Consists of a series of interrelated projects delivering various components for a cloud infrastructure solution

Page 12: An Intrudction to OpenStack 2017

OpenStack Statistics (stackalytics.com)

One of the fastest growing open-source communities in the world with more than 15,0000 contributors

o Code submission

o Code reviews

o Testing

o Documentation

Page 13: An Intrudction to OpenStack 2017

OpenStack Distributions

Page 14: An Intrudction to OpenStack 2017

OpenStack Projects

Page 15: An Intrudction to OpenStack 2017

Common Attributes

API – each service has 3 sets of API’s

o CLI

o Rest

o GUI (via Horizon)

Database – all services store their data on a rational data base (MariaDB)

Scaling – each service support scale up \ out of the different internal components

Security & Access – keystone controls all access between the different services

Communication – all services are communicating using AMQP

Page 16: An Intrudction to OpenStack 2017

OpenStack Architecture (Start Point)

Page 17: An Intrudction to OpenStack 2017

OpenStack Architecture (Advanced)

Page 18: An Intrudction to OpenStack 2017

Terminology

PTL – Project Team Lead for one of OpenStack projects (cinder, glance, swift, etc.)

Blueprint – a detailed suggestion for new code enhancement \project in upstream (Open Source community)

Incubation – the process in which new project is maintained until it becomes one of the core projects

Instance – virtual machine running in Nova node

Image – an attribute of a virtual machine which includes disk and OVF

Tenant – logical entity that creates a shared pool of resources (network, storage, compute, security) between users & groups.

Page 19: An Intrudction to OpenStack 2017

Cont.

Flavor - virtual hardware templates which defines the hardware characteristics of a virtual machine (tiny, medium, large, small)

Volume – virtual disk attached to a VM instance (mostly refers to block device)

Page 20: An Intrudction to OpenStack 2017

OpenStack Components

Page 21: An Intrudction to OpenStack 2017

Deployments

Designed for scale

Can be configured and deployed in many ways

Main deployments are:

All-in-one (POC’s)

Standalone \ multi-node

Distributed \ partly distributed

Highly available

Scale

Page 22: An Intrudction to OpenStack 2017

OpenStack Production Deployment (Mirantis)

Page 23: An Intrudction to OpenStack 2017

Cinder – Block Storage

Responsible for block device provisioning of virtual machines

Provides an API for various storage array vendors to manage their block device and translate commands between Nova and other services

Best used for performance-sensitive scenarios, such as databasestorage or expandable file systems

Page 24: An Intrudction to OpenStack 2017

Cinder – Basic Features

Create/delete volumes

Specify custom "types/extra-specs”

Clone

Copy image to volume and volume to

image

Point in time copy (snapshots of

volumes)

Create volume from snapshot

Backup volume (to object store, SWIFT

and CEPH)

Transfer volume ownership

Per tenant quota

Customized scheduling filters

Page 25: An Intrudction to OpenStack 2017

XtremIO Cinder Driver

• XtremIO provides a way to interact with OpenStack Cinder component (block device API server)

• Cinder API allows cloud administrator manage volumes / snapshots and attach / detach them to a virtual machine

• Cinder API allows simple access to any given storage array by exposinga known set of commands (same command for NetApp, VMAX, XtremIO, HP, Solid Fire and others).

• XtremIO Cinder driver is developed by the XMS plugins team (based on RestAPI)

Page 26: An Intrudction to OpenStack 2017

XtremIO Cinder Topology

Page 27: An Intrudction to OpenStack 2017

Swift – Object Storage

Provides an HTTP-accessible storage system for large amounts of data

Objects are stored as binaries along with stored metadata

Usually stores videos, images, email messages, files, or VM images

Each object is stored with 3 replicas to ensure availability and redundancy of data

Runs on commodity hardware

Page 28: An Intrudction to OpenStack 2017

Swift – Basic Features

Distributed

Scalable to several Peta-bytes

Highly available (by design)

Robust

S3 API support

Can work on simple

(commodity hardware)

Support several storage types

Quotas and access control

Page 29: An Intrudction to OpenStack 2017

Swift – Basic Architecture

Page 30: An Intrudction to OpenStack 2017

Glance – Image Repository

OpenStack Image service acts as a registry for virtual disk images

Users can add new images or take a snapshot of an existing server for immediate storage

Registered images can be stored in the Object Storage service or in other locations, such as simple file systems or external Web servers

Page 31: An Intrudction to OpenStack 2017

Glance – Image Types

aki/ami/ari (Amazon kernel, ramdisk, or machine image)

iso (archive format for optical discs, such as CDs)

qcow2 (Qemu/KVM, supports Copy on Write)

raw (unstructured format)

vhd - Hyper-V, VMware, Xen, Microsoft, and VirtualBox

vdi (Qemu/VirtualBox)

vmdk (VMware)

Page 32: An Intrudction to OpenStack 2017

Nova – Compute

OpenStack Compute serves as the core of the OpenStack cloud by providing virtual machines on demand

Compute schedules virtual machines to run on a set of nodes by defining drivers that interact with underlying virtualization mechanisms

Compute interacts with the Identity service to authenticate instance and database access

Page 33: An Intrudction to OpenStack 2017

Nova – Cont.

Compute supports the libvirt driver libvirtd that uses KVM as the hypervisor. The hypervisor creates

o Instances \ servers

o Flavors \ instance type

oDrivers (for virt drivers)

o Support bare metal provision

o Support several API (for virtualization vendors)

Page 34: An Intrudction to OpenStack 2017

Libvirt – Virtualization API

A toolkit to interact with the virtualization capabilities of recent versions of Linux

Libvirt supports the following virtualization engines:

o The KVM/QEMU Linux hypervisor

o The Xen hypervisor on Linux and Solaris hosts.

o The LXC Linux container system

o The VirtualBox hypervisor

o The VMware ESX and GSX hypervisors

o The Microsoft Hyper-V hypervisor

o The IBM PowerVM hypervisor

Page 35: An Intrudction to OpenStack 2017

Nova - Flavors

Virtual hardware templates which defines sizes for RAM disk, number of cores, and so on

Default install provides five flavors

Admin may want to customize depending of the workload and hardware

Page 36: An Intrudction to OpenStack 2017

Neutron – Networking (SDN)

Handles management of virtual network infrastructure in OpenStack cloud

Including networks, subnets, routers, switches, firewalls and VPN.

Users can create network, control traffic and connect servers and devices to

one or more networks

Flexible networking models

Support FWaaS, LBaaS and VPNaaS

Support GRE and VXLAN tunneling

Page 37: An Intrudction to OpenStack 2017

Neutron – Concepts

Ports

Networks

Subnet

VIF (Virtual Interface)

Floating IP (NAT)

External network

Provider Network

Tenenat network

Page 38: An Intrudction to OpenStack 2017

Neutron – Basic Topology

Page 39: An Intrudction to OpenStack 2017

Horizon - Dashboard

Self service UI (allows you to see and manage your cloud)

Python WSGI application (written in python)

Stateless client of OpenStack API's

Support Horizontal scaling

Session state must be kept (using Django)

Interact with all other services (nova, cinder, glance, swift, neutron)

Page 40: An Intrudction to OpenStack 2017

Horizon – Quick Look

Page 41: An Intrudction to OpenStack 2017

KeyStone – Identity Management

OpenStack Identity provides user authentication and authorization to all OpenStack components

Supports multiple authentication mechanisms, including user name and password credentials, token-based systems, and AWS-style log-ins

User account management, including associated information such as a name and password

Page 42: An Intrudction to OpenStack 2017

OpenStack – Additional Services

Trove - OpenStack Database-as-a-Service allows users to select, provision, and operate a variety of relational and non-relational database

Sahara – OpenStack Hadoop-as-a-Service allows rapidly configure, reliably auto-deploy and scale Hadoop clusters on OpenStack

Ironic – Bare metal provisioning that enables the user to provision physical, or bare metal machines, for a variety of hardware vendors with hardware-specific drivers

Heat – Automation and orchestration service

Ceilometer - Telemetry provides user-level usage data or OpenStack-based clouds

Page 43: An Intrudction to OpenStack 2017

Installation Methods

PackStack – OpenStack installer (deprecated – very good for POC’s and small deployments

DevStack – Development environment that allows developers to install basic OpenStack server and debug their code

TryStack – an easy way to try OpenStack on remote servers (http://trystack.org/)

TripleO - “OpenStack on OpenStack”. It is an official OpenStack project with the goal of allowing you to deploy and manage a production cloud onto bare metal hardware using a subset of existing OpenStack components

OpenStack Ansible – deploying OpenStack from ansible playbook files

Page 44: An Intrudction to OpenStack 2017

Tempest – OpenStack CI Tool

OpenStack integration testing suite

Includes set of integration tests to be run against a live OpenStack cluster

Both tests and infrastructure are written in Python

Based on Unittest2 and nose runner

Very good for API testing

Every developer \ code contributor must test his code in OpenStack CI

environment before submission and code review

Page 45: An Intrudction to OpenStack 2017

Risks

Many stability issues

Not enterprise \ production ready

Involves complex technologies

Lack of support

Open Source

Requires unique skills

Page 46: An Intrudction to OpenStack 2017

Q&A

Q & A

Q & A

Page 47: An Intrudction to OpenStack 2017

The End.

Haim AteyaGroup Manager, Dell-EMC Email: [email protected]: https://il.linkedin.com/in/haimateyaBlog: https://blog.haimateya.tech