Re: [Taps] Potential alternatives to YANG

"Scharf, Michael" <Michael.Scharf@hs-esslingen.de> Thu, 18 April 2019 11:56 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 2A2771200A0 for <taps@ietfa.amsl.com>; Thu, 18 Apr 2019 04:56:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 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] 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 cba0heQDSEGJ for <taps@ietfa.amsl.com>; Thu, 18 Apr 2019 04:56:48 -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 25543120052 for <taps@ietf.org>; Thu, 18 Apr 2019 04:56:48 -0700 (PDT)
Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.hs-esslingen.de (Postfix) with ESMTP id 1CDBC25A20; Thu, 18 Apr 2019 13:56:46 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hs-esslingen.de; s=mail; t=1555588606; bh=e0FMGSc+Po5QfDlvwmCsY8zY0Y+5hsXfVXuVvEa3s8I=; h=From:To:Subject:Date:References:In-Reply-To:From; b=awAPlOoIIowyEx9T28/YsGY1ht5VRRlJhBa5JDPMveQmZgeTAU+WZtHliplc+w2+P HUOOyjuvdQ1t4EiKk7MWgSZlw+PX+yixtjf10N+TjaGl1JKLmZuI6hQ8Gyv0tEvjYR +z5p4oj1gW4d20/o629YexYN7ywV6Cy4Fom/EWrQ=
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 LNcSz1iI3m1O; Thu, 18 Apr 2019 13:56:44 +0200 (CEST)
Received: from rznt8102.rznt.rzdir.fht-esslingen.de (rznt8102.rznt.rzdir.fht-esslingen.de [134.108.29.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mail.hs-esslingen.de (Postfix) with ESMTPS; Thu, 18 Apr 2019 13:56:44 +0200 (CEST)
Received: from RZNT8114.rznt.rzdir.fht-esslingen.de ([169.254.3.34]) by rznt8102.rznt.rzdir.fht-esslingen.de ([fe80::f977:d5e6:6b09:56ac%10]) with mapi id 14.03.0415.000; Thu, 18 Apr 2019 13:56:44 +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+5PiQgACaJoCAAlYz0A==
Date: Thu, 18 Apr 2019 11:56:43 +0000
Message-ID: <6EC6417807D9754DA64F3087E2E2E03E2D2BF50C@rznt8114.rznt.rzdir.fht-esslingen.de>
References: <C130E1D0-CEDB-4999-9FF7-1D64BE5C6CCA@akamai.com> <6EC6417807D9754DA64F3087E2E2E03E2D2B54FA@rznt8114.rznt.rzdir.fht-esslingen.de> <6CAFDA89-B6CE-4178-A0D1-78259D88F3D8@akamai.com>
In-Reply-To: <6CAFDA89-B6CE-4178-A0D1-78259D88F3D8@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.57.209]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/6_kMkOfcjptjgZLfNYzekgXYeqs>
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 11:56:52 -0000

Hi Jake,

> Hi Michael,
> 
> This response leads me to believe maybe we aren't fully understanding each
> other's
> positions, and are perhaps talking past each other.
> 
> Maybe I haven't been clear enough explaining my position:
> My claim is that the data store for networking-specific configuration and
> operational state is what's most worth modeling as part of the TAPS effort.

Actually I think we fully agree on that.

> (And probably NOT the calls in the API itself.)

+1

> Do you think that captures our disconnect, or do you think it's something
> else?

Well, I don't think there is a disconnect. I don't disagree to use of YANG. We all know that it is a very powerful data modeling language with *many* cool features.

I'd just like to ensure that the pros and cons of using YANG in this specific context are well understood. As far as I can tell, YANG has been built for mostly for NETCONF (and RESTCONF) and I believe that this has influenced design decisions. As noted in Section 1.1 of draft-jholland-taps-api-yang, NETCONF (or RESTCONF) may not be the key focus for TAPS. So, unlike for many other data modeling use cases in the IETF focusing on NETCONF/RESTCONF, one *could* raise the question whether YANG is indeed the best data modeling language. As an IETF contributor believing in IETF technology, I am perfectly fine with answering "Yes".

> If it does roughly capture the disconnect, a couple of follow-up questions:
> - do you disagree with this position?
> - do you think that if you became convinced of this position, that YANG
> would
>   be clearly preferred to the other systems you've pointed out?

Let me state once again: I am perfectly fine with using YANG. Otherwise I would hardly look myself into YANG models for TCP...

Anyway, I am not working on running code, i.e., my opinion does not matter much in reality. The important question is if owners of running code that shall make use of TAPS would agree that YANG is the "clearly preferred system". I simply don't know that. But I have dealt in the past with sectors of industry that would be able to give quite a number of reasons why the answer to that question would be "no", in particular if the use case is not tied to NETCONF/RESTCONF. I don't know if others in the TAPS working group have made similar experiences. In any case, those use cases were quite different to TAPS, and so maybe whatever I have seen in the past may not be relevant at all.

Thanks

Michael


 
> I'm happy to discuss further (if needed) once we've nailed down what
> exactly needs
> better explanation and consensus, but I didn't want to get too sidetracked if
> I've
> misunderstood where we disagree.
> 
> Thanks and regards,
> Jake
> 
> On 2019-04-16, 07:35, "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>
> wrote:
> 
>     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
>     >
> 
>