<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">

  <title>About ARIA TOSCA • Apache ARIA TOSCA</title>

  
  
  

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->

  <!-- CSS -->
  <link rel="stylesheet" href="/css/owl.carousel.css">
  <link rel="stylesheet" href="/css/bootstrap.min.css">
  <link rel="stylesheet" href="/css/font-awesome.min.css">
  <link rel="stylesheet" href="/css/style.css">
  <link rel="stylesheet" href="/css/ionicons.min.css">
  <link rel="stylesheet" href="/css/animate.css">
  <link rel="stylesheet" href="/css/responsive.css">


  <!-- Js -->
  <script src="/js/vendor/modernizr-2.6.2.min.js"></script>
  <script src="/js/vendor/jquery-1.10.2.min.js"></script>
  <script>window.jQuery || document.write('<script src="/js/vendor/jquery-1.10.2.min.js"><\/script>')</script>
  <script src="/js/bootstrap.min.js"></script>
  <script src="/js/owl.carousel.min.js"></script>
  <script src="/js/plugins.js"></script>

  <script src="/js/min/waypoints.min.js"></script>
  <script src="/js/jquery.counterup.js"></script>






  <script src="/js/main.js"></script>
  <script src="/js/plugins/jquery.mixitup.min.js"></script>

</head>

  <body id="js-body">
    

    <!--[if lt IE 9]><div class="upgrade notice-warning"><strong>Your browser is quite old!</strong> Why not <a href="http://whatbrowser.org/">upgrade to a newer one</a> to better enjoy this site?</div><![endif]-->

    <!-- Header Start -->
<header>
<div class="container">
  <div class="row">
    <div class="col-md-12">
      <!-- header Nav Start -->
      <nav class="navbar navbar-default">
        <div class="container-fluid">
          <!-- Brand and toggle get grouped for better mobile display -->
          <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/">
              <img src="/images/aria-logo.png" alt="Apache ARIA TOSCA">
            </a>
          </div>
            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">

              <nav role="navigation" class="menu top-menu">
                  <ul class="nav navbar-nav navbar-right">
	<li class="home"><a href="/">Apache ARIA TOSCA</a></li>
	
    
    <li><a href="/about/" >About</a></li>
  
    
    <li><a href="/community/" >Community</a></li>
  
    
    <li><a href="/getting-started/" >Getting Started</a></li>
  
    
    <li><a href="/getting-started/" >Docs</a></li>
  
    
    <li><a href="/roadmap/" >Roadmap</a></li>
  
</ul>

              </nav>
            </div><!-- /.navbar-collapse -->
          </div><!-- /.container-fluid -->
        </nav>
      </div>
    </div>
  </div>
</header><!-- header close -->



    <div id="page-wrapper">
      <div id="main" role="main">
	<article class="wrap" itemscope itemtype="http://schema.org/Article">
		
		

		<section id="global-header">
			<div class="container">
				<div class="row">
					<div class="col-md-12">
						<div class="block">
							<h1>About ARIA TOSCA</h1>
							<p></p>
						</div>
					</div>
				</div>
			</div>
		</section>



		<div class="inner-wrap">
			<div id="content" class="page-content" itemprop="articleBody">
				<section id="intro">
		      <div class="container">
		        <div class="row">
								<p>ARIA is a vendor neutral and technology independent implementation of the OASIS TOSCA specification. ARIA offers a Command Line Interface(CLI) to develop and execute TOSCA templates, and an easily consumable Software Development Kit(SDK) for building TOSCA enabled software. ARIA is an open source, and open governance python project, Apache Software Foundation Incubation, offering an implementation library of the OASIS TOSCA specification.</p>

<p>ARIA was formed to advance adoption of the TOSCA standard and accelerate the industry’s journey towards application orchestration in cloud environments.</p>

<p>ARIA, and TOSCA alike, were born out of the market need for a completely vendor / cloud / technology neutral orchestration that allows for portability and interoperability. ARIA is expected to accelerate the development around the TOSCA specification, advance its adoption, demonstrate simplified portability of TOSCA orchestration, and increase agility through more rapid community contributed iterations.</p>

<p>ARIA it is a framework for implementing orchestration software based on “Topology and Orchestration Specification for Cloud Applications(TOSCA)” a leading cloud-agnostic templating model formulated by the OASIS Foundation.</p>

<p>ARIA offers a library with a programmable interface that allows embedding ARIA into collaborative projects, to enable organizations looking to incorporate TOSCA orchestration capabilities into their solutions.</p>

<p><img src="/images/aria-architecture.png" alt="ARIA Architecture" class="center-image" /></p>

<p>Through ARIA, application vendors will be able to test and run their applications easily, from blueprint to deployment, without the former hassle of developing the orchestration engine themselves, simplifying TOSCA certification and validation exponentially.</p>

