Deployment models in cloud - ut

61
Cloud Computing – Lecture 10 Deployment models in cloud 14 April 2020 Chinmaya Dehury Satish Srirama Mobile & Cloud Lab

Transcript of Deployment models in cloud - ut

Page 1: Deployment models in cloud - ut

Cloud Computing – Lecture 10

Deployment models in cloud14 April 2020

Chinmaya DehurySatish Srirama

Mobile & Cloud Lab

Page 2: Deployment models in cloud - ut

Outlines

• Introduction to deployment models in cloud• Deployment concerns and selection criteria• Cloud deployment solutions• Service deployment in cloud • Service deployment standard• Orchestration of cloud services• Cloud service management solutions

Cloud Computing - Lecture 10: Deployement models in cloud 2

Page 3: Deployment models in cloud - ut

Cloud deployment model

What do you mean by deployment model ?• Who is the targeted user?• Each cloud model is a representative of a specified

environment and is distinguished by• Size• Access• Storage and • Ownership.

Cloud Computing - Lecture 10: Deployement models in cloud 3

Page 4: Deployment models in cloud - ut

Cloud deployment model

Cloud Computing - Lecture 10: Deployement models in cloud 4

Page 5: Deployment models in cloud - ut

Cloud deployment models

Cloud Computing - Lecture 10: Deployement models in cloud 5

1. Private Cloud2. Public Cloud 3. Hybrid Cloud

Page 6: Deployment models in cloud - ut

Cloud deployment models comparison

Cloud Computing - Lecture 10: Deployement models in cloud

6

Description Public Cloud Private Cloud Hybrid CloudCloud environment

Multi-Tenancy-Shared environment.

Single tenancy-only for single use of an organization.

Both single tenancy and multi –tenancy.

Data center location

Anywhere Inside the organization’s network.

Both

Resource sharing (Server hardware, network and storage)

shared by multiple users in the cloud.

No sharing of resources.

Very secure; integration options add an additional layer of security.

Page 7: Deployment models in cloud - ut

Contd…

Cloud Computing - Lecture 10: Deployement models in cloud 7

Description Public Cloud Private Cloud Hybrid CloudCloud storage storage as a service

on a pay per use basis.

Internal cloud storage

Streamlined storage in local and public cloud storage.

Scalability Instant and unlimited.

Sacrifices scalability but provides greater control and security.

On demand unlimited resources.

Pricing structure On usage basis. Comparatively expensive.

High

Cloud Security Depends on service provider

Most secure Secure

Performance Low to medium. Very High. Very High.

Page 8: Deployment models in cloud - ut

More deployment models…

Cloud Computing - Lecture 10: Deployement models in cloud 8

• Managed Private Cloud• Hosted Private Cloud• Community Cloud Services

Page 9: Deployment models in cloud - ut

Deployment Concerns

• Security concern• Data governance• Audit• Management• Multi-tenancy• Vendor lock-in concern• Standard concern

Cloud Computing - Lecture 10: Deployement models in cloud 9

Page 10: Deployment models in cloud - ut

Deployment selection criteria

• Workload Patterns• Security concerns• Regulations• Availability• Hosted data classification• Type of requested services• Available budget• Time to operate• Skills

Cloud Computing - Lecture 10: Deployement models in cloud 10

Page 11: Deployment models in cloud - ut

Cloud Deployment solutions• OpenStack• CloudStack• Cloudify• Vmware• IBM Bluemix Cloud• SAP HANA Cloud platform• Red Hat Cloud • Cisco System• Dell Cloud• Platform.sh• Citrix Cloud• HP Helion • Oracle Cloud• NetApp

Cloud Computing - Lecture 10: Deployement models in cloud

11

Page 12: Deployment models in cloud - ut

Cloud Deployment solutions• OpenStack• CloudStack• Cloudify• Vmware• IBM Bluemix Cloud• SAP HANA Cloud platform• Red Hat Cloud • Cisco System• Dell Cloud• Platform.sh• Citrix Cloud• HP Helion • Oracle Cloud• NetApp

Cloud Computing - Lecture 10: Deployement models in cloud

12

This is more about how to setup your own cloud !!!

Page 13: Deployment models in cloud - ut

Cloud Deployment solutions

Cloud Computing - Lecture 10: Deployement models in cloud 13

But how about the service deployment ?

Page 14: Deployment models in cloud - ut

Cloud Deployment solutions

Cloud Computing - Lecture 10: Deployement models in cloud 14

But how about the service deployment ?

