From owner-svn-doc-all@freebsd.org Mon Jul 24 23:00:20 2017 Return-Path: Delivered-To: svn-doc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F224DAABAC; Mon, 24 Jul 2017 23:00:20 +0000 (UTC) (envelope-from bjk@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2AE4A801F1; Mon, 24 Jul 2017 23:00:20 +0000 (UTC) (envelope-from bjk@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6ON0J7c039595; Mon, 24 Jul 2017 23:00:19 GMT (envelope-from bjk@FreeBSD.org) Received: (from bjk@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6ON0J76039594; Mon, 24 Jul 2017 23:00:19 GMT (envelope-from bjk@FreeBSD.org) Message-Id: <201707242300.v6ON0J76039594@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bjk set sender to bjk@FreeBSD.org using -f From: Benjamin Kaduk Date: Mon, 24 Jul 2017 23:00:19 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r50554 - head/en_US.ISO8859-1/htdocs/news/status X-SVN-Group: doc-head X-SVN-Commit-Author: bjk X-SVN-Commit-Paths: head/en_US.ISO8859-1/htdocs/news/status X-SVN-Commit-Revision: 50554 X-SVN-Commit-Repository: doc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire doc trees \(except for " user" , " projects" , and " translations" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Jul 2017 23:00:20 -0000 Author: bjk Date: Mon Jul 24 23:00:19 2017 New Revision: 50554 URL: https://svnweb.freebsd.org/changeset/doc/50554 Log: Add 2017Q2 CloudABI-based network communication entry from ed Modified: head/en_US.ISO8859-1/htdocs/news/status/report-2017-04-2017-06.xml Modified: head/en_US.ISO8859-1/htdocs/news/status/report-2017-04-2017-06.xml ============================================================================== --- head/en_US.ISO8859-1/htdocs/news/status/report-2017-04-2017-06.xml Mon Jul 24 22:51:32 2017 (r50553) +++ head/en_US.ISO8859-1/htdocs/news/status/report-2017-04-2017-06.xml Mon Jul 24 23:00:19 2017 (r50554) @@ -1510,4 +1510,75 @@ Setup the automatic QA infrastructure. + + + Capability-Based Network Communication for Capsicum/CloudABI + + + + + Ed + Schouten + + ed@nuxi.nl + + + + + ARPC: GRPC-Like RPC Library That Wupports File Descriptor Passing + Flower: A Label-Based Network Backplane + + + +

One of the weaknesses of Capsicum and CloudABI is that it is + not easy to develop applications that need to make outgoing + network connections, since system calls like + connect() and sendto() are disabled. Though + we can sometimes work around this by ensuring that the + sandboxed process already possesses socket file descriptors on + startup, this doesn't allow the destination process to be + restarted, moved to a different network address, be load + balanced, etc.

+ +

Coming up with a solution for this is quite important for me, + as I am currently working on making CloudABI work on top of + Kubernetes, Google's open source cluster management suite. + The idea is that Kubernetes will schedule CloudABI processes + instead of Docker containers. All of these CloudABI processes + will have their dependencies on other services in the cluster + injected explicitly, making internal communication very + secure. All of this is intended to work on &os; as well, of + course!

+ +

To solve this problem, I've been working on a daemon called + Flower (read: flow-er) that allows software to register + services and connect to them. Servers are identified by a set + of labels with values (e.g., {datacenter: 'frankfurt', + service: 'mysql'}). Clients can connect these servers by + providing the corresponding label(s). Flower's security model is + capability-based, just like Capsicum. The ability to bind and + connect can be limited by permanently constraining labels to + certain values.

+ +

Flower has been designed not to act as a proxy. It does + not copy any data. It merely forwards existing socket file + descriptors or creates UNIX socket pairs and hands these out + to its clients and servers. To realize this, processes + communicate with Flower using an RPC library called ARPC. + ARPC is a very simple clone of Google's GRPC, with the special + feature that messages (Protobufs) can have file descriptors + attached.

+ + + Nuxi, the Netherlands + + + Finish implementing the Flower code. + + Integrate Flower with the Kubernetes/CloudABI runtime. + + Release the Kubernetes/CloudABI runtime as open source + software. + +