YAML (YAML Ain't Markup Language)

YAML (YAML Ain't Markup Language) is a data-oriented language structure used as the input format for diverse software applications. YAML is not intended to be a markup language used for document markup.

An application user or administrator specifies data in a YAML file, which the application can read. For example, YAML is used to define users, or install software packages on servers. Key-value pairs are defined in YAML and separated with a colon. Keys can be anything, such as a variable, and the value can be one or multiple values assigned to that key. These key-value pairs are specified in lists, where one item in the list can be followed by a complete configuration that should be created for that item. Items range from parts of configuration that need to be defined on a computer system to entries that should be imported into a database -- whatever the application dictates.

YAML is relatively easy to write. Within simple YAML files, there are no data formatting items, such as braces and square brackets; most of the relations between items are defined using indentation.

The syntax of a YAML file is rather strict, and indentation enables it to work. Indentation in YAML syntax happens by using spaces; each item that is a child of the parent item should be indented with two spaces. Dashes can indicate items in a list. Blocks do not span multiple lines in the YAML format. A YAML user does have options for how to format the data presented by a YAML file, such as in mapping, sequences and scalars schemes.

YAML code

Some important applications that use YAML are the configuration management tool Ansible, Kubernetes for container orchestration, and OpenStack Heat, the orchestration engine to launch cloud applications on OpenStack infrastructure as a service. Python is one of the programming languages that relies on the YAML syntax, but most programming languages can interpret it.

YAML is frequently interchangeable with another data communication format, JSON, also known as JavaScript Object Notation. Both are alternatives to XML, eXtensible Markup Language. YAML's creators and community state the aim to be a human-readable format, while maintaining that JSON's primary goal is simplicity and universality. JSON more easily transfers from one programming language environment to another.

Some experienced coders may know YAML by its original acronym, Yet Another Markup Language. YAML debuted in May 2001 and by the start of 2002 had changed to the recursive YAML Ain't Markup Language.

This was last updated in August 2017

Continue Reading About YAML (YAML Ain't Markup Language)

Dig Deeper on Systems automation and orchestration

Software Quality
App Architecture
Cloud Computing
Data Center