How would you deploy your own service, e.g. a messaging platform,

your own website, etc.

Page 15: Deployment models in cloud - ut

TOSCA standard• Topology and Orchestration Specification for Cloud

Applications (TOSCA)• By OASIS, a not-for-profit consortium • Enhance the portability and operational management of

cloud and other types of applications and services across their entire lifecycle.• User will be able to provide• Description of interoperability of the application and

infrastructure cloud services• Relationships between parts of the services• operational behavior of the services

• Deploy, patch, shutdown

Cloud Computing - Lecture 10: Deployement models in cloud

15

Page 16: Deployment models in cloud - ut

TOSCA standard (contd…)• Facilitate higher level of Solution portability:

• Portable deployment

• Simplify migration

• Dynamic, flexible scaling

• Model-driven creation of cloud services

• Standardize deployment

• Process-driven service lifecycle management

• Latest version:

• TOSCA Simple Profile in YAML Version 1.3: https://docs.oasis-

open.org/tosca/TOSCA-Simple-Profile-YAML/v1.3/TOSCA-Simple-

Profile-YAML-v1.3.html

Cloud Computing - Lecture 10:

Deployement models in cloud16

Page 17: Deployment models in cloud - ut

TOSCA modellingGOAL: • Cross cloud, cross tools, orchestration of application on the

cloudBasic blocks:• Topology• Composition• Requirements – Capabilities• State (nodes, relationship)• Lifecycle• Policy

Cloud Computing - Lecture 10: Deployement models in cloud 17

Page 18: Deployment models in cloud - ut

TOSCA modelling – Service Template

• Templates define the structure of a cloud service.• Usually described in YAML or in XML format• Structure of service template• Node Type• Relationship type• Node template• Relationship template

Cloud Computing - Lecture 10: Deployement models in cloud 18

Page 19: Deployment models in cloud - ut

TOSCA modelling – Node Type• Describe the type of a resource, component. E.g. type of

cloud, type of software etc.• This is similar to declaring a class in different Object

Oriented Programming languages. • Describe the lifecycle of the node type.

Cloud Computing - Lecture 10: Deployement models in cloud 19

Page 20: Deployment models in cloud - ut

TOSCA modelling – Node Type• Describe Properties, attributes, capabilities, requirements

of a node

Cloud Computing - Lecture 10: Deployement models in cloud

20

tosca.nodes.Root:derived_from: tosca.entity.Rootdescription: The TOSCA Node Type all other TOSCA base Node Types derive fromattributes:

tosca_id:type: string

capabilities:feature:

type: tosca.capabilities.Noderequirements:

- dependency:capability: tosca.capabilities.Nodenode: tosca.nodes.Root

relationship: tosca.relationships.DependsOnoccurrences: [ 0, UNBOUNDED ]

interfaces: Standard:

type: tosca.interfaces.node.lifecycle.Standard

Page 21: Deployment models in cloud - ut

TOSCA modelling – Node template

• Define topology with • Nodes (node_templates) • Relationship (relationship_templates)

• Node template• To describe components in the topology structure.• Set of nodes (resources/components)• Concrete Node:

• Have deployment and implementation artifacts • Abstract Node:

• Describe only node type, and mandatory capabilities and properties

Cloud Computing - Lecture 10: Deployement models in cloud

21

Page 22: Deployment models in cloud - ut

TOSCA modelling - Node template• Node template - Example

Cloud Computing - Lecture 10: Deployement models in cloud

22

tosca_definitions_version: tosca_simple_yaml_1_3description: Template with a generic dependency between two nodes.topology_template:inputs:

# omitted here for brevity

node_templates:my_app:

type: my.types.MyApplicationproperties:

# omitted here for brevityrequirements:

- dependency: some_service

some_service:type: some.nodetype.SomeServiceproperties:

# omitted here for brevity

Page 23: Deployment models in cloud - ut

TOSCA modelling - Relationship template• Relationship template• To describe connections, dependencies, deployment ordering

• Requirements and capabilities are implicit way to describe the relationship• Some basic explicit relationship types:• DependsOn• ConnectsTo• AttachesTo• RoutesTo• HostedOn

Cloud Computing - Lecture 10: Deployement models in cloud 23

Page 24: Deployment models in cloud - ut

TOSCA modelling - Relationship template

Cloud Computing - Lecture 10: Deployement models in cloud 24

Relationship types example:

Page 25: Deployment models in cloud - ut

TOSCA modelling - Relationship template

Cloud Computing - Lecture 10: Deployement models in cloud 25

