I am studying a framework called Apache Mesos. I am totally new to this framework.
According to this website, it can combine your datacenter servers and cloud instances into one shared pool from which any app or framework can draw, as illustrated by this image.
I have read some articles and tutorials about this framework. But I am still not very clear how this framework works.
Let's say I have 3 physical server machines with 4 cores and 8GB RAM each. Can I deploy a single LAMP web application and let it uses the combined hardware resources of all servers (12 cores and 24GB RAM)?
By referring to this tutorial, it seems that Mesos can only run the web application in one of the servers. Then, what are the benefits of using Mesos?
Nope. As a true-in-almost-all-cases generalization <*>, a given process can only run on a single piece of hardware. So, if you have a LAMP app that isn't built to scale out onto multiple nodes, something like Mesos will only buy some level of failover/HA. It won't somehow bundle the memory/CPU in two machines together.
If your app is built for scale-out, or you have a WHOLE lot of apps, then a framework like this will be able to balance the different processes around onto all of your available hardware, thus ensuring a more complete utilization of available resources. This is what the provider-side of "cloud" offering often look like.
<*> there are expensive systems that can offer SSI (single system image) across multiple discrete servers. These are most often useful for software packages that are explicitly built for such platforms. They need to account for the fact that the process running on a CPU in machine 1 might be accessing RAM in machine 2, which will be slower and should be avoided. If you just ganged together a whole bunch of pizza boxes and tried to run a MONSTER APACHE instance, or Microsoft Exchange, it won't be performing like Voltron. No magic sword, no lions.