This article is an Opensim Grid Progress Report for the Fire And Ice Grid. The grid is duel purpose, it is a research and learning project to enhance the degree in computer science I am studying for. Additionally, the network combined with my blog posts will provide real-world proof of the learning I have done; with the application of those skills in a practical project. The project started publically with The Fire and Ice Grid opens the post in December 2019.
Current Status – Opensim Grid Progress Report
- The grid is stable
- Important Robust services are separated
- Secure against attacks
- Services start up and shut down with the servers
- Crash Detection and automatic recovery
- Proven backup system
- Backups run automatically without manual intervention
- Automatic restarts to after a server reboot to spread out the startup time for each simulator. When oar backups happen this avoids resource bottlenecks.
- Land sales are set up and established.
- Shoutcast servers are setup and available for purchase.
- Established enough to be financially self-sufficient
- Increasing presence in the search engines
- Increasing social media presence
- Up to date operating system and database services
- Running the latest opensimulator software
- Web site established and secure with https (mostly done, see the future for more details).
- Wiki set up and in use by customers.
- Forum set up and in use.
- Established blog
The Future – Opensim Grid Progress Report
Replace WiFi with my own system and secure the last of the website.
PHP scripts to pass instructions to the database
Requires learning how to use PHP and java script.
RPC (Remote Admin Calls) program
Learning the RPC system and designing a C# application to make the calls. Along with a front end (probably aspi.net) for this to integrate with the website.
Create a system for making default avatars
Will require direct interaction with the central database to achieve this. A much greater understanding of MySql and databases, in general, is necessary to make this happen.
Management Tool – Opensim Grid Progress Report
A management tool needs to be created, one of the important tasks will be easily locating which server and simulator specific regions are running on. As the grid grows the importance of doing this job quickly is increasingly apparent. At the moment, I suspect this will be a c# application. Ideally written in .netCore. This requires finding a suitable cross-platform GUI for the application and development from the ground up.
Load Balancing of the Robust Server
Currently, the essential services are separated, however, if the robust server goes down, there is no backup to maintain availability or to switch to if the load is too high. This job requires gaining a much greater understanding of the FSassets database. It will also require setting up MySQL replication as well as two additional servers. One to act as the balancer then the primary and secondary servers running the services.
Automatic Deployment of new servers using ansible
This is already in progress but requires more excellent knowledge of several areas within ansible. It also requires creating a generic structure for simulator names on multiple servers and realistically needs to work alongside the management tool discussed above. This will include an automated opensim version update system for both robust and simulators
Discord Bot integration
This is a task which has already been started when complete it will allow DJ’s to clone their Shoutcast streams into the Grids Discord server, create a channel and play to our offline residents through discord. This will give them another way to promote their services. I would also like automatic monitoring of in-world notices in the resident’s group so they can be added to the notifications channel automatically. This task will require modifications to the existing in world bots and much more work on the discord bot.
Fork the opensim project and modify to use .netCore instead of mono and .netFramework.
Since .netCore is cross-platform and the future of .net development according to Microsoft, making this change seems prudent. However, this is not a priority task. This will require really getting a good grasp of the whole opensim code base. It is all written in C# so I should have coding methods to learn. However, I have hardly looked at the actual opensimulator code base yet.