caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Chet Murthy <murthy.chet@gmail.com>
To: Malcolm Matalka <mmatalka@gmail.com>
Cc: Francois Berenger <berenger@riken.jp>, caml-list <caml-list@inria.fr>
Subject: Re: Problems to get larger user base ... (Re: [Caml-list] OCaml's variables)
Date: Wed, 29 May 2013 22:05:15 -0700	[thread overview]
Message-ID: <1804446.xtBoISCFl2@groupon> (raw)
In-Reply-To: <CAKziXDVp3yPosqe5bwm7uXRxsahvapPOxyfRVnHCceD9RrgS2w@mail.gmail.com>


I'm glad we're having this discussion.

On Thursday, May 30, 2013 06:52:25 AM Malcolm Matalka wrote:
> I think out would be wrong for opam to try to solve this problem.  There
> are already many tools available for deploying (Ansible, Puppet, Chef,
> Fabric, Capistrano).  Such a later can be build on top of opam of need be.

I think this is incorrect.  Let me explain.

(1) when we look at deploying complex collections of code/libs/data
onto multiple machines, usually we assume that the code has already
been built.

(2) but let's first dispatch the case where the code has -not- been
built.  In such a case, I presume you're proposing that the code be
built on each machine, yes?

  (a) this drastically increases the CPU required to perform upgrades
  and deploys

  (b) but far, far, far more importantly, it means that on each
  machine, a nontrivially complex script runs that builds the actual
  installed binaries.  If that script contains -any- nondeterminism or
  environmental sensitivity, it could produce different results on
  different machines.  The technical term is "version skew".

In scale-out systems, this sort of "skew" is absolutely fatal, because
it means that machines/nodes are not a priori interchangeable.  And
all of fast-fail fault-tolerance depends on nodes being
interchangeable.

(3) But let's say that what you really mean is that we should use
tools like puppet/chef/capistrano to copy collections of
binaries/libs/data to target machines and install them.  These
scripts/recipes are written by some person.  You could have equally
well suggested that that person build Debian packages (or RPMs) of
each OPAM package, writing out all the descriptions and manifests.

And manually specifying all dependencies and requiremeents.

Either way, that person is doing a job that OPAM already does a lot
of, and does quite well.  Gosh, wouldn't it be nice if OPAM could
generate those RPMs?  Well, it's a little more complicated than that,
but really, not much more.  The complexity comes in that you -might-
(I'm not saying I have this part figured out yet) want ways to
-generalize- (say) the camlp5 package so that it could be installed on
many different base OPAM installations.

But setting aside that nice-to-have, imagine that OPAM knew how to
generate RPMs from each package it installed, and from the ocaml+opam
base itself.  You combine those, and you can:

  (i) install ocaml, opam, and a bunch of packages

  (ii) push a button, and out come a pile of RPMs, along with
  dependencies amongst them (and hopefully on the relevant
  environmental RPMs (e.g., libpcre-dev for pcre-ocaml, etc) so that
  you can just stuff those RPMs into a YUM repo, go to a second box,
  and say

    "yum install opam ocaml pcre-ocaml"

  and get everything slurped down and installed, just as if OPAM had
  installed it all, package-by-package.

--chet--

P.S. And this doesn't even get into the unsuitability of chef/puppet
for managing software package installation.  There's a reason that no
distro uses such schemes to install the large and complex sets of
packages needed to run amodern Linux box.  And why there is no Linux
version of Microsorft's "DLL Hell".  Linux distros by and large (and
esp Debian and Ubuntu) have worked hard to make package installation
foolproof -- and chef/puppet etc are anything but.


  parent reply	other threads:[~2013-05-30  5:05 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-23 23:53 [Caml-list] OCaml's variables oliver
2013-05-24  9:01 ` Arnaud Spiwack
2013-05-24 23:30   ` oliver
2013-05-24 23:53     ` Siraaj Khandkar
2013-05-25  0:40       ` oliver
2013-05-25  5:14         ` Wojciech Meyer
2013-05-25 11:04           ` oliver
2013-05-25 11:49             ` Gabriel Scherer
2013-05-25 12:04               ` oliver
2013-05-25 12:30                 ` David Allsopp
2013-05-25 22:42                   ` oliver
2013-05-25 23:24                     ` Lukasz Stafiniak
2013-05-25 22:57               ` oliver
2013-05-25 16:53     ` Kristopher Micinski
2013-05-25 22:44       ` oliver
2013-05-26 15:00 ` oliver
2013-05-26 18:38   ` Malcolm Matalka
2013-05-26 21:49     ` Problems to get larger user base ... (Re: [Caml-list] OCaml's variables) Oliver Bandel
2013-05-27  7:40       ` Mr. Herr
2013-05-27  8:37         ` Fabrice Le Fessant
2013-05-27 20:21           ` Mr. Herr
2013-05-27 20:36             ` Török Edwin
2013-05-27 21:10               ` Mr. Herr
2013-05-28  1:15                 ` Francois Berenger
2013-05-28 18:32                   ` Mr. Herr
2013-05-28 18:39                     ` Malcolm Matalka
2013-05-28 18:50                     ` Anil Madhavapeddy
2013-05-28 19:24                       ` Mr. Herr
2013-05-28 22:00                     ` Paolo Donadeo
2013-05-28 22:17                       ` Mr. Herr
2013-05-28 22:43                         ` Paolo Donadeo
2013-05-29 20:48                           ` Mr. Herr
2013-05-29 21:11                             ` Malcolm Matalka
2013-05-29 22:02                               ` Mr. Herr
2013-05-29 22:10                                 ` Malcolm Matalka
2013-05-30  0:51                                 ` Francois Berenger
2013-05-30  0:45                               ` Francois Berenger
2013-05-30  0:57                                 ` Chet Murthy
2013-05-30  1:09                                   ` Francois Berenger
2013-05-30  4:52                                   ` Malcolm Matalka
2013-05-30  5:04                                     ` Francois Berenger
2013-05-30  5:05                                     ` Chet Murthy [this message]
2013-05-30  5:11                                       ` Francois Berenger
2013-05-30  6:02                                       ` Malcolm Matalka
2013-05-30  6:36                                         ` Francois Berenger
2013-05-30  6:47                                           ` Malcolm Matalka
2013-05-30 22:41                                         ` Chet Murthy
2013-05-31  5:27                                           ` Malcolm Matalka
2013-05-31 13:32                                         ` Mike Lin
2013-06-03  1:15                                           ` Francois Berenger
2013-05-30 13:49                                     ` oliver
     [not found]                                   ` <20130530.091844.2217058886454447597.Christophe.Troestler@umons.ac.be>
2013-05-30  7:23                                     ` [Caml-list] Re: Problems to get larger user base Mihamina Rakotomandimby
2013-05-30  7:51                                   ` OPAM binary packages (was Re: Problems to get larger user base ... (Re: [Caml-list] OCaml's variables)) Thomas Gazagnaire
2013-05-27  8:53         ` Problems to get larger user base ... (Re: [Caml-list] OCaml's variables) Erik de Castro Lopo
2013-05-27 12:38           ` Mr. Herr
2013-05-27 12:56             ` Paolo Donadeo
2013-05-27 20:35               ` Mr. Herr
2013-05-27 20:57                 ` Paolo Donadeo
2013-05-28  1:17             ` Francois Berenger
2013-05-28  2:44               ` oliver
2013-05-28  3:40                 ` Francois Berenger
2013-05-28  4:05                   ` Norman Hardy
2013-05-28 12:51                     ` oliver
2013-05-28  4:08                   ` Norman Hardy
2013-05-28 12:36                   ` oliver
2013-05-29  6:12                     ` Mihamina Rakotomandimby
2013-05-29  7:31                       ` Fabrice Le Fessant
2013-05-29  2:39                   ` Jeff Meister
2013-05-29  2:51                     ` Francois Berenger
2013-05-29  2:57                       ` Jeff Meister
2013-05-29  7:50                         ` Török Edwin
2013-05-29  3:06                     ` oliver
2013-05-28 18:51               ` Mr. Herr
2013-05-28 19:06                 ` Anthony Tavener
2013-05-28 19:47                   ` Mr. Herr
2013-05-29  2:25                 ` Francois Berenger
2013-05-28  4:20             ` Erik de Castro Lopo
2013-05-28 18:59               ` Mr. Herr
2013-05-29  3:08                 ` Erik de Castro Lopo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1804446.xtBoISCFl2@groupon \
    --to=murthy.chet@gmail.com \
    --cc=berenger@riken.jp \
    --cc=caml-list@inria.fr \
    --cc=mmatalka@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).