Transcription

Cloud Computing – Lecture 10Deployment models in cloud14 April 2020Chinmaya DehurySatish SriramaMobile & Cloud Lab

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 solutionsCloud Computing - Lecture 10:Deployement models in cloud2

Cloud deployment modelWhat do you mean by deployment model ? Who is the targeted user? Each cloud model is a representative of a specifiedenvironment and is distinguished by SizeAccessStorage andOwnership.Cloud Computing - Lecture 10:Deployement models in cloud3

Cloud deployment modelCloud Computing - Lecture 10:Deployement models in cloud4

Cloud deployment models1. Private Cloud2. Public Cloud3. Hybrid CloudCloud Computing - Lecture 10:Deployement models in cloud5

Cloud deployment models comparisonDescriptionPublic CloudPrivate t.Single tenancy-only Both singlefor single use of an tenancy and multiorganization.–tenancy.Data centerlocationAnywhereInside theorganization’snetwork.BothNo sharing ofresources.Very secure;integration optionsadd an additionallayer of security.Resource sharing shared by multiple(Serverusers in the cloud.hardware,network andstorage)Cloud Computing - Lecture 10:Deployement models in cloudHybrid Cloud6

Contd DescriptionPublic CloudPrivate CloudHybrid CloudCloud storagestorage as a serviceon a pay per usebasis.Internal cloudstorageStreamlinedstorage in local andpubliccloud storage.ScalabilityInstant andunlimited.Sacrifices scalability On demandbut provides greater unlimitedcontrol and security. resources.Pricing structureOn usage basis.Comparativelyexpensive.HighCloud SecurityDepends on serviceproviderMost secureSecurePerformanceLow to medium.Very High.Very High.Cloud Computing - Lecture 10:Deployement models in cloud7

More deployment models Managed Private Cloud Hosted Private Cloud Community Cloud ServicesCloud Computing - Lecture 10:Deployement models in cloud8

Deployment Concerns Security concern Data governance Audit Management Multi-tenancy Vendor lock-in concern Standard concernCloud Computing - Lecture 10:Deployement models in cloud9

Deployment selection criteria Workload Patterns Security concerns Regulations Availability Hosted data classification Type of requested services Available budget Time to operate SkillsCloud Computing - Lecture 10:Deployement models in cloud10

Cloud Deployment solutions OpenStackCloudStackCloudifyVmwareIBM Bluemix CloudSAP HANA Cloud platformRed Hat CloudCisco SystemDell CloudPlatform.shCitrix CloudHP HelionOracle CloudNetAppCloud Computing - Lecture 10:Deployement models in cloud11

Cloud Deployment solutions OpenStackCloudStackCloudifyVmwareThis is more about how toIBM Bluemix CloudSAP HANA Cloud platform setup your own cloud !!!Red Hat CloudCisco SystemDell CloudPlatform.shCitrix CloudHP HelionOracle CloudNetAppCloud Computing - Lecture 10:Deployement models in cloud12

Cloud Deployment solutionsBut how about the servicedeployment ?Cloud Computing - Lecture 10:Deployement models in cloud13

Cloud Deployment solutionsBut how about the servicedeployment ?How would you deploy your ownservice, e.g. a messaging platform,your own website, etc.Cloud Computing - Lecture 10:Deployement models in cloud14

TOSCA standard Topology and Orchestration Specification for CloudApplications (TOSCA) By OASIS, a not-for-profit consortium Enhance the portability and operational management ofcloud and other types of applications and services acrosstheir entire lifecycle. User will be able to provide Description of interoperability of the application andinfrastructure cloud services Relationships between parts of the services operational behavior of the services Deploy, patch, shutdownCloud Computing - Lecture 10:Deployement models in cloud15

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: oud Computing - Lecture 10:Deployement models in cloud16

TOSCA modellingGOAL: Cross cloud, cross tools, orchestration of application on thecloudBasic blocks: Topology Composition Requirements – Capabilities State (nodes, relationship) Lifecycle PolicyCloud Computing - Lecture 10:Deployement models in cloud17

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 TypeRelationship typeNode templateRelationship templateCloud Computing - Lecture 10:Deployement models in cloud18

TOSCA modelling – Node Type Describe the type of a resource, component. E.g. type ofcloud, type of software etc. This is similar to declaring a class in different ObjectOriented Programming languages. Describe the lifecycle of the node type.Cloud Computing - Lecture 10:Deployement models in cloud19

TOSCA modelling – Node Type Describe Properties, attributes, capabilities, requirementsof a nodetosca.nodes.Root:derived from: tosca.entity.Rootdescription: The TOSCA Node Type all other TOSCA base Node Types derive fromattributes:tosca id:type: stringcapabilities:feature:type: tosca.capabilities.Noderequirements:- dependency:capability: tosca.capabilities.Nodenode: tosca.nodes.Rootrelationship: tosca.relationships.DependsOnoccurrences: [ 0, UNBOUNDED ]interfaces:Standard:type: tosca.interfaces.node.lifecycle.StandardCloud Computing - Lecture 10:Deployement models in cloud20

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 propertiesCloud Computing - Lecture 10:Deployement models in cloud21

