<!DOCTYPE html>
<html lang="en">

<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Apache Amaterasu (incubating)</title>

    <!-- Bootstrap Core CSS -->
    <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">

    <!-- Custom Fonts -->
    <link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
    <link href='http://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="font-awesome/css/font-awesome.min.css" type="text/css">

    <!-- Plugin CSS -->
    <link rel="stylesheet" href="css/animate.min.css" type="text/css">

    <!-- Custom CSS -->
    <link rel="stylesheet" href="css/main.css" type="text/css">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
    <!-- Global Site Tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-84742341-2"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments)};
      gtag('js', new Date());

      gtag('config', 'UA-84742341-2');
    </script>

</head>


<body id="page-top">
  <nav id="mainNav" class="navbar navbar-default navbar-fixed-top">
    <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 page-scroll" href="http://amaterasu.incubator.apache.org/#page-top">Apache Amaterasu</a>
            <!-- <img src="img/amaterasu_logo.jpg" /> -->
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav navbar-right">
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#about">About</a>
                </li>
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#features">Features</a>
                </li>
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/downloads.html">Downloads</a>
                </li>
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#samples">Samples</a>
                </li>
                  <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#docs">Docs (coming soon)</a>
                </li>
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#contact">Contact</a>
                </li>
            </ul>
        </div>
        <!-- /.navbar-collapse -->
    </div>
    <!-- /.container-fluid -->
</nav>

  <header>
    <div class="header-content">
        <div class="header-content-inner">
        <div>
        	 <!-- <img src="img/amaterasu_logo_big.jpg" class="logo-image"/> -->
        	 <img src="img/amaterasu_logo_small.png"/>
        	 <!-- <img src="img/amaterasu_logo.jpg" class="logo-image"/> -->
        </div> 
        <hr>	       
            <p>Apache Amaterasu (Incubating) is an open source, configuration managment and deployment framework for data pipelines</p>
            <a href="#about" class="btn btn-primary btn-xl page-scroll">Find Out More</a>
        </div>
    </div>
</header>

  <section class="bg-primary" id="about">
    <div class="container">
        <div class="row">
            <div class="col-lg-8 col-lg-offset-2 text-center">
                <h2 class="section-heading">A new approach</h2>
                <hr class="light">
                <p class="text-faded">Amaterasu is a simple and powerful framework to build, configure and dispense data processing pipelines. It aims to help data engineers and data scientists to compose, configure, test, package, deploy and execute data pipelines written using multiple tools, languages and frameworks</p>
                <a href="http://shinto.io/amaterasu/bigdata/devops/2016/09/22/introducing-materasu-continuously-deployed-big-data-pipelines.html" class="btn btn-default btn-xl">Get Started!</a>
            </div>
        </div>
    </div>
</section>

  <section id="features">
    <div class="container">
        <div class="row">
            <div class="col-lg-12 text-center">
                <h2 class="section-heading">Features:</h2>
                <hr class="primary">
            </div>
        </div>
    </div>
    <div class="container">
        <div class="row">
            <div class="col-lg-3 col-md-6 text-center">
                <div class="service-box">
                    <i class="fa fa-4x fa-pencil-square-o wow bounceIn text-primary"></i>
                    <h3>Simple to code</h3>
                    <p class="text-muted">Code your data apps using the languages and frameworks of your choice.</p>
                </div>
            </div>

            <div class="col-lg-3 col-md-6 text-center">
                <div class="service-box">
                    <i class="fa fa-4x fa-code wow bounceIn text-primary" data-wow-delay=".1s"></i>
                    <h3>Configuration managment</h3>
                    <p class="text-muted">Configure your apps and frameworks using a powerful YAML DSL for multiple environments.</p>
                </div>
            </div>
            <div class="col-lg-3 col-md-6 text-center">
                <div class="service-box">
                    <i class="fa fa-4x fa-paper-plane wow bounceIn text-primary" data-wow-delay=".2s"></i>
                    <h3>Ship your code</h3>
                    <p class="text-muted">Amaterasu uses Git for applications and configurations repositories</p>
                </div>
            </div>
            <div class="col-lg-3 col-md-6 text-center">
                <div class="service-box">
                    <i class="fa fa-4x fa-terminal wow bounceIn text-primary" data-wow-delay=".3s"></i>
                    <h3>Easy to deploy</h3>
                    <p class="text-muted">Deploy and run in a single line!</p>
                </div>
            </div>
            
        </div>
    </div>
