🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fa.caml
Article #13

Re: Problems to get larger user base ... (Re: [Caml-list] OCaml's variables)

#13
From: Chet Murthy
Date: Thu, 30 May 2013 05:05
82 lines
7342 bytes
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
Technical Details
Message-ID: <fa.dWQhXC5IgbjFHmCE0KHRlxx4o+4@ifi.uio.no>
Path: arc1-ca.pugleaf.net!hv6ni24053wib.1!nntp.google.com!feeder1.cambriumusenet.nl!82.197.223.103.MISMATCH!feeder3.cambriumusenet.nl!feed.tweaknews.nl!195.208.113.67.MISMATCH!goblin1!goblin.stu.neva.ru!uio.no!nntp.uio.no!.POSTED!not-for-mail
References: <fa.ygUreM916SCi2HRnlvgczHSDQLY@ifi.uio.no> <fa.r2XClcgBKcljkqbd4Zm2XARLoWs@ifi.uio.no> <fa.7WBi5ppDnLEffRTywR0VksKH4TA@ifi.uio.no>

Show Full Headers
Complete Article Headers
X-Google-Thread: ff861,943792163446c61a
X-Google-NewGroupId: yes
X-Google-Attributes: gidc0fe4b917e,domainid0,public,usenet
X-Google-Language: ENGLISH,ASCII-7-bit
X-Received: by 10.180.188.98 with SMTP id fz2mr7414682wic.4.1369890337394;
        Wed, 29 May 2013 22:05:37 -0700 (PDT)
Path: arc1-ca.pugleaf.net!hv6ni24053wib.1!nntp.google.com!feeder1.cambriumusenet.nl!82.197.223.103.MISMATCH!feeder3.cambriumusenet.nl!feed.tweaknews.nl!195.208.113.67.MISMATCH!goblin1!goblin.stu.neva.ru!uio.no!nntp.uio.no!.POSTED!not-for-mail
From: Chet Murthy <murthy.chet@gmail.com>
Newsgroups: fa.caml
Subject: Re: Problems to get larger user base ... (Re: [Caml-list] OCaml's
 variables)
Date: Thu, 30 May 2013 05:05:36 UTC
Organization: Internet mailing list
Lines: 82
Sender: caml-list-request@inria.fr
Message-ID: <fa.dWQhXC5IgbjFHmCE0KHRlxx4o+4@ifi.uio.no>
References: <fa.ygUreM916SCi2HRnlvgczHSDQLY@ifi.uio.no> <fa.r2XClcgBKcljkqbd4Zm2XARLoWs@ifi.uio.no> <fa.7WBi5ppDnLEffRTywR0VksKH4TA@ifi.uio.no>
NNTP-Posting-Host: mail-jess.uio.no
Mime-Version: 1.0
X-Trace: readme.uio.no 1369890336 11695 129.240.7.9 (30 May 2013 05:05:36 GMT)
X-Complaints-To: abuse@uio.no
NNTP-Posting-Date: Thu, 30 May 2013 05:05:36 +0000 (UTC)
User-Agent: KMail/4.8.5 (Linux/3.2.0-38-generic-pae; KDE/4.8.5; i686; ; )
Cc: Francois Berenger <berenger@riken.jp>, caml-list <caml-list@inria.fr>
To: Malcolm Matalka <mmatalka@gmail.com>
X-IronPort-AV: E=Sophos;i="4.87,768,1363129200"; 
   d="scan'208";a="19552013"
X-Original-To: caml-list@sympa.inria.fr
Delivered-To: caml-list@sympa.inria.fr
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AuACALLdplHRVd+2lWdsb2JhbABZiSO8HYEDFg4BAQEBBw0JCRIqgiMBAQU6BgEbHQEDDAYFDgoJFRAPARMRAQUBHAaIDQEDD5wcjD+CfYRtChknDViIIgEFDI1igSUHg1cDiR+ddz+EVYFK
X-IPAS-Result: AuACALLdplHRVd+2lWdsb2JhbABZiSO8HYEDFg4BAQEBBw0JCRIqgiMBAQU6BgEbHQEDDAYFDgoJFRAPARMRAQUBHAaIDQEDD5wcjD+CfYRtChknDViIIgEFDI1igSUHg1cDiR+ddz+EVYFK
X-IronPort-AV: E=Sophos;i="4.87,768,1363129200"; 
   d="scan'208";a="16143512"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=from:to:cc:subject:date:message-id:user-agent:in-reply-to
         :references:mime-version:content-transfer-encoding:content-type;
        bh=c8uK4miZaRHJBJeUcEh9rmhEQPh0r/+COZiAVOMLAc0=;
        b=BHSLLZp2knBPY4en5SUw5IPElUqw2+5TP4P8oZ2f6g08TQuCmmamTyphXbR7ErMD/l
         i1XmxYVlU+qel5b3qMFFgwVwC0MXDXu9IikSRnhJPPwzsoduct04u2W2YBpajOrFA8Eb
         p+auERhZjQQ9QvhGhcuyhAJe1PQ39j6X494YUpSdvLJWmVQI6zHwSo7xnfp0TY6GegAC
         IZZrSPhxWqzH4XqU/2bU312WZwItFSQaVmW3SHTWveZGaZtElAOA4r5V1K0Z+1zBMrjy
         eusQp0PqzjTMUZBchItLM3QA8lzSSx3rtLUNFfweayhgWF5DyiuaGq/EHF8d92l3vpv9
         Pkfw==
X-Received: by 10.50.11.72 with SMTP id o8mr2955303igb.44.1369890322815;
        Wed, 29 May 2013 22:05:22 -0700 (PDT)
In-Reply-To: <CAKziXDVp3yPosqe5bwm7uXRxsahvapPOxyfRVnHCceD9RrgS2w@mail.gmail.com>
X-Sequence: 6836
X-no-archive: yes
List-Id: <caml-list.inria.fr>
List-Archive: <http://sympa.inria.fr/sympa/arc/caml-list>
List-Help: <mailto:sympa_inria@inria.fr?subject=help>
List-Owner: <mailto:caml-list-request@inria.fr>
List-Post: <mailto:caml-list@inria.fr>
List-Subscribe: <mailto:sympa_inria@inria.fr?subject=subscribe%20caml-list>
List-Unsubscribe: <mailto:sympa_inria@inria.fr?subject=unsubscribe%20caml-list>
Original-Date: Wed, 29 May 2013 22:05:15 -0700
Original-Message-Id: <1804446.xtBoISCFl2@groupon>
Original-References: <20130523235355.GI6510@siouxsie> <1629005.lH05byJ9SH@groupon> <CAKziXDVp3yPosqe5bwm7uXRxsahvapPOxyfRVnHCceD9RrgS2w@mail.gmail.com>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7Bit