TOSCA modelling - Node template Node template - Exampletosca definitions version: tosca simple yaml 1 3description: Template with a generic dependency between two nodes.topology template:inputs:# omitted here for brevitynode templates:my app:type: my.types.MyApplicationproperties:# omitted here for brevityrequirements:- dependency: some servicesome service:type: some.nodetype.SomeServiceproperties:# omitted here for brevityCloud Computing - Lecture 10:Deployement models in cloud22

TOSCA modelling - Relationship template Relationship template To describe connections, dependencies, deployment ordering Requirements and capabilities are implicit way to describethe relationship Some basic explicit relationship types: DependsOnConnectsToAttachesToRoutesToHostedOnCloud Computing - Lecture 10:Deployement models in cloud23

TOSCA modelling - Relationship templateRelationship types example:Cloud Computing - Lecture 10:Deployement models in cloud24

TOSCA modelling - Relationship templateRelationship types example:Cloud Computing - Lecture 10:Deployement models in cloud25

TOSCA modelling - Relationship templateRelationship types example:Cloud Computing - Lecture 10:Deployement models in cloud26

TOSCA modelling - Relationship templateRelationship Examplenode templates:my block storage:type: BlockStorageproperties:size: 10my web app tier 1:derived from: Computerequirements:- local storage:node: my block storagerelationship: storage attachesto 1my web app tier 2:derived from: Computerequirements:- local storage:node: my block storagerelationship: storage attachesto 2relationship templates:storage attachesto 1:type: MyAttachesToproperties:location: /my data locationstorage attachesto 2:type: MyAttachesToproperties:location: /some other data locationrelationship types:MyAttachesTo:derived from: AttachesTointerfaces:some interface name:some operation:implementation: default script.shCloud Computing - Lecture 10:Deployement models in cloud27

TOSCA modelling - Relationship template Relationships have interfaces as well configure : the basic interface pre configure sourcepre configure targetpost configure sourcepost configure targetadd source, add targetremove source, remove targetCloud Computing - Lecture 10:Deployement models in cloud28

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 cloud29

TOSCA implementationWe will discuss following two Cloudify OperaCloud Computing - Lecture 10:Deployement models in cloud30

TOSCA implementation - Cloudify open source cloud orchestration framework. written in the Python programming language. Model applications and services and automate their entirelife cycle. Supports configuration management tools like ChefPuppet, 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 cloud31

TOSCA implementation - CloudifyCloud Computing - Lecture 10:Deployement models in cloud32

TOSCA implementation - CloudifyCloud Computing - Lecture 10:Deployement models in cloud33

TOSCA implementation - CloudifyCloudify Manager primarily is built with open-sourcecomponents: Nginx: high-performing Web server. For the CloudifyREST service, file server to host Cloudify-specificresources Gunicorn: Web server gateway interface HTTP server Flask: Web framework PostgreSQL: object-relational database that storesthe application’s model, indexing, and logs’ andevents’ storage Logstash: to pull log and event messages fromRabbitMQ and index them in PostGresSQL.Cloud Computing - Lecture 10:Deployement models in cloud34

TOSCA implementation - CloudifyCloudify Manager primarily is built with open-sourcecomponents (contd ): RabbitMQ: Queueing deployment tasks, logs andevents, Queueing metrics Riemann: policy-based decision maker (anexperimental feature) Celery: distributed task queue. Cloudifymanagement worker, the deployment-specificagents and the host agents are based on Celery InfluxDB: time-series database; to store metricssubmitted by the application’s hostsCloud Computing - Lecture 10:Deployement models in cloud35

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 andinnovation program “RADON”. https://github.com/radon-h2020/xopera-operaCloud Computing - Lecture 10:Deployement models in cloud36

Ansible Automation IT automation engine that automates cloudprovisioning, configuration management, applicationdeployment, intra-service orchestration, and manyother IT needs. Founded in 2013 Bought by Red Hat in 2015. Similar technology: Chef, Puppet Heavily use SSH infrastructure to connect and controlother remote servers.Cloud Computing - Lecture 10:Deployement models in cloud37

AnsibleAdvantage: Open-source tool Agentless: No extra agent is required on the remotemachine. Flexible Quite easy as it follow YAML format. User/developer focus only on the task.Cloud Computing - Lecture 10:Deployement models in cloud38

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, etcCloud Computing - Lecture 10:Deployement models in cloud39

Ansible Architecture: Inventories List of nodes along with related info.: AddressUsernamePasswordConnection typeOther configuration for ssh connection Default location of inventory file: /etc/ansible/hosts Inventory can be in YAML or in ini formatCloud Computing - Lecture 10:Deployement models in cloud40

