Jump to: navigation, search

Difference between revisions of "Merlin"

(Created page with "=Rationale= Openstack (OS) is known as a system 'made by developers for developers'. When it comes to UX, it sometimes means that one should read comprehensive documentation (...")
 
Line 4: Line 4:
 
A good UI makes it easier to compose correct YAML input which won't cause cryptic errors. It does so by replacing snippets of YAML document with a composable visual elements, limiting the available input choices to the ones that are compatible for sure, and providing sensible validation hints for the dependencies that are not so unambiguous. Such graphical representation may be less flexible than the raw YAML document, but it doesn't have to entirely replace the existing UI - e.g. to compose a new HOT template one can use the new UI alongside with the old one, watching as the changes in the graphical model are reflected in the YAML document.  
 
A good UI makes it easier to compose correct YAML input which won't cause cryptic errors. It does so by replacing snippets of YAML document with a composable visual elements, limiting the available input choices to the ones that are compatible for sure, and providing sensible validation hints for the dependencies that are not so unambiguous. Such graphical representation may be less flexible than the raw YAML document, but it doesn't have to entirely replace the existing UI - e.g. to compose a new HOT template one can use the new UI alongside with the old one, watching as the changes in the graphical model are reflected in the YAML document.  
  
It may be tempting to propose a single UI for all Openstack projects requiring complex input data, but even three aforementioned projects are so different that such goal is clearly a lost cause. Still it would be viable to create a client-side framework for building such UIs - so the different projects could utilize it. The project *Merlin* aims to provide such framework, which may be eventually integrated into [https://wiki.openstack.org/wiki/Horizon Horizon] or used by it as a third-party library (like [http://d3js.org D3.js]).
+
It may be tempting to propose a single UI for all Openstack projects requiring complex input data, but even three aforementioned projects are so different that such goal is clearly a lost cause. Still it would be viable to create a client-side framework for building such UIs - so the different projects could utilize it. The project '''Merlin''' aims to provide such framework, which may be eventually integrated into [https://wiki.openstack.org/wiki/Horizon Horizon] or used by it as a third-party library (like [http://d3js.org D3.js]).

Revision as of 17:29, 23 July 2014

Rationale

Openstack (OS) is known as a system 'made by developers for developers'. When it comes to UX, it sometimes means that one should read comprehensive documentation (or even worse, find out the state of things through examining the source code) just in order to provide correct input data. That is especially true for projects, which employ their own YAML-based DSLs to describe the input data (like Heat, Murano or Mistral). Such data may include a lot of inter-dependencies, constraints and other things that make it very easy for inexperienced developer to make an error. And once they make the error, they face another daunting task: find out what's wrong with the data.

A good UI makes it easier to compose correct YAML input which won't cause cryptic errors. It does so by replacing snippets of YAML document with a composable visual elements, limiting the available input choices to the ones that are compatible for sure, and providing sensible validation hints for the dependencies that are not so unambiguous. Such graphical representation may be less flexible than the raw YAML document, but it doesn't have to entirely replace the existing UI - e.g. to compose a new HOT template one can use the new UI alongside with the old one, watching as the changes in the graphical model are reflected in the YAML document.

It may be tempting to propose a single UI for all Openstack projects requiring complex input data, but even three aforementioned projects are so different that such goal is clearly a lost cause. Still it would be viable to create a client-side framework for building such UIs - so the different projects could utilize it. The project Merlin aims to provide such framework, which may be eventually integrated into Horizon or used by it as a third-party library (like D3.js).