Relationship types example:

Page 26: Deployment models in cloud - ut

TOSCA modelling - Relationship template

Cloud Computing - Lecture 10: Deployement models in cloud 26

Relationship types example:

Page 27: Deployment models in cloud - ut

TOSCA modelling - Relationship templateRelationship Example

Cloud Computing - Lecture 10: Deployement models in cloud

27

node_templates:

my_block_storage:type: BlockStorageproperties:

size: 10my_web_app_tier_1:

derived_from: Computerequirements:

- local_storage:node: my_block_storagerelationship: storage_attachesto_1

my_web_app_tier_2:derived_from: Computerequirements:

- local_storage: node: my_block_storagerelationship: storage_attachesto_2

relationship_templates:storage_attachesto_1:

type: MyAttachesToproperties:

location: /my_data_location

storage_attachesto_2:type: MyAttachesToproperties:

location: /some_other_data_location

relationship_types:

MyAttachesTo:derived_from: AttachesTointerfaces:

some_interface_name:some_operation:

implementation: default_script.sh

Page 28: Deployment models in cloud - ut

TOSCA modelling - Relationship template• Relationships have interfaces as well• configure : the basic interface• pre_configure_source• pre_configure_target• post_configure_source• post_configure_target• add_source, add_target• remove_source, remove_target

Cloud Computing - Lecture 10: Deployement models in cloud 28

Page 29: Deployment models in cloud - ut

TOSCA Implementation• Cloudify - http://getcloudify.org/

• DICER - https://github.com/DICERs/DICER

• Eclipse Winery - https://projects.eclipse.org/projects/soa.winery

• Opera - https://github.com/radon-h2020/xopera-opera

• OpenTOSCA - http://www.opentosca.org/

• see full list…

Cloud Computing - Lecture 10: Deployement models in cloud

29

Page 30: Deployment models in cloud - ut

TOSCA implementation

We will discuss following two• Cloudify•Opera

Cloud Computing - Lecture 10: Deployement models in cloud 30

Page 31: Deployment models in cloud - ut

TOSCA implementation - Cloudify• open source cloud orchestration framework.• written in the Python programming language.• Model applications and services and automate their entire

life cycle.• Supports configuration management tools like Chef

Puppet, Ansible for the application deployment phase.• Each application is describe in a YMAL file called blueprint.• GUI to model the service blueprint.

Cloud Computing - Lecture 10: Deployement models in cloud 31

Page 32: Deployment models in cloud - ut

TOSCA implementation - Cloudify

Cloud Computing - Lecture 10: Deployement models in cloud 32

Page 33: Deployment models in cloud - ut

TOSCA implementation - Cloudify

Cloud Computing - Lecture 10: Deployement models in cloud 33

Page 34: Deployment models in cloud - ut

TOSCA implementation - Cloudify

Cloud Computing - Lecture 10:

Deployement models in cloud34

Cloudify Manager primarily is built with open-source components:

• Nginx: high-performing Web server. For the Cloudify

REST service, file server to host Cloudify-specific

resources

• Gunicorn: Web server gateway interface HTTP server

• Flask: Web framework

• PostgreSQL: object-relational database that stores

the application’s model, indexing, and logs’ and

events’ storage

• Logstash: to pull log and event messages from

RabbitMQ and index them in PostGresSQL.

Page 35: Deployment models in cloud - ut

TOSCA implementation - Cloudify

Cloud Computing - Lecture 10:

Deployement models in cloud35

Cloudify Manager primarily is built with open-source components (contd…):• RabbitMQ: Queueing deployment tasks, logs and

events, Queueing metrics

• Riemann: policy-based decision maker (an

experimental feature)

• Celery: distributed task queue. Cloudify

management worker, the deployment-specific

agents and the host agents are based on Celery

• InfluxDB: time-series database; to store metrics

submitted by the application’s hosts

Page 36: Deployment models in cloud - ut

TOSCA implementation - Opera• Lightweight orchestrator• Compliant with OASIS TOSCA• Support TOSCA Simple Profile YAML v1.3 • Red Hat Ansible Automation for interface implementation• Supported by European Union’s Horizon 2020 research and

innovation program “RADON”.• https://github.com/radon-h2020/xopera-opera

Cloud Computing - Lecture 10: Deployement models in cloud 36

Page 37: Deployment models in cloud - ut

Ansible Automation

• IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs.• Founded in 2013• Bought by Red Hat in 2015.• Similar technology: Chef, Puppet• Heavily use SSH infrastructure to connect and control