</section>

  <section class="no-padding-bottom" id="samples">
    <div class="container">
        <div class="row">
            <div class="col-lg-12 text-center">
                <h2 class="section-heading">Samples:</h2>
            </div>
        </div>
    </div>
    <div class="container-fluid">
        <div class="row no-gutter">
            <div class="col-lg-4 col-sm-6 thin-border">
                <a href="https://github.com/shintoio/amaterasu-demo-machine" class="portfolio-box">
                    <img src="img/samples/vm-get.png" class="img-responsive" alt="">
                    <div class="portfolio-box-caption">
                        <div class="portfolio-box-caption-content">
                            <!-- <div class="project-category text-faded">
                                Category
                            </div> -->
                            <div class="project-name">
                                Get a demo cluster
                            </div>
                        </div>
                    </div>
                </a>
            </div>
            <div class="col-lg-4 col-sm-6 thin-border">
                <a href="https://github.com/shintoio/amaterasu-job-sample" class="portfolio-box">
                    <img src="img/samples/spark-scala-logos.png" class="img-responsive" alt="">
                    <div class="portfolio-box-caption">
                        <div class="portfolio-box-caption-content">
                            <div class="project-name">
                                Spark Scala Sample
                            </div>
                        </div>
                    </div>
                </a>
            </div>
            <div class="col-lg-4 col-sm-6 thin-border">
                <a href="https://github.com/shintoio/amaterasu-job-py-sample" class="portfolio-box">
                    <img src="img/samples/spark-python-logos.png" class="img-responsive" alt="">
                    <div class="portfolio-box-caption">
                        <div class="portfolio-box-caption-content">
                            <div class="project-name">
                                PySpark Sample
                            </div>
                        </div>
                    </div>
                </a>
            </div>
        </div>
    </div>
</section>

  <!--    <aside class="bg-dark">
      <div class="container text-center">
          <div class="call-to-action">
              <h2>Download version 0.2.0-incubating preview build</h2>
              <a href="https://s3-ap-southeast-2.amazonaws.com/amaterasu/apache-amaterasu-0.2.0-incubating.tar" class="btn btn-default btn-xl wow tada">Download Now!</a>
          </div>
      </div>
  </aside>
 -->
  <section id="contact">
    <div class="container">
        <div class="row">
            <div class="col-lg-8 col-lg-offset-2 text-center">
                <h2 class="section-heading">Get In Touch!</h2>
                <hr class="primary">
                <p>Join the Apache Amaterasu community</p>
            </div>
        <div class="col-lg-2 col-lg-offset-media text-center">
            <a href="https://twitter.com/ApacheAmaterasu">
                <i class="fa fa-twitter fa-3x wow bounceIn" data-wow-delay=".1s"></i>
                <p>ApacheAmaterasu</p>
            </a>
        </div>
        <div class="col-lg-4 col-lg-offset-1 text-center">
            <a href="mailto:dev-subscribe@amaterasu.incubator.apache.org">
            <i class="fa fa-envelope-o fa-3x wow bounceIn" data-wow-delay=".1s"></i>
                <p>dev-subscribe@amaterasu.incubator.apache.org</p>
            </a>
        </div>
        <div class="col-lg-2 col-lg-offset-media text-center">
            <a href="https://github.com/apache/incubator-amaterasu">
            <i class="fa fa-github fa-3x wow bounceIn" data-wow-delay=".1s"></i>
                <p>apache/incubator-amaterasu</p>
            </a>
        </div>
        <div class="col-lg-2 col-lg-offset-1 text-center">
            <a href="https://apacheamaterasu.slack.com/">
            <i class="fa fa-slack fa-3x wow bounceIn" data-wow-delay=".1s"></i>
                <p>apacheamaterasu.slack.com</p>
            </a>
        </div>
    </div>
</section>

  <section id="disclaimer">
  <hr>
  <div class="container">
    <img src="img/incubator_feather_egg_logo.png" height="60">
    <br>
    <br>
    <p style="font-size: 12px; line-height: 1.5em;">
    Apache Amaterasu is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the 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>
    <p style="font-size: 12px; line-height: 1.5em; margin-top: 2em; margin-bottom: 2em;">
            Copyright © 2017 <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a>
    <br>
    Apache, Apache Amaterasu (incubating), the Apache feather and the Gobblin logo are trademarks of The Apache Software Foundation
    </p>
  </div>
</section>

  <!-- jQuery -->
<script src="js/jquery.js"></script>

<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>

<!-- Plugin JavaScript -->
<script src="js/jquery.easing.min.js"></script>
<script src="js/jquery.fittext.js"></script>
<script src="js/wow.min.js"></script>

<!-- Custom Theme JavaScript -->
<script src="js/creative.js"></script>

</body>

</html>
