GithubHelp home page GithubHelp logo

Comments (5)

surajssd avatar surajssd commented on May 24, 2024

Thanks @abonas for taking time to go through the spec, here is what I could elaborate on:

  1. "The resource is associated with a root service" - what is a root service?

The root service is where everyone is sending traffic to. Like if you are rolling out new version of your application webapp using TrafficSplit. And everyone talking to webapp, uses the URL http://webapp to talk to it.

Even though going further you might have various other services like webapp-v1 and webapp-v2. The root service here is still webapp.

  1. In this example: https://github.com/deislabs/smi-spec/blob/master/traffic-split.md#specification 3 services receive the following traffic distribution: 10m, 100m, 1500m. What is "m"? what do 10,100, 1500 mean in relation to each other? How do they form 100% of the traffic?

Here the specification tries to align itself with the way kubernetes defines it's resources. So basically 1500m == 1.5, 100m == 0.1, etc. In the Istio implementation of TrafficSplit we add those all up and calculate the relative percentage to form 100%.

  1. In this section:
    https://github.com/deislabs/smi-spec/blob/master/traffic-split.md#workflow
    there is an example with traffic split of 1 and 0m. what does 1 mean? all traffic? it also doesn't have the "m" suffix while zero does have it

Yes 1 means entire traffic sent to it. The m with zero has no sense in general terms because it is zero.

from smi-spec.

abonas avatar abonas commented on May 24, 2024

Thanks @abonas for taking time to go through the spec, here is what I could elaborate on:

  1. "The resource is associated with a root service" - what is a root service?

The root service is where everyone is sending traffic to. Like if you are rolling out new version of your application webapp using TrafficSplit. And everyone talking to webapp, uses the URL http://webapp to talk to it.

thanks for your explanation!
the definition of a root service should be clearly stated as part of the spec. see issue #44.

Even though going further you might have various other services like webapp-v1 and webapp-v2. The root service here is still webapp.

  1. In this example: https://github.com/deislabs/smi-spec/blob/master/traffic-split.md#specification 3 services receive the following traffic distribution: 10m, 100m, 1500m. What is "m"? what do 10,100, 1500 mean in relation to each other? How do they form 100% of the traffic?

Here the specification tries to align itself with the way kubernetes defines it's resources.

why does it need to align?
resources in k8s are not the same as the traffic flowing through it.

So basically 1500m == 1.5, 100m == 0.1, etc. In the Istio implementation of TrafficSplit we add those all up and calculate the relative percentage to form 100%.

the math here is still unclear to me. how do those numbers sum up to 100%?
it's not intuitive.
Moreover, even the Istio example itself has percentage in titles and then it's converted to "m" units - so user needs to constantly convert percentages to some other units.
That's not a good user experience IMO.

  1. In this section:
    https://github.com/deislabs/smi-spec/blob/master/traffic-split.md#workflow
    there is an example with traffic split of 1 and 0m. what does 1 mean? all traffic? it also doesn't have the "m" suffix while zero does have it

Yes 1 means entire traffic sent to it. The m with zero has no sense in general terms because it is zero.

sometimes entire traffic is referred to as 1000, sometimes 100, sometimes 1. The spec is not consistent and IMO makes things more complex than needed.

from smi-spec.

christian-posta avatar christian-posta commented on May 24, 2024

@abonas care to take a swing at getting a list of terms to be defined in the Glossary? And then we could all jump in and clearly define them?

from smi-spec.

grampelberg avatar grampelberg commented on May 24, 2024

@abonas Istio uses percentages, we purposely avoided percentages and went for weights instead (see the tradeoffs section for more details). Because of this, you don't need anything to add up to 100, or 1, or really anything. The weights are relative and extremely configurable on purpose. There's no reason you need to use the m terminology if you don't want to, whole numbers work as well.

from smi-spec.

abonas avatar abonas commented on May 24, 2024

@abonas care to take a swing at getting a list of terms to be defined in the Glossary? And then we could all jump in and clearly define them?

@christian-posta
#44

from smi-spec.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.