maas-devel team mailing list archive
-
maas-devel team
-
Mailing list archive
-
Message #00208
Re: Re-architecting without cobbler
Here's the updated architecture based on the conversations we've had.
https://docs.google.com/document/d/1PtFKcizW3bmP3QBv771tSGMO4VaCiLkWlr-oDzn-
FqU/edit
Anyone outside Canonical can view it this time.
Follow up with comments here please.
On Friday 04 May 2012 15:50:15 Julian Edwards wrote:
> Hi
>
> Gavin also has a proposal to come, but this is the basis of what I discussed
> with Robert earlier.
>
> The main aim is hyperscale. That is, we want to support hundreds of
> thousands of nodes. Cobbler simply doesn't allow us to do that. In
> addition we are currently tied into driving it synchronously so that we can
> be sure it synced its own database, which causes bugs like:
> https://bugs.launchpad.net/maas/+bug/989355
>
> The other main issue surrounds DHCP/TFTP and PXE booting. When we write out
> config files for these services we need to make sure there are no conflicts
> with multiple processes/threads doing the same thing.
>
> Finally, we need to separate appserver requests from provisioning tasks
> because the latter can be long running (as per the above bug).
>
> To this end we discussed:
>
> * Use Celery as a task queue (can use Rabbit or Django's DB as a broker)
> → Django has a Celery plugin which makes this very easy
> * Have one queue per pserv process
> * Each pserv is responsible for servicing the tasks on that queue
> * It scales by having multiple queues each with another pserv, or just
> multiple pservs pulling from one queue.
> * The pserv can read the database by using Django's ORM, and write to it by
> sending API requests back to Django's appserver threads (again, scalable).
>
> We also talked about batching requests on the Rabbit task queues because we
> might want to accumulate several requests that change the configs for DHCP
> etc. For now though we can process serially and optimise later. We'd need
> to think about how to implement locking though if there are multiple
> writers to the same files.
>
> J
References