Virtual-Universe / Virtual-Universe-Early-Dev

Virtual-Universe-Earlty-Dev is the early development stage repository of Virtual Universe. When something is committed to this repository it does not mean it is final and there is no guarantee it will make it to a stable release right away if at all. Likewise the code in this repository is considered very unstable and only the faint of heart should use this code for testing purposes only. Please do not use this repository to run a production level grid.
https://virtual-planets.org
0 stars 0 forks source link

[Public Comment Period]: Consider possible implementation of an All-In-One Operating System #24

Open emperorstarfinder opened 5 years ago

emperorstarfinder commented 5 years ago

NOTE: This is a proposal being considered by the Core Developers and will be brought up for a vote in approximately 90 days at an upcoming Core Developers Meeting.

The comment period is open to team members, end-users, and those interested in the advancement of virtual worlds. Remember an end-user is someone who is using our software to power their grids or local sandboxes at home.

All comments must be on the topic and may not venture off-topic. If a comment is found to be venturing away from the topic it will be deleted by core developers.


Proposal: Consider creating an All-in-One operating system that provides the builtin ability to configure the webserver, grid servers, and region (soon also planet) servers without the need for reading through all kinds of configuration files.

Installation method:

The operating system would come with an installer based upon a disk image (.iso) which can be burned onto a CDRom, DVD Rom, or put on a USB stick for the purpose of installation.

The installer would ask the standard questions such as:

a) Region Location (i.e. New York) b) Language (i.e. what language you speak) c) Keyboard layouts d) Username and password information to log into the operating system e) Internet Address type (i.e. will provide a choice for dynamic IP addresses or Static IP address configuration) f) Grid Type (i.e. Grid Mode, HyperGrid Mode, Standalone Mode, etc.) g) System Name (i.e. Name of your grid). h) FQDN (i.e. your fully qualified domain name such as mygrid.com) i) Database info (i.e. DBHost, DBUser, DBPassword, DBName, etc) j) Control panel admin account info (i.e. Admin username, Admin password, Admin email, etc.)

After these questions are answered (additional questions may be added), the installer will then install the operating base operating system (consists of the base system, Database Server which will either be MySQL or SQLite depending on grid config type, a DNS server to handle the DNS records, Web Server likely will be apache for the website hosting, Email server, Web Control Panel to handle all administrative tasks of the grid such as configurations of various grid features like scripting engine and physics engine, etc.).

When the installation is complete you will be given a URL to your web control panel. (Note you will need to make sure you point your domain to your Name Servers at your domain registrar such as ns1.mygrid.com). You will then be asked to reboot the machine for the operating system to get fully started.

Once the machine has fully rebooted and you have pointed your FQDN to your nameservers at your domain registrar, you will be able to log in with the Admin Username and Admin Password you created during install. Once you are logged in you will be able to configure various things relating to your grid's website, Grid Services, and Region Services. You will not be able to spin up grid servers or region servers until you have done the configuration stuff via the control panel. Once that is complete you will be able to spin up servers via the control panel.

The process of updating the Operating System itself and the grid architecture and website software will be simple. The Web Control Panel will allow you the ability to do a check for updates along with the ability to install the updates. The update process will not affect your current configurations. If a new configuration item is introduced it will be added to your configuration list and will not be enabled until you decide to enable it. This will ensure that users who have a harder time with handling editing configuration files will not have to worry about broken configurations which ultimately break their grids.

The configuration settings for the website, grid services, and region services will be stored in a special database table in the database server. Each of the services will be able to communicate with the database server and obtain their settings from the special tables. The idea is that these tables will be in a separate database schema so they will not affect the database tables the website and grid and region services will generally write to.

More information will be provided here as it becomes available.

Proposal Amendment (July 29, 2019):

Consider providing a virtual machine image of the pre-configured services to ensure easy setup for those using VMWare Exsi or Xen Hypervisor

Submitted by: @boodie

Ana-Green commented 5 years ago

That sounds all familiar Have seen it like you start your setup and for easy use all gets done for you, well almost all, but some servers do not accept an ISO file to burn on the disk [ SAS ] as the OS is on it and MySQL etc , for starters it's a good thing at home, on schools and other hobbyist but on a Server already all on it then only a update will do I think.

BruceStarfinder commented 5 years ago

Good morning,

To avoid confusion here as it was not put in the initial post, there will be two types of installers.

The first type is the Operating System (OS) approach which will be for our Enterprise level customers who mostly handle all their hosting in-house without relying on the need for a data center. Examples of enterprise-level users are Schools, Commercial businesses, non-profit organizations, government agencies, etc.

The second type is more for general use case users such as those who have rented servers in a Data Center. For these use cases, there will also be an installer that you download from the project website based on your operating system that will install everything needed (i.e. Webserver, Database Server, Email servers, and the Virtual Universe architecture). Configuration of the grid will happen in the same way with both options. It will be via a website that will be builtin to the system.

The difference between the two use cases is that the enterprise-level users will be able to install a base operating system that is designed to operate fully and handle the needs of the grid while ensuring the hardware resources are properly aligned, which will save time for the IT folks at these organizations the time it generally would take to tweak the operating system to fully run the grid architecture.

