Re: [Taps] Potential alternatives to YANG

"Scharf, Michael" <Michael.Scharf@hs-esslingen.de> Tue, 16 April 2019 15:52 UTC

Return-Path: <Michael.Scharf@hs-esslingen.de>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BEE1512064B for <taps@ietfa.amsl.com>; Tue, 16 Apr 2019 08:52:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=hs-esslingen.de
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3z1cQjrQ7Fx7 for <taps@ietfa.amsl.com>; Tue, 16 Apr 2019 08:52:47 -0700 (PDT)
Received: from mail.hs-esslingen.de (mail.hs-esslingen.de [134.108.32.78]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7FF82120C28 for <taps@ietf.org>; Tue, 16 Apr 2019 07:35:22 -0700 (PDT)
Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.hs-esslingen.de (Postfix) with ESMTP id 112AD25A3A; Tue, 16 Apr 2019 16:35:18 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hs-esslingen.de; s=mail; t=1555425318; bh=G4sj2cWcobT702KBshlKRxg/Xmp1JhZ3ofLUchXouDo=; h=From:To:Subject:Date:References:In-Reply-To:From; b=YErmzzL11abfTUyNeHoEPIplTKM9al1EUzYqfz6PJzuA97HOPBYAWdafxZRCInx0X 0aY5gg2+le+vq5AKRrIUkyLFNCKktfmP4n/XvZsb+/7xmJwQA+S1/jONt4QkIDu0nn RcYq4CDAS3XteTN078Y0MtKx/mafE2gnYdvEC6X4=
X-Virus-Scanned: by amavisd-new-2.7.1 (20120429) (Debian) at hs-esslingen.de
Received: from mail.hs-esslingen.de ([127.0.0.1]) by localhost (hs-esslingen.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7UXchrDHMLJd; Tue, 16 Apr 2019 16:35:16 +0200 (CEST)
Received: from rznt8101.rznt.rzdir.fht-esslingen.de (rznt8101.rznt.rzdir.fht-esslingen.de [134.108.29.101]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mail.hs-esslingen.de (Postfix) with ESMTPS; Tue, 16 Apr 2019 16:35:16 +0200 (CEST)
Received: from RZNT8114.rznt.rzdir.fht-esslingen.de ([169.254.3.34]) by rznt8101.rznt.rzdir.fht-esslingen.de ([fe80::bd73:d6a9:24d7:95f1%10]) with mapi id 14.03.0415.000; Tue, 16 Apr 2019 16:35:16 +0200
From: "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>
To: "Holland, Jake" <jholland@akamai.com>, "taps@ietf.org" <taps@ietf.org>
Thread-Topic: [Taps] Potential alternatives to YANG
Thread-Index: AQHU7KPeNgKrL2lPAkK8qPZrHOIzyaY+5PiQ
Date: Tue, 16 Apr 2019 14:35:16 +0000
Message-ID: <6EC6417807D9754DA64F3087E2E2E03E2D2B54FA@rznt8114.rznt.rzdir.fht-esslingen.de>
References: <C130E1D0-CEDB-4999-9FF7-1D64BE5C6CCA@akamai.com>
In-Reply-To: <C130E1D0-CEDB-4999-9FF7-1D64BE5C6CCA@akamai.com>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [134.108.63.132]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/yeO6alFNuI2eAELrhVcyJLIIxWs>
Subject: Re: [Taps] Potential alternatives to YANG
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IETF Transport Services \(TAPS\) Working Group" <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Apr 2019 15:52:50 -0000

Hi Jake,

I certainly agree that YANG has a lot of benefits and I will not argue against using it.

I just observe that for modeling APIs, instead of modeling data stores for configuration and operational state in network elements, there are *many* other choices for language-independent API descriptions with excellent software tooling support. I should maybe have mentioned more explicitly Interface Definition Languages (IDLs), such as the ones listed on https://en.wikipedia.org/wiki/Interface_description_language.

Note that both OpenAPI/Swagger and protobuf are listed on this page. And, well, YANG is not listed on that page... Of course, that may be a mistake of the Wikipedia page. But I believe it somewhat correlates with the knowledge of many software developers.

Thanks

Michael


> -----Original Message-----
> From: Holland, Jake <jholland@akamai.com>
> Sent: Saturday, April 6, 2019 8:09 PM
> To: Scharf, Michael <Michael.Scharf@hs-esslingen.de>; taps@ietf.org
> Subject: Re: [Taps] Potential alternatives to YANG
> 
> Hi Michael,
> 
> I took a look at these, and thought a bit about our follow-up conversation
> after the meeting.
> 
> If I understand correctly, the suggestion here is to consider some alternative
> toolchains focused more on generating and working with APIs, rather than
> networking configuration, is that correct?
> 
> I have a couple of points of response:
> 
> 1. I think in my slides, I listed 5 points with 6 sub-points about the benefits
> of YANG (including the benefits of a standardized config format, and the
> benefits of YANG specifically).
> 
> As far as I can see, tools like this might do a better job on one of the
> sub-points (API generation), but provide little or no support that speak to
> any of the other points and sub-points.
> 
> 2. I also think standardizing on a toolchain like one of these would work
> against some of the other major goals of TAPS, particularly allowing
> implementations to use language-idiomatic constructs for the actual
> API provided by the implementation.
> 
> In short, I think these tools work at the wrong layer of abstraction for what
> TAPS is trying to accomplish, since they seem to focus on the specifics of
> the calls in the API boundary.  By contrast, a YANG-based approach mainly
> addresses the data that passes across the API boundary, while leaving
> abstract
> the specifics of the API.
> 
> 
> For particular implementations I think some of these tools would be really
> valuable, but I think the choice of which one works best for a particular
> implementation is much like the programming language choice, and best left
> to the implementors who are going to use it.
> 
> So in my opinion, trying to standardize (in TAPS) a concrete API with tools
> like the suggested ones would be a step in the wrong direction.
> 
> Thanks for clarifying the suggestion, and I hope that explains my position
> on it.  I'm planning nothing more about following up on this, so please
> let me know if you think I've misunderstood something important about the
> suggestion or the tools you mentioned.
> 
> Regards,
> Jake
> 
> On 2019-03-29, 04:53, "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>
> wrote:
> 
>     As mentioned on the mic: There are quite a number of solutions to
> "rigorously" specify APIs. Some of these general-purpose techniques are
> IMHO also used for configuration/provisioning tasks in the networking
> industry, i.e., as alternative to YANG.
> 
>     In a former life, I had quite some discussions on the role of YANG as
> compared to, for instance:
> 
>     * swagger.io (https://swagger.io/)
> 
>     * gRPC, gNMI and protocol buffers (see e.g. draft-openconfig-rtgwg-gnmi-
> spec-01 in the IETF)
> 
>     In both cases there is are tooling eco-system that are IMHO widely used by
> app developers (and often preferred over YANG). The YANG tooling that
> exists in industry, e.g., for code auto-generation, is quite specific to network
> management, as far as I can tell.
> 
>     To me, whether to develop models in YANG or in other data modeling
> languages depends a lot on the use case and the target software developer
> community. Of course, in the RTG and OPS area YANG is the default data
> modeling language.
> 
>     Michael
>     (as somebody who attends RTG and OPS working groups)
> 
>     _______________________________________________
>     Taps mailing list
>     Taps@ietf.org
>     https://www.ietf.org/mailman/listinfo/taps
>