other remote servers.

Cloud Computing - Lecture 10: Deployement models in cloud

37

Page 38: Deployment models in cloud - ut

Ansible

Advantage:• Open-source tool• Agentless: No extra agent is required on the remote

machine.• Flexible• Quite easy as it follow YAML format.• User/developer focus only on the task.

Cloud Computing - Lecture 10: Deployement models in cloud

38

Page 39: Deployment models in cloud - ut

Ansible Architecture: Modules

•Over 1000 modules to automate the tasks•Do the actual work•Most of modules are standalone•Users can also write their own modules

•Here ‘service’ is a module.• Some other modules: read_csv, file, copy,

lineinfile, etc

Cloud Computing - Lecture 10: Deployement models in cloud

39

Page 40: Deployment models in cloud - ut

Ansible Architecture: Inventories• List of nodes along with related info.:• Address• Username• Password• Connection type• Other configuration for ssh connection

• Default location of inventory file: /etc/ansible/hosts• Inventory can be in YAML or in ini format

Cloud Computing - Lecture 10: Deployement models in cloud 40

Page 41: Deployment models in cloud - ut

Ansible Architecture: Inventories

Cloud Computing - Lecture 10: Deployement models in cloud 41

Examplemail.example.com

[webservers]foo.example.combar.example.com

[dbservers]one.example.comtwo.example.comthree.example.com

[targets]

localhost ansible_connection=localother1.example.com ansible_connection=ssh ansible_user=myuserother2.example.com ansible_connection=ssh ansible_user=myotheruser

Page 42: Deployment models in cloud - ut

Ansible Architecture: Playbooks

Cloud Computing - Lecture 10: Deployement models in cloud 42

• It’s in YAML format• Playbook contains Plays; • Plays contain tasks; • Tasks call module.

• Simple command to run a playbook:ansible-playbook playbook.yml

Page 43: Deployment models in cloud - ut

Ansible Architecture: PlaybooksExample:

Cloud Computing - Lecture 10:

Deployement models in cloud43

---

- hosts: webservers

vars:

http_port: 80

max_clients: 200

remote_user: root

tasks:

- name: ensure apache is at the latest

version

yum:

name: httpd

state: latest

- name: write the apache config file

template:

src: /srv/httpd.j2

dest: /etc/httpd.conf

notify:

- restart apache

- name: ensure apache is running

service:

name: httpd

state: startedC

on

td…

Page 44: Deployment models in cloud - ut

Puppet

• An open-source configuration management technology.• Manages the infrastructure on physical or virtual

machines.• Written in Ruby, C++, and Clojure• Usually follows client-server or agent-master

architecture.• Puppet Server : on one or more servers• Puppet Agent : on all the machines that we want to

manage

Cloud Computing - Lecture 10: Deployement models in cloud 44

Page 45: Deployment models in cloud - ut

Puppet Blocks

•Different building blocks:•Modules•Classes•Resources•Manifest

Cloud Computing - Lecture 10: Deployement models in cloud 45

Page 46: Deployment models in cloud - ut

Puppet Blocks - Modules

•A collection of files and directories, such as Manifests, Class definitions.• Each module manages a specific task in

the infrastructure.•Contains: • classes, defined types, tasks, task plans,

functions, resource types and providers, etc.

•Reusable and shareable.

Cloud Computing - Lecture 10: Deployement models in cloud 46

Page 47: Deployment models in cloud - ut

Puppet Blocks - Modules

Cloud Computing - Lecture 10: Deployement models in cloud 47

Page 48: Deployment models in cloud - ut

Puppet Blocks - Modules

Cloud Computing - Lecture 10: Deployement models in cloud

48

class autofs { package { autofs: ensure => latest } service { autofs: ensure => running }

file { "/etc/auto.homes": source => "puppet://$servername/modules/autofs/auto.homes"

} file { "/etc/auto.master":

content => template("autofs/auto.master.erb") }

}

Examples

Page 49: Deployment models in cloud - ut

Puppet Blocks - Classes

•Defined as a collection of resources•Classes are defined inside Puppet manifest

files.•Created by writing a class definition in a

manifest (.pp) file.

Cloud Computing - Lecture 10: Deployement models in cloud 49

Page 50: Deployment models in cloud - ut

Puppet Blocks - Classes

Cloud Computing - Lecture 10: Deployement models in cloud

50

Example: class1_site.pp