<p><img src="/images/aria-tosca-workflow.png" alt="ARIA Architecture" class="center-image" /></p>

<h2 id="aria-tosca-parser">ARIA TOSCA Parser</h2>
<p>ARIA includes a TOSCA DSL parser, the parser’s role is to interpret the TOSCA template, create an in-memory graph of the application and validate template correctness. TOSCA provides a typing system with normative node types to describe the possible building blocks for constructing a service template, as well as relationship types to describe possible kinds of relations. Both node and relationship types may define life-cycle operations to implement the behavior an orchestration engine can invoke when instantiating a service template. The template files are written in declarative YAML language using TOSCA normative types. Technology specific types can be introduced via ARIA Plugins without any modifications of the parser code. ARIA natively supports TOSCA Simple Profile 1.0, and TOSCA Simple Profile for Network Function Virtualization.</p>

<h4 id="tosca-templates-include">TOSCA Templates include:</h4>
<ul>
  <li>YAML Topology Template</li>
  <li>Plugins</li>
  <li>Workflows</li>
  <li>Resources such as scripts and others</li>
</ul>

<h2 id="aria-workflows">ARIA Workflows</h2>
<p>ARIA Workflows are automated process algorithms that allow dynamic interaction with the graph described by the application topology template. ARIA Workflows describe the flow of the automation by determining when which tasks will be executed. A task may be an operation, optionally implemented by a plugin, or other actions, including arbitrary code or scripts. ARIA Workflows can be embedded within the TOSCA Template to be able to access the graph dynamically. Workflows are implemented as Python code using dedicated APIs and a framework to access the graph and the runtime context of the application, the context provide access to the object graph described in the TOSCA template.</p>

<p>ARIA comes with a number of built-in workflows - these are the workflows for install, uninstall, scale and heal. Built-in workflows are not special in any way - ARIA supports creating custom workflows that use the same APIs build-in workflows are using.</p>

<h2 id="aria-plugins">ARIA Plugins</h2>
<p>ARIA Plugins allow extending the TOSCA normative types dynamically by adding new technology specific node types and relationship types, without changing the code of the ARIA TOSCA Parser. The plugins introduce new node types and the implementation that realizes the logic behind every new node type. The plugin based types are isolated, allowing to use different versions of the same plugin in a single blueprint - for example support OpenStack Kilo and OpenStack Juno in the same template. It also allows combining types of different technologies - for example OpenStack nodes with VMware, Amazon, or other types such as Router, Firewall, Kubernetes and others. The work of interacting with IaaS APIs, running scripts, Configuration Management tools, Monitoring tools and any other tools used when managing applications is done by the ARIA Plugins. Plugins can be included as part of the application template package and loaded dynamically. ARIA includes set of plugins that can be used as is or as reference for implementing for new plugins.</p>

		        </div>
		      </div>
		    </section>
				<hr />
				<footer class="page-footer">
					
					
					
				</footer><!-- /.footer -->
				<aside>
					
				</aside>
			</div><!-- /.content -->
		</div><!-- /.inner-wrap -->
		
	</article><!-- ./wrap -->
</div><!-- /#main -->

      

<!-- Wrapper Start -->
<section id="intro" style="padding-top:30px; padding-bottom:30px">
	<div class="container">
		<div class="row">
			<div class="col-md-10 col-sm-12">
				<div class="block">
					<p>
						Apache ARIA TOSCA is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
					</p>
				</div>
			</div><!-- .col-md-7 close -->
			<div class="col-md-2 col-sm-12">
				<div class="block" valign="middle" style="vertical-align: middle;">
					<img src="/images/incubator_power_ring.png" alt="ARIA Podling"  >
				</div>
			</div><!-- .col-md-5 close -->
		</div>
	</div>
</section>

<footer>
	<div class="container">
		<div class="row">
			<div class="col-md-12">
				<div class="footer-manu">

					<ul class="menu-item">
					
			      
						<li><a href="/about/" >About</a></li>
					
			      
						<li><a href="/community/" >Community</a></li>
					
			      
						<li><a href="/getting-started/" >Getting Started</a></li>
					
			      
						<li><a href="/roadmap/" >Roadmap</a></li>
					
					</ul>
				</div>

				<p> Copyright © 2017 The Apache Software Foundation. Licensed under the Apache License, Version 2.0. <br />
				    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache Software Foundation.</p>
			</div>
		</div>
	</div>
</footer>

    </div>

    <script src="/js/vendor/jquery-1.10.2.min.js"></script>
    <script src="/js/plugins/jquery.mixitup.min.js"></script>
    <script src="/js/owl.carousel.min.js"></script>
    <script src="/js/jquery.counterup.js"></script>

    <script src="/js/main.js"></script>

  </body>

</html>
