A question for the creators of XO
-
I dont think a lot of ppl use PHP anymore, its a good language to get started with coding but its not something you want to run in mission critical production environments.
I think node/java is a good choice for this project since it can be used for both backend and frontend, it runs smooth on pretty much all distros that supports it and now days a lot of ppl know node/java so it is easy to find ppl to code for you.
-
PHP is still widely used and there's some neat frameworks. But again, seeing the language only from its popularity is wrong. It's an entire "ecosystem" you need to look at:
- being reasonably good for your existing team (ie if your team like the language/framework or not, doesn't matter if it's personal taste, it will have an impact on the team performance)
- if the language is not too niche to easily find more devs when you grow
- that the language pros are worth it in your context (ie we don't specifically need something too complex to learn like Rust to build an UI): all about usage context. It's obviously different for an hypervisor or a toolstack
- there's a big enough ecosystem (libraries, packaging, sec updates etc.)
And probably other things I forgot. So as you can see, there's not one reason to adopt a language, but many and most of all them depend on the project and people around it.
-
@florent said in A question for the creators of XO:
@DustinB you are really asking to rewrite the full XO project in PHP so you can contribute? or did I miss something
since there is only 136K line of code to rewrite, maybe it can be a good weekend project ?I'm not, lol. I was pointing out what @jasonnix was seeming to ask.
-
@jasonnix said in A question for the creators of XO:
I want to make a panel for Xen
If by
make a panel for Xen
you mean a dashboard to visualize or controll a Xen-enabled host or the virtualized guests, I would suggest to start learning about XAPI or better XO API.How you design or implement such a panel is up to your ideas, capabilities and choice of the tools you are familiar with, be it Ruby, PHP, Java or Javascript. Also check out XCP-ng Center which is maintained by @michael-manley in a community effort and uses C# to controll Xen-enabled hosts.
-
Hello @olivierlambert,
As far as I have heard, JavaScript and Java programming languages are insecure. I don't know how true this is. I know VMware vCenter uses HTML5 in one mode, although some features are missing in this mode. -
Hello @gskger,
Thanks again.
In my opinion, one of the mistakes that Vates made was removing the XCP-ng Center. Citrix XenServer still supports XenCenter. -
@jasonnix said in A question for the creators of XO:
Hello @gskger,
Thanks again.
In my opinion, one of the mistakes that Vates made was removing the XCP-ng Center. Citrix XenServer still supports XenCenter.Vates didn't remove it, its a package maintained by the community, and only the community. Vates has their own project that they are building and maintaining.
-
@jasonnix As @DustinB already explained, Vates is the company behind XCP-ng and Xen Orchestra (XO). XCP-ng Center was (and still is) a community driven project not related to Vates. Search about the pro's and con's in the forum, there are a lot of good arguments. But for commercial customers, XOA is the way to go (and for most homelab user probably as well)
Last time I looked, XenCenter is now closed source and even behind a paywall (not sure about that), while Xen Orchestra is fully open source with all functionality in the from source version.
Since this is getting off-topic: did the communities feedback on your initial question help you to move forward? All good for your panel on Xen?
-
@jasonnix said in A question for the creators of XO:
Hello @gskger,
Thanks again.
In my opinion, one of the mistakes that Vates made was removing the XCP-ng Center. Citrix XenServer still supports XenCenter.Vates is not the creator of XCP-ng center, it is an effort of members in the community who ported Citrix XenCenter.
The official product to manage XCP-NG is Xen-Orchestra (XO) and XOlite.If you want you could contribute to the XCP-ng Center, the repository is still alive and can be found here: https://github.com/xcp-ng/xenadmin
-
@jasonnix please do more research before posting and telling things that are untrue. This behavior is not encouraged here.
-
@gskger, yes. I need to see if Ruby can easily do what I want.
-
@jasonnix said in A question for the creators of XO:
@gskger, yes. I need to see if Ruby can easily do what I want.
There's currently no up to date Ruby Gems so it is impossible or massively herculean task to do what your looking for. One of the following would need to be selected and then a lot of work would be needed to update it. They may even need to be extended to enable all of what your looking for. Alternatively a even larger amount of work would be required to develop a completely new XAPI ruby gem, as well as reading the associated developer documentation and source code of both Ruby, the XAPI and/or the Xen Hypervisor. Additionally all of the associated material of XCP-ng server software would need to be read and/or researched.
Before even starting to develop a panel! It would probably be better if you were to help with the C# development of XCP-ng Admin (XCP-ng Center). As for one one thing you wouldn't need to develop the Xen API (XAPI) interfacing code from scratch or updating on of the Ruby Gems.
https://rubygems.org/gems/xen
https://rubygems.org/gems/xen-ruby
https://rubygems.org/gems/xenapi
https://rubygems.org/gems/xen-ruby
https://rubygems.org/gems/rubiojr-pangea
https://rubygems.org/gems/rxenBy the way XCP-ng Center has never been supported by Vates. It has primarily been just XCP-ng (the hypervisor host server software) and Xen Orchestra. Now with the new addition of XO Lite which is in development, to be supported by Vates.
However XCP-ng Center was forked under the XCP-ng organisation of GitHub (for hosting), so the community alone can support and develop it. It has posts in the news section of the forums, so that the community can receive notifications of new releases of it, in this common location. This is down to it being able to be used with the XCP-ng server software, even though Vates doesn't provide support for using XCP-ng Center.
Also if your wondering why some of the releases have Vate's digital certificate signed to them, it was due to them aiding in getting the Extended Verification code signing certificate and the code signed. This was done especially at that point in time because code signing certificates have an extremely expensive cost, with extended verification certificates even more so. This cost would be out of the reach at the time for ordinary Open Source Community funded and maintained projects and software to afford.
Additionally the EV certificate would likely have required documentary proof of identity and/or a reputable witness to the documents. Something similar to acquiring a bank account, driving licenses or a passport. To prove that the person requesting the certificate is an upstanding citizen, and won't abuse the certificate for nefarious means.
-
@jasonnix If you want to do a part of the XO or XO Lite unfortunately you need to know Javascript and/or Typescript if you want to do the scripting part of the software.
Xen Orchestra needs Javascript and/or Typescript with NodeJS for its Web Socket support, the AJAX technologies and/or the high Asynchronous I/O so that it is highly scalable.
It has the dependencies it has as the User Interface (UI) and User Experience (UX) need to take into account, different screen resolutions, different devices and screen sizes. While still maintaining a consistent appearance. This is important for especially small screened devices (e.g. Tablet Computers and Smart Phones), early phones not long before smart phones would connect to the internet using the WAP protocol (https://en.wikipedia.org/wiki/Wireless_Application_Protocol or https://www.geeksforgeeks.org/wireless-application-protocol/).
This protocol used a different form of web pages and/or layout so was separate from the pages served to desktops, laptops and other devices (using normal http or https). On top of this in a lot of cases the WAP protocol would possibly also require its own web server software, or an extension to a currently existing one. So at least one of the dependencies included reduces the need to go through preparing source code, required for the now unified devices utilising the same http and https protocols. They can also have relatively the same code when using one of the dependencies.
This is due to the extremely large number of connections required, along with rapid dynamic updates of the content on the dashboard and the several of the specific sections. Especially the ones for the CPU, Memory, Disk and Network as its important for when monitoring the Xen Server and XCP-ng hosts.
It also has its own API so that other systems can be integrated into it with customer's own networks.
The Xen Orchestra software has gotten extremely large now so changing to a different language (e.g. PHP), even version 8.2 would be a very large undertaking. Thus requiring a large team and/or lots of time to make the switch, so what benefits would be gained to offset the costs?
-
Hi @john-c,
Thank you for your great tips.
As I said, I've heard that Java and JavaScript are insecure, but they also have some advantages that you and others have pointed out. For example, they have a large community of users and developers. Sorry, but I think that sometimes we don't choose the right path. For example, I'm sure that a professional PHP or Ruby developer can convince you that JavaScript is not the right choice for some projects. If PHP or Ruby were not good programming languages, then they would not have so many fans and everyone would use JavaScript. One of the reasons why JavaScript is so popular is that this language can be run by browsers. Something like a standard for the web. In my opinion, JavaScript like Windows operating system. It has capabilities and features, but the most important reasons for its popularity are its large number of users and ease of use.
My other question is, why is there no program under the operating system to manage XCP-ng? -
@jasonnix said in A question for the creators of XO:
Hi @john-c,
Thank you for your great tips.
As I said, I've heard that Java and JavaScript are insecure, but they also have some advantages that you and others have pointed out. For example, they have a large community of users and developers. Sorry, but I think that sometimes we don't choose the right path. For example, I'm sure that a professional PHP or Ruby developer can convince you that JavaScript is not the right choice for some projects. If PHP or Ruby were not good programming languages, then they would not have so many fans and everyone would use JavaScript. One of the reasons why JavaScript is so popular is that this language can be run by browsers. Something like a standard for the web. In my opinion, JavaScript like Windows operating system. It has capabilities and features, but the most important reasons for its popularity are its large number of users and ease of use.
My other question is, why is there no program under the operating system to manage XCP-ng?If you are talking about directly on XCP-ng operating system there are. In this case there's two options:-
- XO Lite
- xe
Though XO Lite is new and still being developed its designed to be hosted (embedded) on the currently beta XCP-ng version 8.3. It's aim is to provide a features consistent with a single host or single pool environment. It's aimed at home lab users mostly so they can perform basic tasks, without having to install any extra software on client computers. Though technically it's viewed and invoked remotely but the commands are done directly on the pool master XCP-ng host. The remote viewing and invoking is done on a client device through the web browser or if installed as PWA the browser engine.
The other option is xe its command line based so everything you wish to do needs to be typed out in the right syntax. Even tasks as basic as creating a new VM require multiple commands, several of which are from xe to perform a part.
To manage XCP-ng remotely you have the option of:-
- Xen Orchestra
- XCP-ng Center
- Xen Orchestra - XO CLI
- Xen Orchestra - REST API
A bit off topic are you any good with PowerShell?
If so how about reading up on the relevant documentation about XAPI and/or XO's API so that a PowerShell commandlet can be developed?