From 88a5c05505041a6ac1f4f31751934d20738b4548 Mon Sep 17 00:00:00 2001 From: distix ticketing system Date: Tue, 26 Jun 2018 16:11:07 +0000 Subject: imported mails --- .../cur/.this-dir-not-empty/.empty/empty-file | 0 .../new/.this-dir-not-empty/.empty/empty-file | 0 .../Maildir/new/1530029467.M646054P10047Q1.koom | 155 +++++++++++++++++++++ .../tmp/.this-dir-not-empty/.empty/empty-file | 0 .../d3799e67b0cd45d29e6c2eef00ae7a3e/ticket.yaml | 6 + 5 files changed, 161 insertions(+) create mode 100644 tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/cur/.this-dir-not-empty/.empty/empty-file create mode 100644 tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/.this-dir-not-empty/.empty/empty-file create mode 100644 tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/1530029467.M646054P10047Q1.koom create mode 100644 tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/tmp/.this-dir-not-empty/.empty/empty-file create mode 100644 tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/ticket.yaml diff --git a/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/cur/.this-dir-not-empty/.empty/empty-file b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/cur/.this-dir-not-empty/.empty/empty-file new file mode 100644 index 0000000..e69de29 diff --git a/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/.this-dir-not-empty/.empty/empty-file b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/.this-dir-not-empty/.empty/empty-file new file mode 100644 index 0000000..e69de29 diff --git a/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/1530029467.M646054P10047Q1.koom b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/1530029467.M646054P10047Q1.koom new file mode 100644 index 0000000..3ca6d0e --- /dev/null +++ b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/1530029467.M646054P10047Q1.koom @@ -0,0 +1,155 @@ +Return-Path: +X-Original-To: distix@pieni.net +Delivered-To: distix@pieni.net +Received: from yaffle.pepperfish.net (yaffle.pepperfish.net [88.99.213.221]) + by pieni.net (Postfix) with ESMTPS id D902C42F0D + for ; Tue, 26 Jun 2018 16:10:48 +0000 (UTC) +Received: from platypus.pepperfish.net (unknown [10.112.101.20]) + by yaffle.pepperfish.net (Postfix) with ESMTP id 9F812417C0 + for ; Tue, 26 Jun 2018 17:10:48 +0100 (BST) +Received: from ip6-localhost.nat ([::1] helo=platypus.pepperfish.net) + by platypus.pepperfish.net with esmtp (Exim 4.80 #2 (Debian)) + id 1fXqYK-0003jg-Is; Tue, 26 Jun 2018 17:10:48 +0100 +Received: from koom.pieni.net ([88.99.190.206] helo=pieni.net) + by platypus.pepperfish.net with esmtpsa (Exim 4.80 #2 (Debian)) + id 1fXqYI-0003jJ-SN + for ; Tue, 26 Jun 2018 17:10:46 +0100 +Received: from exolobe3 (62-78-212-250.bb.dnainternet.fi [62.78.212.250]) + by pieni.net (Postfix) with ESMTPSA id 4BB2842C80 + for ; Tue, 26 Jun 2018 16:10:46 +0000 (UTC) +Message-ID: +From: Lars Wirzenius +To: ick discussions +Date: Tue, 26 Jun 2018 19:10:41 +0300 +X-Mailer: Evolution 3.28.2-1 +Mime-Version: 1.0 +X-Pepperfish-Transaction: 4507-3886-d519-a9cc +X-Pepperfish-Transaction-By: platypus +Subject: Distributed CI +X-BeenThere: ick-discuss@ick.liw.fi +X-Mailman-Version: 2.1.5 +Precedence: list +List-Id: discussions about the ick CI system +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Content-Type: multipart/mixed; boundary="===============3970042335603488410==" +Mime-version: 1.0 +Sender: ick-discuss-bounces@ick.liw.fi +Errors-To: ick-discuss-bounces@ick.liw.fi + + +--===============3970042335603488410== +Content-Type: multipart/signed; micalg="pgp-sha512"; + protocol="application/pgp-signature"; boundary="=-/eOJnGcNVZ8bINwC8SEr" + + +--=-/eOJnGcNVZ8bINwC8SEr +Content-Type: text/plain; charset="UTF-8" +Content-Transfer-Encoding: quoted-printable + +We've had a short disucssion on IRC about maybe adding support to Gitano (a +git server) and ick for ActivityPub instead of having explicit triggers +configured in Gitano to trigger builds in ick. I thought I'd expand on that +a little bit. + +The thing I'm grasping at is that currently, each git server instance needs +to notify each CI instance separetely, creating a fairly tight coupling. +Alternatively, each CI instance needs to poll each git server, which is +unworkable at scale. + +So currently, if there are three users, one using github.com, one using +gitlab.com, and one using the Debian gitlab instance (salsa), and each user +is developing their own software, then each user needs to configure their +own git server to notify their own CI server. So far, so good. + +However, if each of the three also wants to build and deploy each other's +software, so that if user A makes a change, it gets put through CI by A's, +B', and C's CI, and then deployed to A's, B's, and C's production server,= +=20 +and likewise for B's and C's software, then each of the three needs to add +a trigger hook on each of th three git repositories. That's three +repositories, three CI servers, and a total of nine trigger hooks. + +That's still manageable, but there are problems. Not all git servers allow +random strangers to add trigger hooks on each repository. Also, three +repositories and three CI servers is small potatoes. Imagine having fifty +thousand repositories! Debian has about that many binary packages. + +Also imagine that those fifty thousand repositories are used by a million +users. Not all of them by all users, but many repositories by each of the +million. Having millions of hooks does not scale. Having that much polling +also doesn't scale. + +So here's the solution I'm thinkin of: instead of having the git server +notify each CI server, have the git server send a message to an ActivityPub +server, and have each CI server listen on such messages on their own +ActivityPub server. The AP servers federate (send messages to each other), +so each git server and each CI server only needs to post to and listen on +one AP server. + +With this design, many-to-lots communication becomes feasible. + +A makes a change, and pushes to their git server. The git server posts a +message to its own AP server, saying "this branch on this repo on this git +server has changed, new commit it CAFEBEEF." The AP server knows who's +"following" A's repository, and so the message flows out to the AP server +network to every AP server where a CI server is interested in that +repository. Each of those CI servers can then trigger a build and deploy of +A's software. + +I don't actually know much about ActivityPub yet. It's the protocol behind +the Mastodon system (https://joinmastodon.org/), and it works fine for a +Twitter clone. I don't know yet if it would work for what I'm talking about +above, but I think so. + +Of course, doing distributed CI at this scale might not be something that +anyone actually cares about. We'll see. But even at a small scale, I'd like +to break the necessity of the git server having to know about each CI +server that is interested in each of its repositories. + +Also, this needs thinking for non-public repositories. +--=-/eOJnGcNVZ8bINwC8SEr +Content-Type: application/pgp-signature; name="signature.asc" +Content-Description: This is a digitally signed message part +Content-Transfer-Encoding: 7bit + +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEETNTnrewG6wEE1EJ3bC+mFux6IDEFAlsyZYEACgkQbC+mFux6 +IDHDoxAAk/e441kEhfF9vQl3BCMddPUvAoiPGeLLY1GSw+LU5BcBb/SVTwNlQ7uC +bVut6uMDlIFrs4YKfqfWRBOLGz0ymtlaql8lDAb/wg8yfFehz1As073lZHbccmoI +Ld8R+Cq9gg7hMt0lOMWhjgvGPy4eCcpy8cP7yaonp3Jb1eXd3NbqUMWo04YKQClH +4ZyKW7S0M3yXgC+yubZQMDwouzLD1elKduZnFw3v1sftaEobBmZ0t7bWlJL8/hD/ +40INEpTecAvfhIIDyqPIqljDANZpMJlHxQZLSZjwEAxCd7IILTvHIxojz97Vri7j +KE7t86FkDngVP3cyDit4wscPsLcdRfmJXgXrbxht4fWlLkRjB5ARy4uTUYpwp71i +VwiSbNPFD5G0klKpxGNI8fVIh/kV+fYdJ1c1OQA1cSvIZ6TevN5AXcd4yxchUum5 +XsLfWHdp3S5Q1ulTYKBYjCZ05f9toydXmKXtRBRlAvBluqIV75NGCGkjn44xm+P9 +6yfOp4u3S4Qspw5oCqd/CaUokK84301Ed9r5gZpeDp8mSR+nxGGt/6thOfEDghyM +aSGIHF99VtAPZPYTb5zSFpT6jbckU6dDVmBkFIQHvNDFJZFGk74G+yDPTmGv55bs +uCGj3KtGfAqVPLLAQyrovUl12XPUkeWKo5FSIBqfCbBf1N5ppeI= +=obrr +-----END PGP SIGNATURE----- + +--=-/eOJnGcNVZ8bINwC8SEr-- + + + +--===============3970042335603488410== +Content-Type: text/plain; charset="us-ascii" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Content-Disposition: inline + +_______________________________________________ +ick-discuss mailing list +ick-discuss@ick.liw.fi +https://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/ick-discuss-ick.liw.fi + +--===============3970042335603488410==-- + + diff --git a/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/tmp/.this-dir-not-empty/.empty/empty-file b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/tmp/.this-dir-not-empty/.empty/empty-file new file mode 100644 index 0000000..e69de29 diff --git a/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/ticket.yaml b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/ticket.yaml new file mode 100644 index 0000000..783046f --- /dev/null +++ b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/ticket.yaml @@ -0,0 +1,6 @@ +status: +- open +ticket-id: +- d3799e67b0cd45d29e6c2eef00ae7a3e +title: +- Distributed CI -- cgit v1.2.1