Yeah, updates are automated. So are patches. And the scheduled maintenance!
So here's the deal. I've written some code on several platforms that handles EO's infrastructure. This ensures that we're always up to date and that everything runs smoothly.
What do the processes entail, I hear you ask? Well:
- An NPC script starts running 3 hours before maintenance begins, sending in-game announces to remind everyone of what's happening.
- At 11:55am, various server variables are changed denoting that the server is going down for automated maintenance instead of manual maintenance.
- At 12:00pm, the server issues a mapexit command to close down the map server.
- At 12:05pm, a cron task runs and ends the processes of the char and login servers.
- At 12:10pm, another cron task pulls and merges from EO's server repository and applies all the updates that have been pushed (from both rAthena and EO's custom code) in the last 7 days. If the merge process fails, I get a push notification.
- At 12:40pm, if everything is looking good, the server's source is cleaned and re-built into new binaries. The 30 minute gap between this process and the previous one is to ensure that if any manual changes are required they can be done within the Scheduled Maintenance timeframe.
- The servers are automatically turned back on at 12:55pm.
- Once the mapserver has started, the Scheduled Maintenance NPC script checks for the previously set variables and issues several commands. The most prominent is to send a signal to the forums which automatically posts an announcement stating that the maintenance period has completed. This displays on the server's homepage and on the patcher. Pretty nifty, huh?
Why do you need to know this? Essentially, if players understand the process, it can help to eliminate various support questions regarding timings, why things were changed, item and official quest updates, skill changes, etc.