Во вторник вышла новая крупная версия библиотеки, предоставляющий единый API для доступа к различным поставщикам облачных услуг, — Apache Libcloud 2.0.0.
Библиотека Libcloud появилась в 2009 году (благодаря компании Cloudkick), а в мае 2011 года вошла в список приоритетных проектов Apache Software Foundation (ASF). Она написана на Python и призвана устранить различия в API многочисленных облачных провайдеров, предлагая пользователям унифицированный интерфейс (API) для управления сервисами в облаке: серверами, хранилищами данных, балансировщиками нагрузки, DNS и т.п. Среди наиболее значимых изменений, представленных в Libcloud 2.0.0:
отказ от использования Python httplib в пользу пакета requests;
улучшение производительности на 10 % благодаря использованию HTTP-сессий;
поддержка буферизированных IO-потоков для драйверов хранилищ;
поддержка Python 3.6 (и прекращение поддержки Python 3.2);
3 новых драйвера: OnApp Compute, OnApp DNS, 1&1 Compute;
многочисленные улучшения в поддержке Azure ARM;
обновления в драйверах Amazon.
Исходный код Apache Libcloud распространяется на условиях свободной лицензии Apache License 2.0. Инструкции по её установке и архивы для загрузки доступны на сайте проекта.
Компания 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.