Skip to content
This repository has been archived by the owner on Jan 9, 2019. It is now read-only.

User Guide

ahonor edited this page Sep 21, 2012 · 17 revisions

WikiUser guideIntroduction

Introduction

Welcome to the YANA user manual. This manual was written to help YANA users quickly become productive with the YANA server.

What is YANA?

YANA is open source server software that helps you create a real time model of your application services and its infrastructure. Your services are defined in terms of "nodes", a generic concept that one might equate to an object in a directed graph.

YANA is not an ITIL CMDB but nothing stops a user from defining CIs in terms of YANA nodes.

Why do I need/care-about a Service Model?

  • What is a Run-Time Service Model? A Service Model gives a topological view of the resources that comprise your software service. Run-time means that the model should support being dynamically built since many applications undergo a lot of change and can be provisioned based on needs for scale or development velocity. The service model must be topological to describe the dependencies and inter-relationships between the service resources.
  • Why do I care? You want to use a Service Model to drive other tools like automation, configuration management or even monitoring. This makes the tools data-driven and helps avoid hard coding environment specific information into automation procedures.
  • What's a resource? A resource in a service model can describe application components like software packages, a host in your infrastructure, or even an external service like a database, web proxy, load balancer, queue manager, etc. A resource can also describe a logical construct like a cluster, pool or even a location.

YANA features

  • Simple HTML-based graphical editor that lets you maintain a resource model describing physical and application resources.
  • Type modeling that lets you declare types of "nodes" along with their attributes and relationship constraints.
  • API that lets users interact with YANA programmatically over the web
  • XML-based import and export. JSON is supported for all export operations.
  • Authentication and Role-based access control based on Spring Security
  • Model persistence based on Hibernate
  • Webhooks that post to a User's URLs for YANA node updates
  • Java-based webapp deployment

Uses

  • Inventory: Create an inventory of your hosts or any other resource
  • Real-time service model describing the resources and their inter relationships

Modeling concepts

You can use YANA to model all kinds of resources. Here are YANA's basic model concepts.

  • Node: Any instance of a resource you wish to model is declared as a node. A node is essentially an object in a directed graph. Links in the graph are described via parent/child relationships.
  • Parent and child Nodes: Nodes can be related to other nodes via parent and child relationships. The kinds of permitted node links are controlled via NodeTypeRelationships.
  • NodeType: Node classes are declared by a type specification. The properties of a NodeType are declared in terms of Attributes.
  • Attributes: Attributes define a named property who's value is constrained by a Filter.
  • Filters: A Filter constrains the allowed value for a given Attribute. These filters are described in terms of a Regex pattern.
  • NodeType Relationships: The kinds of parent/child relationships are controlled through a NodeTypeRelationship constraint. NodeTypeRelationships declare a named relationship between two types: the parent type and the child type. Cardinality adds further control the number of parents/children.

Feedback

If you find problems with YANA, or if you have questions, remarks, or ideas about it, please send an email to the YANA mailing list, yana-discuss@groups.google.com.

Getting Started

Installing YANA

YANA is distributed as a WAR file and has been tested on Apache Tomcat.

See the Installation page for more detail.

YANA Basics