Model Driven Orchestration with TOSCA and ARIA Dawn of Apis
Total Page:16
File Type:pdf, Size:1020Kb
Model Driven Orchestration with TOSCA and ARIA Dawn of APIs File Edit View Insert Slide Format Arrange Tools Table Help All changes saved in Drive File Edit View Insert Slide Format Arrange Tools Table Help All changes saved in Drive Arial DIGITAL BABYLON A Background... Layout Theme... Transition... The promise of TOSCA Topology and Orchestration Specification for Cloud Applications TOSCA Descriptive Language Normative Types “tosca.nodes.compute” Abstraction openstack.nodes.compute: Derived_from: tosca.nodes.compute Extensibility “aria.kubernetes.Microservice” Composition Imports: app-backend-blueprint.yaml TOSCA Descriptive Language ● Strict ○ Object-oriented, strictly typed, polymorphic ○ Rich set of base types (Simple Profile + Simple Profile for NFV) ○ Normative lifecycle (install, uninstall, start, stop) ● Agnostic ○ Not specific to any cloud provider (multi-VIM is hard) ○ Not specific to any machine technology (tosca.nodes.Compute = VM, container, cage, or…?) ○ Base types designed to be lowest-common denominators (politics) ○ Base types are optional ○ Support for generic workflows in TOSCA 1.1 Orchestration of APIs App1 App2 Template YAML Artifact (Scripts,Images) TOSCAPackage (*.CSAR) Implementation of TOSCA Open Source Open Governance Apache 2.0 License Apache Software Foundation ARIA’s Goal BY 1. Simplify path to support TOSCA 10X ARIA’s Goal 1. Simplify BY path to support TOSCA 2. Simplify 10X creation of TOSCA applications ARIA’s Goal 1. Simplify path to support TOSCA 2. Simplify BY creation of TOSCA applications 3. Simplify 10X exploration of new models Project Principles ● Vendor Neutral ● Technology Independent ● Interoperability across orchestration vendors Spec Uses ARIA for TOSCA orchestration TOSCA Spec Definition Definition TOSCA Spec Implementation Uses ARIA for TOSCA orchestration Use Cases & Models Uses ARIA for TOSCA orchestration Others So, What is ARIA? What is ARIA? 1. Python LIBRARY for orchestration products to support 2. TOSCA SDK for TOSCA Profiles creating TOSCA applications 3. CLI TOOL to orchestrate TOSCA templates TOSCA App ARIA Command Line Interface Development CSAR Packager Guide TOSCA Reference Example Templates Graph TOSCA Simple Models Store Imperative Declarative Profile 1.0 Workflows Workflows ARIA TOSCA App Artifacts Store Developer SDK Built-in TOSCA for NFV Declarative Profile 1.0(csd03) Storage Driver (sqlalchemy) Workflows ARIA Parser ARIA Store ARIA Workflow Engine Execution IaaS SDN NFV Plugins Plugins Plugins Plugins Architecture ARIA Plugins Declarative Model-Driven Orchestration Create /implementation/create TOSCA Types /implementation/configure Tosca. Configure Nodes. Start /implementation/start ● Normative node types (Compute, Compute Stop /implementation/stop Network, etc’) Delete /implementation/delete ● Relationship types. Create /implementation/create Configure /implementation/configure ● Lifecycle operations and Tosca. Nodes. Start /implementation/start implementations WebApp Stop /implementation/stop (create, configure, start and others) Delete /implementation/delete ● ARIA supports custom types. Create /implementation/create Tosca. Configure /implementation/configure Nodes. Start /implementation/start Database Stop /implementation/stop Delete /implementation/delete tosca_types.yaml C C S S Tosca. Tosca. TOSCA Nodes. Nodes. Application WebApplication Con Database C C Topology Tosca.Nodes.Compute S Tosca.Nodes.Compute S tosca_app_template.yaml ● TOSCA Template describes the topology of the application. ● Topology templates use TOSCA node types describing the nodes and their relationships using normative and custom types. ● Templates can also define implementations for lifecycle operations. Declarative C C S S Tosca. Tosca. Nodes. Con Nodes. Model-Driven WebApplicatio Database n Orchestration C C Tosca.Nodes.Compute S Tosca.Nodes.Compute S tosca_app_template.yaml ● ARIA parses application template Compute(WebApp) ● Normalizes the topology C C Compute(DB) Create Create ● Orchestration Graph is created ● A workflow mechanism loads the S Compute(WebApp) Start S Compute(DB) Start orchestration graph and executes C WebApp Create C WebApp Create operations of the graph ● Deploy and Undeploy are common, S WebApp Start S WebApp Start other day 2 operations such as Heal Con WebApp ConnectTo Database are supported as well. ARIA Workflow Engine Plugins allow the introduction of new node types without modifying parser code Deployment Graph TOSCA Application ARIA TOSCA Package Parser (*.CSAR) ARIA Plugins Graph Based Workflows Embedded Python workflows allow Embedded dynamic interaction with the graph Imperative Workflows tosca_definitions_version: tosca_simple_yaml_1_0 node_types: web_server: Hello World Example derived_from: tosca.nodes.Root capabilities: host: type: tosca.capabilities.Container web_app: Configure scripts/configure.sh Tosca. derived_from: tosca.nodes.WebApplication Nodes. Start scripts/start.sh properties: web_app port: Stop scripts/stop.sh type: integer topology_template: node_templates: web_server: type: web_server web_app: type: web_app Tosca. properties: Nodes. port: 9090 web_server requirements: - host: web_server interfaces: Standard: configure: scripts/configure.sh start: scripts/start.sh # pip install git+https://github.com/apache/incubator-ariatosca.git stop: scripts/stop.sh # aria service-templates store helloworld.yaml hello # aria services create hello -t hello helloworld.yaml # aria executions start install -s hello https://github.com/apache/incubator-ariatosca/tree/m aster/examples/hello-world From topology template to a Service Service Service template web_server web_server Node Templates Nodes web_app aria web_app service-templates aria services create store host Web_server to web_app Requirement Relationships Templates host Capability Configure Operations Templates Create Start Configure Operation Create Templates Start Install Workflow Breakdown Install node sub-workflow Install node sub-workflow Create Create Tosca. Tosca. Pre-configure Pre-configure Add Add Nodes. Configure Nodes. Configure scripts/configure.sh source target source target web_server web_app Start Start scripts/start.sh Configure Lifecycle DNS Service Modelling Bind9 DNS Type: application.nodes.Bind9 Service Bind9_host with Type: openstack.nodes.Server OpenStack Floating Security GW FW Keypair Port IP Group (YANG) Service Function Chaining with TOSCA vDNS Blueprint vFirewall Blueprint vRouter Blueprint Network Service Join the community www.ARIATOSCA.org https://github.com/apache/incubator-ariatosca [email protected] tosca_definitions_version: tosca_simple_yaml_1_0 node_types: web_server: Hello World Example derived_from: tosca.nodes.Root capabilities: host: type: tosca.capabilities.Container web_app: Configure scripts/configure.sh Tosca. derived_from: tosca.nodes.WebApplication Nodes. Start scripts/start.sh properties: web_app port: Stop scripts/stop.sh type: integer topology_template: node_templates: web_server: type: web_server web_app: type: web_app Tosca. properties: Nodes. port: 9090 web_server requirements: - host: web_server interfaces: Standard: configure: scripts/configure.sh # pip install git+https://github.com/apache/incubator-ariatosca.git start: scripts/start.sh # aria service-templates store <helloworld.yaml> stop: scripts/stop.sh <service_name> # aria services create <service_name> -t helloworld.yaml <template_hello> https://github.com/apache/incubator-ariatosca/tree/m # aria executions start install -s <service_name> aster/examples/hello-world .