On Fri, Aug 2, 2019 at 4:28 PM Dave Neuman <neu...@apache.org> wrote: > I do think large changes like this might be better first discussed and > requirements understood before we write code. I realize that it's hard to > actually accomplish that with so many different opinions, but I do think > it's the right thing to do. Having discussions up front lets us think > through things as a group and in my experience often leads to a better > solution.
+100 on this. Internally at Comcast some of us have been kicking around the idea of a blueprint design process, where the general idea is you: 1. get some initial feedback from a smaller set of stakeholders on requirements 2. given an initial set of requirements, fill out a blueprint template describing the problem, proposed solution and design, areas of impact, etc 3. open a PR of just your new blueprint and ask the community for input 4. any community stakeholders can provide feedback directly on the blueprint PR 5. once design feedback has been addressed, the blueprint PR is merged 6. implementation of the blueprint will begin This process basically gives all interested parties the ability to provide input on a design before the implementation begins, so that we can better address everyone's concerns and ideas. If there are certain trade-offs to be made as part of the design, those trade-offs would be agreed upon in the PR review and included in a section of the blueprint for posterity. There are multiple other advantages to the blueprint process as well, such as being a good starting point for user-facing documentation, a resource for QA to verify the feature against, and information about what's new in a release. Writing up a blueprint would be optional, of course, but my hope is that by doing it, the benefit of writing a blueprint first will speak for itself and encourage contributors to follow the process. If you're curious what a blueprint could look like, Jeremy and I have been pitching the idea here for feedback (it includes a template along with a couple examples of completed blueprints): https://github.com/ocket8888/trafficcontrol/pull/2 On Fri, Aug 9, 2019 at 3:45 PM Robert Butts <r...@apache.org> wrote: > > Architecture wise, I'm in favor of the traffic ops sending the specific > > configuration to the cache. Main reason is taking features like "DS > > *individual *automatic deployment" > > into account, where we would like to be able to control "which server get > > which configuration and when" - e.g. edge cache "A" can be assigned with a > > DS only after all its parents are aware of the DS. I believe that if the > > control of "what configuration is pulled" is in the hand of the cache, the > > complexity of the cfg distribution flow would increase and debug-ability > > would be very difficult. > > @nirs Those are valid points, and I don't want to steamroll over your > concerns. But on some level, I'm afraid our concerns are at odds, being > able to canary versus having a single config source. I have a couple ideas > how we might reconcile them. I don't think they necessarily have to be at odds. We could still have TO push the set of config data to the caches without having it push the actual config files themselves. The caches would then digest the config data and generate their own config files from that. We'd get both the ability to canary config generation and the ability to push data from TO to ORT instead of ORT polling TO for data. - Rawlin