These forums are a place for learning, helping and sharing experiences with others about any of our products. Feel free to ask a question and get answers from our community and our most advanced users.
Note that these are public forums - anyone can view the discussions here.
Announcements | |
CloudShell | TestShell |
Developers | BI (Business Inteligence) |
This is where you can suggest your ideas to help and improve the product for everyone.
Please make sure to read the following article before posting a new idea, to get more information about the required information and ideas lifecycle.
Feel free to vote and comment on other ideas to promote them.
Thanks for everyone who suggested the ideas and voted for them.
Find, download and share integrations that can extend and enhance the CloudShell experience.
Integrations have several levels:
Certified - Officially tested and supported by Quali.
Preview - Provides a sneak peek to what the Quali team is developing. Officially supported by Quali. Feel free to experiment and comment, but please take into consideration that it is not yet tested and released.
Community - Integrations shared by community users. Feel free to look into what other users have contributed, please take into consideration that these integrations are not tested by Quali.
To learn more about creating Shells and integrating with CloudShell, use the following links:
CloudShell's Dev Guide | Configuration Management |
Getting started with Shells | Extending CloudShell with Cloud Providers |
Getting started with Orchestration | API Guide |
To share your integration, follow the instructions in this guide.
David Sun suggested an idea (#5107) · May 25, 2020 at 11:04 PM · blueprintsetup
What is the problem?
----------------------
These are the artifacts necessary to reproduce the Cloudshell experiences I talk about.
Sample Blueprints:
Shell:
Example task(s):
Some examples from alternative solutions:
https://www.eve-ng.net/wp-content/uploads/2019/11/34_sd-wan_viptela.png
https://www.gns3.com/api/v2/assets/photo/58d42f9925e6cba6338b7a4f/GNS3-Topology.PNG
Users are not incentivized to use Cloudshell over other alternatives for virtual network lab testing as users consider it is cumbersome to deal with relatively small topologies on Cloudshell(20-30 nodes) when compared with the existing user interfaces they are using.
This idea post goes into issues of scale, but delivery of the item #3 would be a good start as items #1 & #2 likely involve a major UI technology overhaul on the backend.
Things to note:
All the resources we are dealing with in this specific use case are abstract/ephemeral in nature. (virtual network operating systems...nxosv, iosxrv, csr1000v, vmx, veos...etc)
Why is it a problem?
------------------------
We are looking to use Quali in our organization like Juniper's vLabs and Cisco's dCloud. Instead of fixed topologies, we would allow users to define their own blueprints.
With the current alternatives :
coupled with some of the missing UI features to deal with multiple nodes + issues pointed out here , there is little incentive for our users to switch from their personally hosted labs onto the Quali platform for virtual lab testing.
The one major drawback to the emulation softwares that our users are using (GNS3/EVE-NG) is the fact that these solutions have not been able to address the problem of linear scaling for virtual node provisioning/interconnection on a massive scale. The net result is that many people run their production emulations on a single box (or 2-3 at max...often times in isolated environments) versus in a massively shared distributed computing cluster. (the key differentiating word here is "massive")
This often results in scaled down replications of production environments as well as several duplicated configuration setups due to the lack of shared environments. These environments can easily be consolidated with Quali's Cloudshell environment provisioning/scheduling capabilities.
On top of that home lab users are generally limited to topology size of 50~100 nodes when using these emulation software, due to the compute limitations of their hardware. Generally this acceptable for most home users. However, Rackspace is looking to run much larger/higher fidelity production topologies (1000-5000).
We have been able to address the linear scaling compute issue to emulate/interconnect several hundred virtual nodes (which requires much more fine tuning than the out of the box Cloudshell vSphere integration).
We are confident we can use the Cloudshell Automation API to integrate these back end technologies to the Cloudshell front-end UI. It is this ability to define arbitrarily large topologies (while simply adding more compute when needed) that gives this solution a very distinct appeal to our users over the alternative platforms (GNS3/EVE-NG). Were these front end UI enhancements made to support several hundred nodes, it will undoubtedly drive rapid adoption of the Quali platform within our organization.
As it stands the Cloudshell UI is just not able to represent the number of nodes we would like to see without the UI lagging out.
The topology sizes we plan to run for our architect/engineering team, can be 150-500 nodes at just a backbone level (excluding DC), with all backbone nodes required to be represented individually on a canvas (not just as a consolidated bubble). Ideally this would look like a google maps pan/zoom behavior.
These UI issues within Cloudshell are considered minor annoyances with small scale topologies, but can still be attractive to our users as a training/testing option with the snapshot and environment provisioning functions. This will help drive some adoption. However, these web UI issues present major barriers to adoption when spinning up medium to large scale topologies.
How do you solve the problem today?
- Normal users:
Select individual nodes and reposition them. Even this is considered to be cumbersome in a 20 - 30 node topology.
Have a separate diagram up (Juniper vLabs is a good example)
- Power users/devs:
Programatically reposition nodes(resources) by translating a graph data structure (node/links) and node coordinates from another drawing program into Packaging API commands that would be reflected on a Blueprint.
This is how the 100/200 node topologies were generated. We originally started out with a 500 node scale test, but trimmed it back to 100 when we encountered UI issues.
How would you ideally solve the problem?
This is visually one of the closest examples I could find.
https://observablehq.com/@grantcuster/using-three-js-for-2d-data-visualization
This is based on threejs, which is a WebGL based JS API, but can be accomplished with other technologies like HTML5 canvas. My research into this suggests that WebGL is best suited for the task, with SVG based technologies not being suited at all for large scale topology rendering.
There are plenty of other articles on the subject.
The other way I would envision large scale topologies being rendered is using a google maps style pan/zoom behavior.
This would include a search bar that would center in on a resource when the search function is called. (Example: search "Tel Aviv" in google maps)
My group was originally planning to develop a front end UI, but it is just not our forte. I understand Quali Cloudshell is more than just a UI, and lots of work has gone into the development of the backend APIs/documentation.
We would like to integrate our back-end network emulation technologies with the Cloudshell UI and take advantage of the scheduling components to give users access to these large scale virtual labs.
How big is the problem (frequency of impact, who is impacted)
Users will come and see the new Quali platform and some will be early adopters due to the enviorment provisioning capabilities, but without a "killer feature" (in this case, the ability to render large virtual topologies onto a single canvas), many users will likely view the Quali platform as a novelty, not relevant to their line of work and continue defaulting to their own home lab solutions.
David Sun commented · May 26, 2020 at 01:40 PM
I think for larger/hyperscale virtual lab topologies, defaulting to a list view is desirable, and having the ability to instruct Cloudshell not render the topology so it won't lag out when users are dealing with the reservation in the Cloudshell web UI.
We can refer users to a custom in house written GUI for topology exploration, while still sending them through Cloudshell to schedule the reservation + provisioning.
For small - medium topologies (say up to ~200) we would still ideally have users go through Cloudshell. We would like to see Cloudshell enhanced to support up to 200 nodes without issue.
Users who opt for using Cloudshell to build these hyperscale topologies would naturally be expected to know how to work with graph data as it is impractical to use a UI to draw these networks.
We ideally would like to see some form of easy graph data (topology) import for our users in these larger scale topologies versus adding elements with the Packaging API. Perhaps something simple like graph-exapmlejson.txt as an import option within the context of the blueprint to populate <Routes></Routes> (links) and <Abstract Resources></Abstract Resources> (nodes)
If not, it is not unreasonable for us to develop a translation layer for our users to achieve this import function.
Pascal Joly commented · Jun 11, 2020 at 09:18 PM
Hi David,
Thanks for taking the time to submit your detailed idea and suggestion to scale our graphical blueprint design. We introduced recently in CloudShell Pro the concept of labels, that can partially address your issue of grouping elements. For a large topology such as the one you are mentioning (200 nodes), we typically would recommend to use the list view, also available in CloudShell. We don't have an immediate plan to address hyperscale topology graphs directly in the product, however we can certainly consider some API enhancements that would enable you to better interface with such a purpose-built tool.
Extend your CloudShell capabilities by creating your own Shells. Share your knowledge with the world and be part of our growing community
Help us make things better. Share your great idea or vote for other people's.
Blueprint Global Input, Type Hidden
have the option to run some of the same setup script optionally in a different blueprints
Activate attribute change requests in the Default Sandbox Setup
Block user interaction during Setup
Resource has the Ability to display an attribute of the designer's choice on the canvas
Add to Device 'Wheel' Context Menu a "view connections" option