Re: [Taps] Potential alternatives to YANG

"Holland, Jake" <jholland@akamai.com> Sat, 06 April 2019 18:09 UTC

Return-Path: <jholland@akamai.com>
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 5E6B9120345 for <taps@ietfa.amsl.com>; Sat, 6 Apr 2019 11:09:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.339
X-Spam-Level:
X-Spam-Status: No, score=-1.339 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KHOP_DYNAMIC=1.363, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=akamai.com
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 RkWiVwRNMjee for <taps@ietfa.amsl.com>; Sat, 6 Apr 2019 11:09:42 -0700 (PDT)
Received: from mx0b-00190b01.pphosted.com (mx0b-00190b01.pphosted.com [IPv6:2620:100:9005:57f::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E739012034F for <taps@ietf.org>; Sat, 6 Apr 2019 11:09:36 -0700 (PDT)
Received: from pps.filterd (m0122330.ppops.net [127.0.0.1]) by mx0b-00190b01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x36I6vow005453; Sat, 6 Apr 2019 19:09:28 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : subject : date : message-id : content-type : content-id : content-transfer-encoding : mime-version; s=jan2016.eng; bh=bGm8J2QmiCOklidosEoPWCnC7QYm4kpkReztQ3oOmPA=; b=RCvtXCxuOMJ7WBb971Bw4prW0uqHWe2jOHtfxVmoZ2nTedA5K12UbMGGzMPKEBwHs2dQ GnfPw3iN1abcf0YjZPqvjQ9C+/iATmvxzkKw2zm7XNF1Wmvczv7RXZeD7iDVGCTWIbgu thk4EdhhD2/G315wxV9LnZSlo68vzDN+A+4D/OTRlv7HHTFl61yNoav8/PXiI32v13Cn AOl9zEfW3FLvYwaBAAeuR1dPQlhGKsv86jiSF2pckr5RMkKTffxUKqsq7mRXRa8oxdHd yglaepoFtip+GAe6xNonz0fB9xJUYLgwL9bTkyxySTHsKGm7hwrZgnJRnc+/tYOa+CSp 5g==
Received: from prod-mail-ppoint4 (a96-6-114-87.deploy.static.akamaitechnologies.com [96.6.114.87] (may be forged)) by mx0b-00190b01.pphosted.com with ESMTP id 2rpkru27wu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 06 Apr 2019 19:09:27 +0100
Received: from pps.filterd (prod-mail-ppoint4.akamai.com [127.0.0.1]) by prod-mail-ppoint4.akamai.com (8.16.0.27/8.16.0.27) with SMTP id x36I24P8032555; Sat, 6 Apr 2019 14:09:27 -0400
Received: from email.msg.corp.akamai.com ([172.27.27.21]) by prod-mail-ppoint4.akamai.com with ESMTP id 2rpqeusmxq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 06 Apr 2019 14:09:27 -0400
Received: from USTX2EX-DAG1MB4.msg.corp.akamai.com (172.27.27.104) by ustx2ex-dag1mb5.msg.corp.akamai.com (172.27.27.105) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Sat, 6 Apr 2019 13:09:26 -0500
Received: from USTX2EX-DAG1MB4.msg.corp.akamai.com ([172.27.6.134]) by ustx2ex-dag1mb4.msg.corp.akamai.com ([172.27.6.134]) with mapi id 15.00.1473.003; Sat, 6 Apr 2019 13:09:26 -0500
From: "Holland, Jake" <jholland@akamai.com>
To: "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>, "taps@ietf.org" <taps@ietf.org>
Thread-Topic: [Taps] Potential alternatives to YANG
Thread-Index: AQHU7KPeNgKrL2lPAkK8qPZrHOIzyQ==
Date: Sat, 06 Apr 2019 18:09:25 +0000
Message-ID: <C130E1D0-CEDB-4999-9FF7-1D64BE5C6CCA@akamai.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.17.1.190326
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [172.19.113.22]
Content-Type: text/plain; charset="utf-8"
Content-ID: <E83EA25F64F0F64E82ED40CF4D5FABED@akamai.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-06_15:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904060126
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-06_15:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904060127
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/3D2kNv0u_kZUukKBbPmSLqBiFNA>
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: Sat, 06 Apr 2019 18:09:44 -0000

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