Re: [Taps] Potential alternatives to YANG

Mikael Abrahamsson <swmike@swm.pp.se> Thu, 18 April 2019 07:28 UTC

Return-Path: <swmike@swm.pp.se>
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 F3B47120117 for <taps@ietfa.amsl.com>; Thu, 18 Apr 2019 00:28:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.301
X-Spam-Level:
X-Spam-Status: No, score=-4.301 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_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=swm.pp.se
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 LoiMUSeCH0bw for <taps@ietfa.amsl.com>; Thu, 18 Apr 2019 00:28:41 -0700 (PDT)
Received: from uplift.swm.pp.se (swm.pp.se [212.247.200.143]) (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 895381200B8 for <taps@ietf.org>; Thu, 18 Apr 2019 00:28:41 -0700 (PDT)
Received: by uplift.swm.pp.se (Postfix, from userid 501) id 57581AF; Thu, 18 Apr 2019 09:28:39 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=swm.pp.se; s=mail; t=1555572519; bh=bll2kngQ7KFQDp1zbFgarQPfU78yUcSqTofLB7LosQI=; h=Date:From:To:cc:Subject:In-Reply-To:References:From; b=pjxyTXcrI+clrxPMTCHNsbhnb93VcDFHHcSC/8+USkO4/ApIwUcVqLARQlxgjTAB6 24fybV8sls5/jqTDEww2+ilrpb7Xei/G/Z2PXJPUVovjIuhWmgDtSPBI2ruvcYfOBE 35W3GHgZ24RQ7T5poNap6a27puNR1h9Xi7Op3klQ=
Received: from localhost (localhost [127.0.0.1]) by uplift.swm.pp.se (Postfix) with ESMTP id 531709F; Thu, 18 Apr 2019 09:28:39 +0200 (CEST)
Date: Thu, 18 Apr 2019 09:28:39 +0200
From: Mikael Abrahamsson <swmike@swm.pp.se>
To: "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>
cc: "taps@ietf.org" <taps@ietf.org>
In-Reply-To: <6EC6417807D9754DA64F3087E2E2E03E2D28CC16@rznt8114.rznt.rzdir.fht-esslingen.de>
Message-ID: <alpine.DEB.2.20.1904180919010.3490@uplift.swm.pp.se>
References: <6EC6417807D9754DA64F3087E2E2E03E2D28CC16@rznt8114.rznt.rzdir.fht-esslingen.de>
User-Agent: Alpine 2.20 (DEB 67 2015-01-07)
Organization: People's Front Against WWW
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"; format="flowed"
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/bmXF9weL3vspHBzRGLZOeWEsUhI>
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: Thu, 18 Apr 2019 07:28:43 -0000

On Fri, 29 Mar 2019, Scharf, Michael 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)

I thought gRPC and gNMI was equivalent to netconf, not to YANG?

> 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.

My experience is that people typically will take whatever there is lots of 
tooling for and it's "easy to use". Then as they use it more and more 
extensively, they discover all limitations and demand the tool is 
extended/enhanced. People will say "oh, JSON is so easy to work with" and 
after a while they discover that data models is good for 
defining/validating what goes on the wire, and now all of a sudden after a 
while you've invented all the "complication" of YANG.

Personally it's not super important to me that NETCONF is used, but I do 
think using a good data modeling language is important, thus I think YANG 
modeling is important.

The same way a huge amount of work has gone into XML, a huge amount of 
work has gone into YANG, to make sure it's well defined and works from 
lots of aspects.

-- 
Mikael Abrahamsson    email: swmike@swm.pp.se