class f3backup ( $backup_home = '/backup', $backup_server = 'default', $myname = $::fqdn, $ensure = 'directory',

) { include '::f3backup::common' if ( $myname == '' or $myname == undef ) {

fail('myname must not be empty') } @@file { "${backup_home}/f3backup/${myname}":

# To support 'absent', though force will be needed ensure => $ensure, owner => 'backup', group => 'backup', mode => '0644', tag => "f3backup-${backup_server}",

}}

Page 51: Deployment models in cloud - ut

Puppet Blocks - Resources• Resources are the fundamental unit for

modeling system configurations.• Puppet code in manifest file or any other file is

called a resource declaration.• Expressed in Declarative Modelling Language

(DML)• Resource Declaration:• Resource Type• Resource Parameter• Attributes• values

Cloud Computing - Lecture 10: Deployement models in cloud 51

Page 52: Deployment models in cloud - ut

Puppet Blocks - Resources• Example

Cloud Computing - Lecture 10: Deployement models in cloud

52

user { 'student1': ensure => present, uid => '552', shell => '/bin/bash', home => '/home/student1',

}

Resource Type − userResource Parameter − student1.Attributes − ensure, uid, shell, home.Values − values of ensure, uid, shell, home.

Page 53: Deployment models in cloud - ut

Puppet Blocks - Resources

Cloud Computing - Lecture 10: Deployement models in cloud 53

Resource Type:Some more types exec, file, cron, mount, package, service, user, etc

Attributes – Values pairs:For each resource type, Puppet offers a set of Attributes.e.g. For User, attributes can be

home, groups, gid, password_max_age, password_min_age, shell, etc.

Page 54: Deployment models in cloud - ut

Puppet Blocks - Manifest

• a directory containing puppet DSL files.• .pp extension (Puppet Program)•Puppet manifest consists of the

followingimportant components −• Resources• Templates (used to construct configuration files on the

node).• Nodes (contain all the definition related to a client node)• Classes

Cloud Computing - Lecture 10: Deployement models in cloud 54

Page 55: Deployment models in cloud - ut

Service deployment solutions – A Summary

Cloud Computing - Lecture 10: Deployement models in cloud 55

Automation EngineTo implement the necessary service deployment and lifecycle management

tasks: Ansible and Puppet

Orchestrator

A tool to understand the standard: Cloudify, Opera

Standard Specification

A standard to follow for service deployment and management: TOSCA

Page 56: Deployment models in cloud - ut

Research topics (contd…)

• Distributed file systems and data management • Legacy System Migration • Cloud SLAs• Performance/scale/price estimation• Mobile service deployment• Deployment Model Selection• Cost & Risk Analysis

Cloud Computing - Lecture 10: Deployement models in cloud 56

Page 57: Deployment models in cloud - ut

Cloud Computing - Lecture 10: Deployement models in cloud 57

What next ???

Page 58: Deployment models in cloud - ut

Let’s move to lab session…

Cloud Computing - Lecture 10: Deployement models in cloud 58

Page 59: Deployment models in cloud - ut

References1. https://www.oasis-open.org/2. https://wiki.oasis-open.org/tosca/TOSCA-implementations

3. Casale, G., Artač, M., van den Heuvel, W. et al. RADON: rational decomposition and orchestration for serverless computing. SICS Softw.-Inensiv. Cyber-Phys. Syst. (2019). https://doi.org/10.1007/s00450-019-00413-w

4. http://radon-h2020.eu/5. https://www.slideserve.com/lona/topology-and-orchestration-

specification-for-cloud-applications-tosca-standard6. https://www.snia.org/sites/default/education/tutorials/2011/fall/Cloud

Technologies/MartyStogsdill_Deploying_Public_Private_Hybrid_Storage-v1-8.pdf

7. https://www.slideshare.net/melsatar/cloud-deployments-models8. https://slideplayer.com/slide/12656640/

Cloud Computing - Lecture 10: Deployement models in cloud

59

Page 60: Deployment models in cloud - ut

References9. https://docs.cloudify.co/4.3.0/about/manager_architecture/component

s/10. https://www.slideshare.net/knoldus/introduction-to-ansible-8136974111. https://www.guru99.com/puppet-tutorial.html12. https://www.tutorialspoint.com/puppet/puppet_module.htm13. https://www.tutorialspoint.com/puppet/puppet_resource.htm14. https://www.tutorialspoint.com/puppet/puppet_manifest_files.htm

Cloud Computing - Lecture 10: Deployement models in cloud 60

Page 61: Deployment models in cloud - ut

Thank you

Cloud Computing - Lecture 10: Deployement models in cloud 61