Most hosting providers provide you a choice of operating systems if you are renting a dedicated server from them. Many hosting providers (not all) will, in fact, provide a means for you to install from your own .iso image through what is called LVM or KVM depending on the hosting provider. Other hosting providers will provide a hypervisor operating system such as the VMWare Hypervisor which allows you to upload the .iso image and create virtual machines. OVH is an example of a hosting provider that in fact does provide the VMWare Hypervisor as an operating system choice.

Best Regards, Bruce Starfinder Core Developer Work Group member Grid Architecture Development Work Group Grid Architecture Development, Database Development, Maintenance Second Galaxy Development Team

boodie commented 5 years ago

This looks like a good idea in a lot of ways. The easier it is to install the more it will get used and that is the ultimate goal! I will add a thing or two. I think that you should also create a fully made VM thet would work in several systems like ESXi or VirtualBox, or Hyper-V. Probably something like an .ova file with an expandable hard drive image. This would make an install crazy easy for someone using virtual machines. Another thing of note would be to have it be easily expanded as a grid grows. Start out with a 10 region grid size and make it expandable from there. You will need to take into consideration separate database servers and asset servers and such. The key is to think out what would be needed for the largest system you can think of and bake in the ability to expand as needed. If you do this at first you will then save time in the end when SG becomes 10 times the size of SL! The base operating system needs to be something FOSS like Linux and a common version with a very basic core install that only has services running that are being used and no more. Don't forget an easy way to upgrade components and modules as the need rises and maybe an automatic upgrade option as well for the OS and the grid services. Also install a good backup system that will back up locally and remotely automatically at an appropriate time. A system to move a database and assets easily from grid to grid as well would be good. The system needs to be self monitoring and notify the Admin of any crashes etc by text and email. It should also self restart at a regular interval at low use times such as when there are few to no people on the grid whenever that happens. Kinda like a smart cron job. That is it for now! Steve LaVigne of A Dimension Beyond, Inc. SG Assistant Dev Guy (Don't need all the other titles!)

Ana-Green commented 5 years ago

Dad just needs the Region Simulators and the Grid Server (Aka Robust) with config files.

Regards, Ana Green

BruceStarfinder commented 5 years ago

@boodie I know creating a pre-configured .ova image for virtual machines run on hypervisors such as Exsi or Xen is one of the things that will likely get considered. However, it probably would not happen right away if it did because it would require reconfiguring the Virtual Mac ID and the IP addresses in the Network Interface files before the admin could access via putty or via an RDP method.

As to the base operating system it definitely would be based on Linux but our own custom version which will take the idea that Valve did with SteamOS but making it more in line with custom dependency files such as Mono similar to what Manjaro did with Arch Linux. In this way, we would be able to eliminate a ton of headaches because of the way Xarmin and Microsoft have a habit of breaking mono.

@Ana-Green The new method being worked on will make .ini configuration files a depreciated thing of the past. When completed All configuration will be done via the administrative back office in the website for all services.

Best Regards, Bruce Starfinder Core Developer Work Group member Grid Architecture Development Work Group Grid Architecture Development, Database Development, Maintenance Second Galaxy Development Team

Ana-Green commented 5 years ago

Well my Dad has email, webpage and such on server 1 and on server 2 Halcyon etc so for him its easier to just install Robust and the region simulators on Server 1 (opensim/VU) by hand, if not possible then he has to look for a alternative.

Regards, Ana Green

emperorstarfinder commented 5 years ago

@Ana-Green I have already explained to your father via discord what this proposed method will do. The Operating System approach is for our Enterprise level customers. Enterprise-level users are those who are government agencies, non-profit organizations, commercial businesses, etc. The operating system approach will include a base operating system (similar to Linux, Mac OS, or Windows) and the Website services, Database Services, Grid Services, Region and Planet Services, etc. will be built upon that.

For those who will not be using the operating system style approach, there will be an installer that will set up the various services independent services (i.e. Website Server, Grid Server, Region and Planet Servers, Database Server, etc.). The only change your dad would have to get used to is the depreciation in the old .xml and .ini configuration files as the configuration of the various services would be handled via the new website service being designed. The Installer will have the ability to choose what services need to be installed. However, the Website will have to be used in place of any PHP coded website being used with the current version of Virtual-Universe-NXG.

Please be sure your on the same page as your father so you do not get confused or confuse him with the path forward. We cannot control what end users choose to do and we do know there are those who have a hard time with change. But for positive things to happen, change must happen and we must embrace change. This issue ticket is also for comments on the actual proposal that is being considered by core developers later this fall. Just because this public comment ticket is here and open does not necessarily mean that this proposal will get final approval. It is very much possible this proposal will get amended multiple times before a final version is voted on. This is why we have the public comment period to allow our normal end-users and our Enterprise Level Users to comment and give feedback on the actual proposals being considered. This is how we craft something that works best for everyone. So please be careful not to jump to quickly to a conclusion that this will be a bad thing.

Best Regards, Emperor Starfinder CEO Founder Governing Body Chair Core Developer Work Group Leader Grid Architecture Development Work Group Grid Architecture Development, Maintenance Second Galaxy Development Team

Ana-Green commented 5 years ago

Dear Emperor,

I got it did read it will explain Dad.

Regards, Ana Green