caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Francois Berenger <berenger@riken.jp>
To: caml-list@inria.fr
Subject: Re: Problems to get larger user base ... (Re: [Caml-list] OCaml's variables)
Date: Mon, 03 Jun 2013 10:15:32 +0900	[thread overview]
Message-ID: <51ABEE34.7080009@riken.jp> (raw)
In-Reply-To: <CADxsieakCmXqm0TezT5PuCFL1G4Z__QZ79c4UPjhA_A5v0Zr4A@mail.gmail.com>

On 05/31/2013 10:32 PM, Mike Lin wrote:
> It sure would be nice if OPAM happened to provide install-able OCaml
> binaries, but as real production systems are an amalgam of many
> different moving parts, I think it would solve only one small part of a
> larger problem. I think an increasingly popular solution - which is
> taking Malcom's idea to its extreme logical conclusion - is to deploy
> virtual machine images.

In grid5000, you even deploy (not virtual) images.
But this is in an HPC context.

> In my company, for example, we build such images
> frequently as part of continuous integration and, during a deploy, just
> slowly cycle thousands of cloud instances over to a new image. LXC
> (chroot on steroids) is another popular way to instantiate this strategy
> with less overhead, and we've also experimented with CDE
> (http://www.pgbovine.net/cde.html).
> I understand Facebook somehow manages to compile one ginormous binary,
> though:
> http://arstechnica.com/business/2012/04/exclusive-a-behind-the-scenes-look-at-facebook-release-engineering/
>
>
> On Wed, May 29, 2013 at 11:02 PM, Malcolm Matalka <mmatalka@gmail.com
> <mailto:mmatalka@gmail.com>> wrote:
>
>     No I'm not suggesting building on every machine.  I am suggesting using
>     a Build Server, such as Jenkins or Bamboo or Hydra, to build your system
>     and package it, then you can deploy it through another mechanism.
>
>     Opam generating RPMs (or packages for you) I believe is wrong because:
>
>     1 - There are a lot of options when it comes to building a package.
>     What should the init scripts look like?  Where should the various files
>     go?  What about configs, etc.  These are issues opam should not concern
>     it self with.  On top of that, there are already tools for building a
>     RPM packages from a directory structure, such as fpm.
>
>     2 - Which package systems should Opam support?  RPM, Deb?  I use Nix,
>     why don't you support me?  Some other guy uses something else, what
>     about him?  I would predict a lot of heated and ultimately fruitless ML
>     discussions about people wanting their package support in a
>     particular way.
>
>     3 - *Maybe* Opam should support exporting the closure of a package to an
>     external directory structure, then you can package it in any way you
>     want.
>
>     However, IME, and someone with more knowledge in Ocaml please correct
>     me, if you are deploying to production on a lot of machines I don't
>     really see why you would want to install Ocaml libraries to those
>     machines.  Ocaml libraries are statically linked so copying the produced
>     binary should be sufficient.  This is how I deploy Ocaml apps to the
>     clusters I have worked on, with success.
>
>     Perhaps I am missing something?
>
>     If you want a 'deploy' command to be added to Opam that takes a
>     configuration and pushes builds to machines, I am vehemently opposed to
>     that.  If you want a mechanism for exporting a package closure someplace
>     else that you can package, I am less opposed to that.  But I don't
>     develop Opam so my opinion doesn't really matter :)
>
>     /M
>
>     Chet Murthy <murthy.chet@gmail.com <mailto:murthy.chet@gmail.com>>
>     writes:
>
>      > 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.
>
>     --
>     Caml-list mailing list.  Subscription management and archives:
>     https://sympa.inria.fr/sympa/arc/caml-list
>     Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
>     Bug reports: http://caml.inria.fr/bin/caml-bugs
>
>


  reply	other threads:[~2013-06-03 10:46 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
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 [this message]
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=51ABEE34.7080009@riken.jp \
    --to=berenger@riken.jp \
    --cc=caml-list@inria.fr \
    /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).