You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Rohit Yadav <ro...@shapeblue.com> on 2019/10/02 09:22:29 UTC

Re: [DISCUSS] Primate - new UI for CloudStack?

All,

Thank you all for your positive support so far. I just want to share that I will start a voting thread on Monday next week, in case there are any further feedback, objections and concerns on the proposal before that.

Regards.

Regards,
Rohit Yadav

________________________________
From: Syed Ahmed <sa...@cloudops.com>
Sent: Monday, September 23, 2019 8:59:17 PM
To: dev@cloudstack.apache.org <de...@cloudstack.apache.org>
Cc: users@cloudstack.apache.org <us...@cloudstack.apache.org>
Subject: Re: [DISCUSS] Primate - new UI for CloudStack?

Just watched the video of the Presentation Rohit. Great works so far looks
good! Having worked around to change the cursed system.js file I'm
definetly +1 on this

On Sun, Sep 22, 2019 at 10:20 PM Rohit Yadav <ro...@shapeblue.com>
wrote:

> Hi Sid,
>
> I've put the proposal on the wiki for reference:
>
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/Proposal%3A+CloudStack+Primate+UI
>
>
> Regards,
>
> Rohit Yadav
>
> Software Architect, ShapeBlue
>
> https://www.shapeblue.com
>
> ________________________________
> From: Siddhartha Kattoju <sk...@cloudops.com>
> Sent: Friday, September 20, 2019 20:47
> To: dev@cloudstack.apache.org <de...@cloudstack.apache.org>
> Cc: users@cloudstack.apache.org <us...@cloudstack.apache.org>
> Subject: Re: [DISCUSS] Primate - new UI for CloudStack?
>
> +1 from me as well.
>
> Just a side note: I feel like there is a high risk of tldr here. May be its
> just me. It may be would be good to put most of the details in a wiki page
> and just post a summarized version on the list ?
>
> *Sid Kattoju*
>
> Cloud Software Architect | Professional Services
>
> c 514.466.0951
>
>
> * <https://goo.gl/NYZ8KK>*
>
>
>
>
> On Fri, Sep 20, 2019 at 8:10 AM Rohit Yadav <ro...@shapeblue.com>
> wrote:
>
> > All,
> >
> >
> >
> > == Summary ==
> >
> >
> > I have been working on a new, modern role-based UI for Cloudstack
> (project
> > Primate: https://github.com/shapeblue/primate) I demoed this for the
> > first time at CCCNA19 last week and it was very well received. It was
> > discussed, at length, as an item in the hackathon and the general
> consensus
> > there was that this could become Cloudstacks new UI. We discussed a plan
> to
> > achieve that and now I’m bringing that plan to the list for discussion.
> >
> >
> >
> > == Background ==
> >
> >
> > The current CloudStack UI has grown technical debt over time and it has
> > become harder to extend, develop, maintain in the long run, it is also
> > difficult for new contributors to learn and get started. Since late
> 2018, I
> > started working on a side-project with the aim to create a modern
> > progressive and role-based declaratively-programmed UI for CloudStack,
> > called Primate. Before creating Primate, I set out to create a list of
> core
> > requirements of what would give us an extensible, modern UI that was easy
> > to develop now and in the future. These are the requirements I came up
> with:
> >
> >   *   designed from ground up to be  a complete replacement for our
> > combined user/admin UI
> >   *   to respect all entities in cloudstack and not make assumptions on
> > use-cases of cloudstack
> >   *   data-driven and auto-generation of UI widgets and to be easy to
> > learn, develop, extend, customise and maintain.
> >   *   declarative programming
> >   *   support for API discovery and parameter completion like CloudMonkey
> >   *   support for custom roles
> >
> >
> >
> > I looked at existing Cloudstack UI projects but none of them fully
> > satisfied all these requirements and started Primate.
> >
> >
> >
> > == Project Primate ==
> >
> >
> > For the implementation, I compared a couple of opensource JS and UI
> > frameworks and decided to use VueJS (https://vuejs.org<
> https://vuejs.org/>)
> > which is a JavaScript framework and AntD (https://ant.design<
> > https://ant.design/>) which is a UI design language with a well-defined
> > spec, styling guide, and an implementation-specific to VueJS. VueJS was
> > selected because among a few other JS frameworks I surveyed it was the
> > easiest (for me) to learn and get started. I also surveyed a few UI
> > frameworks and selected AntD because it came with a well-defined spec,
> > styling guide and VueJS specific implementation which gives several
> > re-usable components out of the box.
> >
> >
> >
> > During the development of Primate, I used my previous experience from
> > CloudMonkey and another PoC angular-based UI ProjectX, and it currently
> > supports:
> >
> >   *   role-based UI based on API autodiscovery
> >   *   auto-generated action/API forms with parameter completion
> >   *   declarative component-driven views
> >   *   modern programming methodologies (hot reloading, npm based
> > build/run/compile etc.)
> >   *   decoupled from core Cloudstack code
> >   *   dynamic translation (most/many of old translation files ported)
> >   *   includes dashboards, async job/API polling, all list views/tables
> > per the old UI
> >   *   browser history and url/route driven navigation
> >   *   support for mobiles/tables/desktop screens
> >   *   configuration driven UI customisation (of navigation, icons, APIs
> > etc)
> >
> >
> >
> > To get to this point, I’ve had some valuable help from Anurag and Sven et
> > al at EWerk.
> > The development strategy to support all APIs out of the box in a
> > data-driven way gives a functioning UI and scope to customise
> > views/components over time. Support to declaratively add actions on all
> > views and some action/customisation (ex. vm/zone deployment wizard) is in
> > progress. The work was recently discussed and demo-ed at CCCNA19, the
> > slides of my talk are here:
> > https://rohityadav.cloud/files/talks/cccna19-primate.pdf
> >
> >
> >
> > == Discussion ==
> >
> >
> >
> > With this discussion thread, I want to propose the idea hatched in the
> > recent hackathon for Primate to become the next UI for CloudStack. I’d
> like
> > to seek everybody's thoughts, feedback, comments, and reviews on that
> idea.
> >
> > Obviously, part of any new UI project would mean that the existing UI
> > development would eventually get abandoned. In the hackathon we
> discussed a
> > potential plan to formally deprecate the old UI. I therefore think that
> > this is something that needs discussion here and a vote if its going to
> > happen.
> >
> >
> >
> > In summary, that plan is as follows (with proposed timeframes in
> > [brackets]) :
> >
> >   *   allow the community to download & experience the UI
> >   *   discuss and gather consensus around Primate [now]
> >   *   take a vote on whether to take this plan forward [next few weeks]
> >   *   create a new repository under Cloudstack and accept Primate
> > codebase, work on initial documentation with getting started, styling
> guide
> > etc (i.e. make this part of the cloudstack project) [after the vote, if
> > agreed]
> >   *   collaborate to get primate to be functionally on-par with current
> > CloudStack UI, gather feedback, issues, iterate development/testing etc.
> > [2-3 months before winter LTS release]
> >   *   release Primate with winter LTS 2019 release as a technical preview
> > and also give notice of deprecation plan for existing UI
> >   *   define a release approach (separate repo/releases with separate
> > rpm/deb repo, or use git subrepo/subtree/submodule with CloudStack
> > repository?) [Before winter LTS release?]
> >   *   optionally  stop taking feature FRs in old UI and create upgrade
> > path/plan documentation from old UI to Primate
> >   *   Release Primate GA in summer LTS 2020 release as the new UI, but
> > still ship old UI with a final deprecation notice
> >   *   old UI reaches EOL in Winter lts 2020, old UI codebase is removed
> > from codebase (this gives one year period from winter LTS 2019 Primate
> > technical preview for community and users to discuss/comment/upgrade)
> >
> >
> >
> > So, the last release of the old UI would be in summer 2020 LTS. According
> > to our LTS schedule, this would be supported under LTS until summer 2022
> > (but, with no new UI functionality after summer 2020)
> >
> > The repository is currently available here:
> > https://github.com/shapeblue/primate and has instructions on getting
> > started – I’d encourage everybody to look at the work to date.
> >
> > If anybody is keen to contribute in the meantime, I can receive
> > bugs/requests/feedback as new issues:
> > https://github.com/shapeblue/primate/issues
> >
> > Links:
> >
> > Git repository: https://github.com/shapeblue/primate
> >
> > Issues: https://github.com/shapeblue/primate/issues
> >
> > Screenshots: https://twitter.com/rhtyd/status/1171224978714288129
> >
> > CCCNA19 talk slides:
> > https://rohityadav.cloud/files/talks/cccna19-primate.pdf
> >
> >
> > Thanks and regards.
> >
> > Regards,
> >
> > Rohit Yadav
> >
> > Software Architect, ShapeBlue
> >
> > https://www.shapeblue.com
> >
> > rohit.yadav@shapeblue.com
> > www.shapeblue.com<http://www.shapeblue.com>
> > Amadeus House, Floral Street, London  WC2E 9DPUK
> > @shapeblue
> >
> >
> >
> >
>
> rohit.yadav@shapeblue.com
> www.shapeblue.com<http://www.shapeblue.com>
> Amadeus House, Floral Street, London  WC2E 9DPUK
> @shapeblue
>
>
>
>

rohit.yadav@shapeblue.com 
www.shapeblue.com
Amadeus House, Floral Street, London  WC2E 9DPUK
@shapeblue