Компания GitHub, стоящая за одноимённым онлайн-сервисом, открыла код своего очередного продукта, на сей раз для работы с DNS ­— OctoDNS.

OctoDNS позиционируется как «DNS как код» и «утилиты для управления DNS среди множества провайдеров». Эти инструменты появились в ответ на потребность инженеров SRE (Site Reliability Engineers), обслуживающих инфраструктуру GitHub и использующих множество провайдеров для обеспечения отказоустойчивой доступности своих DNS-зон (с помощью split DNS). При работе с большим количеством DNS-зон и записей у разных провайдеров возникла необходимость удобного управления всеми записями и их своевременной синхронизации.

Для решения своей проблемы в GitHub пошли по принципу «инфраструктура как код» (IaC): все DNS-зоны и записи организации помещены в конфигурационные файлы, которые хранятся в Git-репозитории. Изменения в них происходят в соответствии с рабочим процессом GitHub Flow, что позволяет деплоить ветки конфигов по аналогии с разработкой веб-приложений. Конфигурация DNS при этом хранится в формате YAML, а затем распространяется всем провайдерам с помощью написанной на Python утилиты octodns-sync.

Исходный код OctoDNS распространяется на условиях свободной лицензии MIT. Скачать его и увидеть документацию (включая описание общего рабочего процесса и примеры конфигураций) можно в репозитории на GitHub.

nixp.ru