Si je vais mettre un programme en production, il y a plusieurs choses que j'ai besoin de ce programme pour le faire afin de les examiner "opérationnaliser" – qui est, la course et maintenues dans un mesurables et vérifiables par les deux ingénieurs et du personnel d'exploitation. Pour ma part, un opérationnels de programme doit:
- Être en mesure de se connecter à de multiples niveaux (ex: debug, avertissement, etc.).
- Être en mesure de recueillir et de partager des indicateurs et des statistiques sur les types de travail le programme est en train de faire et combien de temps que le travail est prenant. Idéalement, le collectées mesures sont disponibles dans un format compatible avec couramment utilisé des outils de surveillance comme les Ganglions, ou peut-être si munged.
- Être configurable, idéalement via un système qui permet de propriétés configurées dans les programmes en cours d'être mis à jour sans avoir à redémarrer dit de programmes.
- D'être déployée sur les serveurs distants dans un moyen reproductible.
Dans le Scala monde, il y a des bonnes bibliothèques pour traiter au moins les trois premiers critères. Exemples:
- Logula pour la journalisation.
- Métriques ou d'Autruche pour la collecte et la communication des indicateurs de mesure.
- Configgy ou de la Fig pour la configuration.
Comme pour le déploiement, une approche adoptée dans le Scala monde est de réunir les bytecode et les bibliothèques qui composent un programme avec quelque chose comme de l'assemblée-sbt, puis poussez le résultant bundle ("fat JAR") à des serveurs distants avec un outil comme Capistrano qui exécute des commandes en parallèle sur SSH. Ce n'est pas un problème qui nécessite des outils linguistiques, mais je suis curieux de savoir si un tel outil existe dans le Haskell communauté.
Il y a probablement Haskell bibliothèques qui fournissent les traits de caractère que j'ai décrit ci-dessus. J'aimerais savoir laquelle de ces bibliothèques sont considérées comme "meilleur", c'est, qui sont les plus matures, bien entretenu, couramment utilisé dans le Haskell communauté, et exemplaire de Haskell meilleures pratiques.
Si il y a d'autres bibliothèques, des outils ou des pratiques autour de faire du code Haskell "prêt pour la production", j'aimerais savoir sur ceux aussi bien.