@Dave @JvD

Thanks for the feedback. I think I can get on board with defaulting the DS 
columns to ‘edge’ and ‘tr’. I was thinking the CDN columns might be useful if 
the user just wants to set it CDN-wide and not individually on each DS, but I 
guess if we default it as part of the upgrade migration, we should also provide 
an API endpoint to set the routing names on all DSes in a CDN to a single 
value, thus still providing a “per-CDN” option. Would a “bulk” update also be 
useful, in case a user wants to update a handful of DSes to the same routing 
names at once?

@JvD Re: TR_PROFILE vs. DS_PROFILE
The default would come from a TR_PROFILE linked to the CDN, and the override 
would come from a DS_PROFILE linked to that specific DS. I looked into those 
options to cover all my bases, but I think adding columns to at least the DS 
table and not touching profiles at all is the better option.

-Rawlin

On 8/4/17, 8:04 AM, "Jan van Doorn" <j...@knutsel.com> wrote:

    Agree with Dave on
    
    [*DN] we should default the database column to "edge" for DNS and "tr" for*
    *http.  Then we don't have to do the null check.*
    
    If we do that, we can make the columns mandatory, and it makes sense
    they're not in the DS_PROFILE. Also makes it so we don't have to have a CDN
    wide setting. (and Rawlin, I think you mean to say DS_PROFILE rather than
    TR_PROFILE type to add the param to if we chose to do that?? Or was it the
    default that goes into TR_PROFILE and the override into DS_PROFILE?).
    In any case - if we make the columns NOT NULL and default them to "tr" and
    "edge", I'm +1 on columns in the deliveryservice table.


    
    Cheers,
    JvD
    
    On Fri, Aug 4, 2017 at 7:12 AM Eric Friedrich (efriedri) 
<efrie...@cisco.com>
    wrote:
    
    > Hey Rawlin-
    >   Zhilin has also been working on a very similar feature which was
    > proposed on this mailer last month:
    > 
https://lists.apache.org/thread.html/51d7ed1ae65a3697c39edd00236e6f3897da37ef5b24ac452a17cabb@%3Cdev.trafficcontrol.apache.org%3E
    > <
    > 
https://lists.apache.org/thread.html/51d7ed1ae65a3697c39edd00236e6f3897da37ef5b24ac452a17cabb@
    > <dev.trafficcontrol.apache.org>>
    >
    > Can you please work him to ensure we don’t duplicate work and that if both
    > solutions are needed they will work together?
    >
    > On Aug 3, 2017, at 3:57 PM, Peters, Rawlin <rawlin_pet...@comcast.com
    > <mailto:rawlin_pet...@comcast.com>> wrote:
    >
    > Sorry, Outlook converted my numbered list poorly. I’ve corrected the
    > numbering (items 1-3) below.
    >
    > On 8/3/17, 1:52 PM, "Peters, Rawlin" <rawlin_pet...@comcast.com<mailto:
    > rawlin_pet...@comcast.com>> wrote:
    >
    >    Hello All,
    >
    >    I’ve been working on adding support for configurable per-CDN and
    > per-DeliveryService routing names [1] (what are currently
    > hardcoded/defaulted to ‘edge’ and ‘tr’ for DNS and HTTP Delivery Services,
    > respectively), and I have a few things to propose.
    >
    >
    >      1.  Add a column to the CDN table for the DNS and HTTP routing names.
    >
    >
    >
    >    I’ve currently been working off the assumption that per-CDN routing
    > names would be configurable by adding ‘http.routing.name’ and ‘
    > dns.routing.name’ parameters to a profile of type TR_PROFILE using the
    > ‘CRConfig.json’ config file. To me this seems like bad UX because the user
    > has to click through multiple steps and fill in multiple fields in the UI
    > just to change the CDN’s routing names. It also requires joining a few
    > different tables in the DB just to find the parameters per-CDN. For that
    > reason, I think it would be better if ‘dns_routing_name’ and
    > ‘http_routing_name’ were added as columns of the ‘cdn’ table, and changing
    > them via the UI would follow the same process as choosing the CDN’s domain
    > name. Because the routing names would be the CDN-wide defaults, the ‘Edit
    > CDN’ window feels like the most natural place to put it.
    >
    >
    >      2.  Values for per-DeliveryService routing names could live in one of
    > a couple different areas:
    >         *   New columns in the delivery_service table
    >         *   Parameters in a DS Profile
    >
    >    As the developer, my vote would be for Option A because it seems like
    > it would lead to cleaner code in Traffic Ops because the routing names
    > would be readily-available when handling a DeliveryService. You wouldn’t
    > have to also fetch its profile then dig through it to find the routing
    > names. A downside could be that adding columns to an already-overcrowded
    > table isn’t ideal.
    >
    >    Option B is less appealing to me but might have some advantages such as
    > keeping the number of columns down in the DeliveryService table. However,
    > DS Profiles currently seem to be geared more towards the Multi-site Origin
    > feature in generating specific ATS configuration (parent.config) and less
    > towards a “junk drawer for optional config”. As the routing names would
    > affect the entire DS and multiple config files, it doesn’t seem right to
    > have it as a profile parameter using ‘CRConfig.json’ as the config file. I
    > wasn’t around when DS Profiles were introduced, so if you are more 
familiar
    > with their purpose/origin and think this is a good fit for them, I’d like
    > to hear your advice.
    >
    >
    >      3.  If per-DeliveryService routing names are not set explicitly for a
    > DS (i.e. the column is null), then the DS will use the per-CDN routing
    > names as a default. If the per-CDN routing names are unset, they will
    > default to the current values of ‘edge’ and ‘tr’. So the lookup hierarchy
    > would be DS.routing_names -> CDN.routing_names -> default ‘edge/tr’.
    >
    >    I’d like to know what you think of these proposals, and any
    > advice/feedback is welcome.
    >
    >    Best regards,
    >    Rawlin
    >
    >    [1] https://issues.apache.org/jira/browse/TC-287
    >
    >
    >
    >
    

Reply via email to