So there's this group of friends who enjoy very much playing an online game called Minecraft. They don't all live in the same city anymore, they do it online, thus needing an online server — and as they all have plenty of work to do during the week, they play exclusively on weekends.
Minecraft is a Java application that needs quite the resources to run. Plenty of RAM, plenty of CPU and, unfortunately, plenty of disk space as well, as it generates a metric ton of data as a save point. Since none of the good friends is rich, they decide it's completely out of the question to have their shared online server constantly running.
So one of the friends remembers that they can always trash the server each Monday, saving the game state somewhere not that costly, and bring everything back each Friday night.
Now the group of friends face an interesting question: how will they do this in the easiest and most replicable way, so that they can boot the server each weekend and begin playing in the same save point as last sunday, even if the guy who routinely handles linux servers is away on vacation (they're all engineers).
Solve this problem for the group of friends. Try to:
- Describe your thoughts and decisions when solving the question
- Enumerate technologies and services you'd use, and why
- Include any scripts/code you'd write or use to make this work
Final note: If there's anything you don't understand or is ambiguous, open an issue in your repository with the question ;)