One Copy, Everyone
One Copy, Everyone
Our last problem was solved. Every virtual machine now had its own persistent disk. But success introduced a new challenge. Your application is now running on multiple virtual machines. A customer uploads a profile picture. The image gets saved on Virtual Machine A. A few seconds later, the customer's next request reaches Virtual Machine B. The application looks for the image... ... but it isn't there. Because every virtual machine has its own disk. The engineering problem was now obvious. How do multiple virtual machines access the same files? The engineering concept that solved this problem is Shared Object Storage. Instead of storing files on individual virtual machines, all files are stored in one central storage service. Every virtual machine can read from it, write to it, and share the same data. Amazon Web Services calls this Simple Storage Service (S3). Microsoft Azure calls it Blob Storage. Google Cloud calls it Cloud Storage. Different names. One engineering concept. Now files no longer belonged to a server. They belonged to the application. Servers could be created, replaced or removed without worrying about where the files were stored. But this introduced the next challenge. If one application is now running on many virtual machines... Who decides which virtual machine should handle the next user?