Ansible Architecture: stansible connection localother1.example.com ansible connection sshother2.example.com ansible connection sshCloud Computing - Lecture 10:Deployement models in cloudansible user myuseransible user myotheruser41

Ansible Architecture: Playbooks It’s in YAML format Playbook contains Plays; Plays contain tasks; Tasks call module. Simple command to run a playbook:ansible-playbook playbook.ymlCloud Computing - Lecture 10:Deployement models in cloud42

Ansible Architecture: Playbooks--- hosts: webserversvars:http port: 80max clients: 200remote user: roottasks:- name: ensure apache is at the latestversionyum:name: httpdstate: latestC ontd Example:- name: write the apache config filetemplate:src: /srv/httpd.j2dest: /etc/httpd.confnotify:- restart apache- name: ensure apache is runningservice:name: httpdstate: startedCloud Computing - Lecture 10:Deployement models in cloud43

Puppet An open-source configuration managementtechnology. Manages the infrastructure on physical or virtualmachines. Written in Ruby, C , and Clojure Usually follows client-server or agent-masterarchitecture. Puppet Server : on one or more servers Puppet Agent : on all the machines that we want tomanageCloud Computing - Lecture 10:Deployement models in cloud44

Puppet Blocks Different building blocks: Modules Classes Resources ManifestCloud Computing - Lecture 10:Deployement models in cloud45

Puppet Blocks - Modules A collection of files and directories, suchas Manifests, Class definitions. Each module manages a specific task inthe infrastructure. Contains: classes, defined types, tasks, task plans,functions, resource types and providers,etc. Reusable and shareable.Cloud Computing - Lecture 10:Deployement models in cloud46

Puppet Blocks - ModulesCloud Computing - Lecture 10:Deployement models in cloud47

Puppet Blocks - ModulesExamplesclass 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")}Cloud Computing - Lecture 10:Deployement models in cloud48

Puppet Blocks - Classes Defined as a collection of resources Classes are defined inside Puppet manifestfiles. Created by writing a class definition in amanifest (.pp) file.Cloud Computing - Lecture 10:Deployement models in cloud49

Puppet Blocks - ClassesExample:class1 site.ppclass 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 neededensure ensure,owner 'backup',group 'backup',mode '0644',tag "f3backup- {backup server}",}}Cloud Computing - Lecture 10:Deployement models in cloud50

Puppet Blocks - Resources Resources are the fundamental unit formodeling system configurations. Puppet code in manifest file or any other file iscalled a resource declaration. Expressed in Declarative Modelling Language(DML) Resource Declaration: Resource Type Resource Parameter Attributes valuesCloud Computing - Lecture 10:Deployement models in cloud51

Puppet Blocks - Resources Exampleuser { '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.Cloud Computing - Lecture 10:Deployement models in cloud52

Puppet Blocks - ResourcesResource Type:Some more types exec, file, cron, mount, package, service,user, etcAttributes – Values pairs:For each resource type, Puppet offers a set of Attributes.e.g. For User, attributes can behome, groups, gid, password max age,password min age, shell, etc.Cloud Computing - Lecture 10:Deployement models in cloud53

Puppet Blocks - Manifest a directory containing puppet DSL files. .pp extension (Puppet Program) Puppet manifest consists of thefollowingimportant components Resources Templates (used to construct configuration files on thenode). Nodes (contain all the definition related to a client node) ClassesCloud Computing - Lecture 10:Deployement models in cloud54

Service deployment solutions – A SummaryStandard SpecificationA standard to follow for service deployment and management: TOSCAOrchestratorA tool to understand the standard: Cloudify, OperaAutomation EngineTo implement the necessary service deployment and lifecycle managementtasks: Ansible and PuppetCloud Computing - Lecture 10:Deployement models in cloud55

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 AnalysisCloud Computing - Lecture 10:Deployement models in cloud56

What next ?Cloud Computing - Lecture 10:Deployement models in cloud57

Let’s move to lab session Cloud Computing - Lecture 10:Deployement models in cloud58

References1. https://www.oasis-open.org/2. tions3. Casale, G., Artač, M., van den Heuvel, W. et al. RADON: rationaldecomposition and orchestration for serverless computing. SICSSoftw.-Inensiv. Cyber-Phys. Syst. . http://radon-h2020.eu/5. -standard6. ials/2011/fall/CloudTechnologies/MartyStogsdill Deploying Public Private Hybrid Storagev1-8.pdf7. nts-models8. https://slideplayer.com/slide/12656640/Cloud Computing - Lecture 10:Deployement models in cloud59

References9. https://docs.cloudify.co/4.3.0/about/manager architecture/components/10. -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.htmCloud Computing - Lecture 10:Deployement models in cloud60

Thank youCloud Computing - Lecture 10:Deployement models in cloud61

HP Helion Oracle Cloud NetApp Cloud Computing -Lecture 10: Deployement models in cloud 11. Cloud Deployment solutions OpenStack CloudStack Cloudify Vmware IBM Bluemix Cloud SAP HANA Cloud platform Red Hat C