Pages: [1]   Go Down
Author Topic: Ganeti in Haskell  (Read 1092 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Franco Barbanera
Forumista Eroico
Offline Offline

Posts: 2.928

« on: 07-04-2016, 14:37:07 »

Cluster-based virtualization management software

Why does Ganeti use Haskell? What are Ganeti’s plans with respect to increasing or decreasing the ratio of Haskell code?

Ganeti first used Haskell as an experiment when we needed a compiled language that could perform fast computations on cluster metadata. Eventually, we found that Haskell had advantages in its type safety that made it easy for us to develop better code with fewer common errors without having to write extensive “type-specific” unit tests. At this point, we decided to expand our use of Haskell.

As of January 2014, we plan to convert only “infrastructural” code (job queue, locking) that was already very complicated in Python to Haskell. We’ll continue to use Python for Logical Units, backend RPCs, and hypervisor, storage, and networking implementations.

There are two main reasons why Haskell constitutes a low barrier:

    Haskell doesn’t have any runtime dependency on the target systems.
    For setup, Haskell only requires a development environment.

For good examples of setup, see the Ganeti documentation (in particular, Haskell requirements) and codebase (in particular, devel/build_chroot).

If some part of the Haskell codebase is too inflexible for your use, the Ganeti team is happy to help you understand how to customize the codebase, or how to make the codebase more modular and scriptable, if possible.
Pages: [1]   Go Up
Jump to: