First let’s define a few things
What’s a Cattle in terms of Service Delivery using the “Cloud” methodoligy
Cloud Servers are not our pets Blog Post
What is DNSaaS in a Cloud?
Any kind of DNS implementation exposed by typically a Web API abstracting away the DNS server technology chosen by the implementor.
Typical known products today: Amazon R53 or Rackspace CloudDNS.
Moniker DNSaaS – What’s been and what’s coming
So, in the last few weeks I’ve been working with some guys from HP, eBay and some others to expand the functionality of OpenStack within the DNS space.
Before we started there where 3 different ways of doing DNS in OpenStack:
- Simple instance DNS using dnsmasq with Nova
- Using the `nova-dns` project from GridDynamics
- Moniker DNSaaS
Now as you can see there’s way to many alternatives for a user to pick, so RyanLane @ Freenode from WikiMedia pulled together a meeting with all of the involved parties (GD, HP, eBay and some others) and concluded it was best to pick Moniker as the default implementation going forwards focusing efforts into 1 project.
In the beginning
So to begin with Moniker had basic support for controlling Domains and Record via a REST API decoupled with a MQ in between a Central process which stored information about records and called a Agent which controlled your DNS server of choice (at the time of starting the project only ISC Bind9).
The journey until now
From the start until now which is a bit over a 8 weeks and counting a pretty small team of about 4 active developers we’ve made major additions to features and quality of the code:
* Added Keystone support for authentication
* Schema validation using JSON-SCHEMA
Central / Agent:
* Moved to a loadable plugin approach for everything (Storage, Backends, Handlers)
Allowing for a more understandable way of configurating plugins (nova_fixed_ip_domain which is a option for the Nova FixedIP Handler vs writing [handler:nova_fixedip] domain_id = ….)
* Plugin based internal storage used by the `Central` process (So you can write whatever Storage implementation you want, currently SQLAlchemy is the only one).
* Support for multiple database connections when using a Backend within the `Central` process (Required for using PowerDNS or MySQLBind9 Backends).
* Added support for Notification Handlers (Do fun stuff as adding A records upon creating a instance or / and associating a floating ip to a instance), more will come.
* Added several new Backend types and making RPC as a seperate Backend allowing Central to run a Backend
* Database migrations
* Created initial bindings and CLI for the v1 API.
For more information about changes in Moniker see Moniker @ OpenStack Gerrit
The road to Grizzly
So as all other teams we’ve got a few goals until the release of Grizzly:
* Stabilize API’s and internals.
* Make a final version of the Client.
* Documentation is missing lots.
Can you help? Please feel free to join us at IRC, report bugs and make
IRC: #openstack-dns @ FreeNode
Your requests and any help is very welcome!