HeadlinesBriefing favicon HeadlinesBriefing.com

Почему YAML вызывает головные боли в DevOps

Hacker News •
×

Сатирическая критика подчеркивает подводные камни YAML как стандарта конфигурации DevOps. Несмотря на принятие в отрасли Kubernetes, YAML не имеет официальной документации помимо своей спецификации и не enforces обработку ошибок во время разработки, что приводит к сбоям во время выполнения. Ключевые проблемы включают неоднозначный анализ типов: код страны Норвегии `NO` интерпретируется как логическое значение false, тогда как восьмеричные числа вроде `0666` автоматически преобразуются в YAML 1.1 (изменено на `0o666` в 1.2). Временные значения вроде `04:30` сериализуются в секунды (16200), если явно не указано как строка. Номера версий `1.7` и `1.70` парсятся как идентичные числа с плавающей точкой, ломая семантическое версионирование. Цепочки CI сталкиваются с нестабильностью, когда 8-символьные хеши Git состоят только из цифр, что приводит к ошибочной интерпретации типизированными парсерами как целых数字. Риски безопасности существуют через уязвимости десериализации в Ruby, PHP, Swagger и PyYAML. Автор неблагоприятно сравнивает YAML с JSON и INI, отмечая, что его единственные преимущества — это комментарии и немного улучшенная читаемость. Статья завершается примерами несогласованного синтаксиса CI в Azure DevOps, CircleCI и гипотетических будущих системах, подчеркивая фрагментацию.