
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