Что это простыми словами

YAML — это способ записывать настройки программ в понятном человеку виде.

Аналогия: представьте рецепт в кулинарной книге. Там есть список ингредиентов, пошаговые действия, всё записано с отступами, чтобы было видно, что к чему относится. YAML — это как такой рецепт, только для программы. Программисты пишут в YAML-файле «используй эту базу данных», «слушай на этом порту», «вот пароли», а программа считывает эти инструкции и работает по ним.

Отступы в YAML показывают вложенность, как в оглавлении книги: глава, потом раздел с отступом, потом подраздел с ещё большим отступом. Именно эта структура через отступы делает YAML удобным для человека: не нужно считать скобки, сразу видно, что к чему относится.

Официальное определение

Теперь, когда суть понятна, вот как YAML описывают в вакансиях и документации. Эту формулировку вы встретите в требованиях к DevOps-инженерам и системным аналитикам.

«YAML — текстовый формат сериализации данных, ориентированный на человекочитаемость, использующий отступы для обозначения структуры».

Разберём по словам. «Формат» — способ записи, как документ Word или таблица Excel. «Сериализация данных» — превращение информации в текст, который можно сохранить в файл и потом прочитать обратно. «Человекочитаемость» — написано так, что человек может открыть файл блокнотом и понять, что там. «Структура через отступы» — вложенность показывается пробелами в начале строки, как в оглавлении книги.

Какую задачу решает

Программам нужно где-то хранить настройки: к какой базе подключаться, какие параметры использовать, где лежат другие файлы. Можно было бы зашить всё это прямо в код программы, но тогда при каждом изменении настройки пришлось бы переписывать код. Вместо этого настройки выносят в отдельный файл.

YAML — один из таких форматов для конфигурационных файлов. Его главное преимущество: он удобен для человека. Можно открыть файл, увидеть структуру сразу благодаря отступам, исправить значение и сохранить — программа подхватит новую настройку.

Используется повсеместно: в настройках серверов, контейнеров, систем автоматизации, инструментов тестирования. Если видите файл с расширением .yml или .yaml — это он.

Кто им пользуется

YAML — не язык программирования и не привязан ни к какому языку. Это формат записи, которым пользуются представители разных ролей:

  • DevOps-инженеры — основные пользователи. Настраивают серверы, контейнеры, системы развёртывания. Почти вся инфраструктура описывается в YAML.

  • Системные аналитики — описывают конфигурации систем, пишут спецификации.

  • Backend-разработчики — настраивают свои приложения через YAML-файлы.

  • Тестировщики-автоматизаторы — многие инструменты тестирования используют YAML для описания тестов и их параметров.

По сути, почти любая ИТ-роль, связанная с настройкой инфраструктуры или автоматизацией, рано или поздно столкнётся с YAML.

Аналоги / чем заменяется

YAML — не единственный способ хранить конфигурации. Есть несколько других форматов, которые решают ту же задачу:

  • JSON — более строгий, со скобками и кавычками. Менее удобен для человека, зато проще для программ.

  • XML — старый формат с тегами, как в HTML. Многословный, но всё ещё используется в корпоративных системах.

  • TOML — ещё один человекочитаемый формат, популярен в некоторых экосистемах.

Переход между ними несложный: это просто разные способы записать одно и то же. Человек, который работал с JSON, освоит YAML за день. Главное — понимать, что такое структура данных, а синтаксис конкретного формата — дело привычки.

Что не путать

  • YAML ≠ язык программирования. На YAML не пишут программы, в нём только хранят настройки и данные. Умение работать с YAML и умение программировать — разные навыки.

  • YAML ≠ база данных. База хранит большие объёмы информации, а YAML-файл — это просто текстовый документ с настройками.

  • Файл .yml или .yaml ≠ исполняемая программа. Это конфигурация, которую читает другая программа. Сам по себе YAML-файл ничего не делает.

  • YAML ≠ Kubernetes. Kubernetes — система управления контейнерами, а YAML — формат, в котором пишутся его конфигурации. Kubernetes может использовать YAML, но YAML существует независимо от него.

Насколько это важно при отборе

Короткий ответ: в большинстве случаев НЕ стоит отбраковывать кандидата только из-за отсутствия YAML в резюме.

YAML — это синтаксис, способ записи. Если человек понимает, что такое структура данных, работал с JSON или XML, он освоит YAML буквально за день. Отсеивать опытного DevOps-инженера или разработчика только потому, что в резюме написан JSON вместо YAML, — ошибка. Это как не брать хорошего водителя, потому что он ездил на механике, а у вас автомат.

Когда YAML действительно важен:

  • Если работа целиком завязана на инструменты, где конфигурации только в YAML (например, Kubernetes, Ansible, GitLab CI). В таком случае опыт именно с YAML покажет, что человек уже работал с этой экосистемой.

  • Если нужно выйти и сразу начать работать без адаптации. Такое требование стоит уточнить у нанимающего менеджера — часто оно желательное, а не обязательное.

Гораздо важнее смотреть на понимание принципов: умеет ли человек настраивать системы, понимает ли, как работает инфраструктура, знает ли инструменты (Docker, Kubernetes, CI/CD). Конкретный формат записи — это техническая деталь, которая не определяет квалификацию.

Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.