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