cern and science clouds in europe with tosca openstack
play

CERN and Science Clouds in Europe with TOSCA, OpenStack Heat and the - PowerPoint PPT Presentation

CERN and Science Clouds in Europe with TOSCA, OpenStack Heat and the Heat Translator Matt Rutkowski Mathieu Velten Sahdev Zala Ricardo Rocha Brad Topol mrutkows@us.ibm.com mathieu.velten@cern.ch spzala@us.ibm.com Ricardo.Rocha@cern.ch


  1. CERN and Science Clouds in Europe with TOSCA, OpenStack Heat and the Heat Translator Matt Rutkowski Mathieu Velten Sahdev Zala Ricardo Rocha Brad Topol mrutkows@us.ibm.com mathieu.velten@cern.ch spzala@us.ibm.com Ricardo.Rocha@cern.ch btopol@us.ibm.com @mrutkowski @bradtopol @sp_zala

  2. Introduction • Indigo DataCloud Project • Goal is to provide a sustainable European infrastructure for science, spanning multiple computer centers and existing public clouds. • Challenges • Need to effectively exploit heterogeneous cloud infrastructures (OpenStack, OpenNebula, proprietary clouds) as a single cloud • Need a standard orchestration model that works across multiple cloud infrastructures • Project Approach • Leverage TOSCA as a standard based approach for modeling cloud stacks and applications Support for TOSCA is growing in several cloud communities • • Leverage OpenStack components as a means of deploying TOSCA cloud stacks • OpenStack Heat Project provides robust tools to convert alternative orchestration languages to OpenStack Heat’s HOT templates Heat-Translator: Provides a framework for translation orchestration models to Hot • TOSCA-Parser: Production quality tool for parsing TOSCA templates • • In this presentation we will cover • TOSCA-Parser and Heat-Translator • Project Indigo and CERN’s initiative • Demo concrete examples of using TOSCA to model a complex infrastructure covering multiplesites • Latest on TOSCA specification

  3. Mitaka: TOSCA-Parser Node Types Relationships • What is the TOSCA-Parser? A parser for TOSCA Simple and Network Functions Virtualization (NFV) YAML based • specifications. Policies Groups Capabilities Produces in-memory graph of TOSCA nodes and relationship among them • Subproject of OpenStack Heat • Custom Types Interfaces • Two point releases – 0.4.0 and 0.3.0 Validation Tests • 0.4.0 • Release date: Feb 04, 2016 • Introduced support for TOSCA Simple Profile for NFV v1.0 Node • Support for TOSCA Groups and TOSCA Policies App • Support for TOSCA namespace, nested properties, bug fixes etc. • 0.3.0 Mongo Node. DB js Release date: Dec 02, 2015 • Full validation of TOSCA templates • HostedOn HostedOn Support for nested imports in service template and type definition • Shell entry point, bug fixes etc. • App Mongo • New features available on master Server DBMS Support for LoadBalancer node type • Mongo Support for range data type etc. • Server HostedOn • PyPi releases are available at https://pypi.python.org/pypi/tosca-parser

  4. Mitaka: Heat-Translator TOSCA • What is the Heat-Translator? An OpenStack project to map and translate non-Heat (e.g. TOSCA) • templates to Heat Orchestration Template (HOT) Subproject of OpenStack Heat • • Two point releases – 0.4.0 and 0.3.0 • 0.4.0 Release date: March 02, 2016 • Support for TOSCA NFV templates translation • Introduced support for Policies translation • Completed OpenStack Client plug-in work with new test suites • Handle Nova server specific key_name property, bug fixes etc. • • 0.3.0 Heat Orchestration Template (HOT) Release date: Dec 17, 2015 • Querying Nova flavors to find match to TOSCA constraints • New CLI option --validate-only to only validate template without • translation New CLI option --output-file to save translated output to file etc. • • New features available on master New CLI option --deploy to automatically deploy translated template • Support for Ansible and Puppet scripts in translation etc. • PyPi releases are available at, https://pypi.python.org/pypi/heat-translator •

  5. TOSCA OpenStack Integration is Maturing Rapidly Tacker Translate Deploy Heat-Translator TOSCA-Parser TOSCA Plugin TOSCA Integration OSC Plugin apps.openstack.org

  6. CERN and the Large Hadron Collider • 21 member states Many other involved in other ways • • Large Hadron Collider (LHC) 27km long • 100m underground • • Particle collisions at specialized detectors ~600 million times / sec • Generating ~30PB of data / year • • CERN Cloud in numbers ~6000 nodes • ~150k cores • 2000 users • 16000 VMs running •

  7. Indigo DataCloud • Towards a sustainable European SW infrastructure for science • Funded under the European Union Horizon 2020 program • Multiple partners, heterogeneous infrastructure (OpenStack, OpenNebula) INFN, CERN, ATOS, UPV, CSIC, DESY, UPV, LIP, T-Systems, CNRS, Reply, … • • Main strengths Support for multi-disciplinary scientific communities • Exploits available, general solutions • Low learning curve, rely on popular software tools • Hybrid, distributed environment • • Credits German Molto (UPV), Miguel Caballer (UPV), Marica Antonacci (INFN), Alvaro Lopez Garcia • (CSIC), Giacinto Donvito (INFN) And many others... • https://www.indigo-datacloud.eu

  8. Why TOSCA? • First step was to evaluate available options • HEAT, CloudFormation • Both tied to specific implementations • TOSCA appeared as a viable common denominator • Topology definition • End user applications • Existing codebase (TOSCA parser, HEAT translator) • Reusable in other contexts too • Growing support in different communities

  9. Current Use Cases • Deploy simple VM with a given image • Elastic cluster for batch processing (infrastructure) • Supported systems: torque, slurm, condor • Deploy a Mesos cluster (infrastructure) • Galaxy portal (end user) • Data intensive application for biomedical research • Indigo specific jobs (infrastructure / end user) • Package and deploy applications in docker containers, on Mesos/Marathon/Chronos

  10. Basic example: Indigo Compute Node simple_node: tosca_definitions_version: tosca_simple_yaml_1_0 type: tosca.nodes.indigo.Compute properties: imports: public_ip: yes - indigo_custom_types: custom_types.yaml capabilities: scalable: description: > properties: TOSCA test for launching compute node with a specified image and getting count: 1 as an output the IP and SSH credentials to access host: topology_template: properties: node_templates: num_cpus: 1 mem_size: 1 GB os: outputs: properties: node_ip: type: linux value: { get_attribute: [ simple_node, public_address, 0 ] } distribution: ubuntu version: 12.04

  11. Basic example: Derived Types tosca.nodes.indigo.Compute: derived_from: tosca.nodes.indigo.MonitoredCompute tosca.nodes.indigo.MonitoredCompute: interfaces: derived_from: tosca.nodes.Compute Standard: properties: create: zabbix_server: implementation: zabbix_agent_install.yml type: string configure: required: no implementation: zabbix_agent_configure.yml default: 90.147.170.165 inputs: zabbix_server_port: zabbix_server: { get_property: [ SELF, zabbix_server ] } type: PortDef zabbix_server_port: { get_property: [ SELF, zabbix_server_port ] } required: no zabbix_server_metadata: { get_property: [ SELF, zabbix_server_metadata ] } default: 32314 start: zabbix_server_metadata: implementation: zabbix_agent_start.yml type: string required: no default: Linux 668c875e-9a39-4dc0-a710-17c41376c1e0

  12. simple_node: Basic example: HOT type: OS::Nova::Server properties: flavor: m1.small image: ubuntu-12.04-software-config-os-init public_ip: true user_data_format: SOFTWARE_CONFIG simple_node_create_config: heat_template_version: 2013-05-23 ... description: > simple_node_create_deploy: TOSCA test for launching compute node with a specified ... image and getting as an output the IP and simple_node_configure_config: SSH credentials to access type: OS::Heat::SoftwareConfig parameters: {} properties: resources: config: get_file: zabbix_agent_configure.yml outputs: group: ansible node_ip: simple_node_configure_deploy: value: type: OS::Heat::SoftwareDeployment get_attr: properties: - simple_node config: - networks get_resource: simple_node_configure_config - private input_values: - 0 zabbix_server: 90.147.170.165 zabbix_server_metadata: Linux 668c875e-9a39-4d... zabbix_server_port: 32314 server: get_resource: simple_node

  13. Basic example: Ansible Integration - hosts: localhost connection: local tasks: interfaces: ... Standard: - name: Apt install Zabbix agent create: apt: name=zabbix-agent implementation: zabbix_agent_install.yml when: ansible_os_family == "Debian" configure: Implementation: zabbix_agent_configure.yml inputs: zabbix_server: { get_property: [ SELF, zabbix_server ] } zabbix_server_port: { get_property: [ SELF, zabbix_server_port ] } zabbix_server_metadata: { get_property: [ SELF, zabbix_server_metadata ] } start: implementation: zabbix_agent_start.yml tasks: - lineinfile: | dest=/etc/zabbix/zabbix_agentd.conf regexp="{{ item.var }}=" line="{{ item.var }}={{ item.value }}" with_items: - { var: "ServerActive", value: "{{zabbix_server}}:{{zabbix_server_port}}"}

  14. Basic example: Ansible Integration (Galaxy Roles) - hosts: localhost connection: local roles: - role: indigo-dc.zabbix-agent zabbix_agent_server: "{{ zabbix_server }}" zabbix_agent_server_port: "{{ zabbix_server_port }}" zabbix_agent_metadata: "{{ zabbix_server_metadata }}" interfaces: Standard: configure: implementation: zabbix_agent_configure.yml inputs: zabbix_server: { get_property: [ SELF, zabbix_server ] } zabbix_server_port: { get_property: [ SELF, zabbix_server_port ] } zabbix_server_metadata: { get_property: [ SELF, zabbix_server_metadata ] }

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend