Ephemeral & Loose Coupling.
To me, the fundamental difference between modern cloud computing and simple virtualisation are these two basic concepts.
Ephemeral - Ephemerality (from Greek εφήμερος – ephemeros, literally "lasting only one day") is the concept of things being transitory, existing only briefly.
Put simply, it means not permanent, what does this have to do with cloud computing?
Well its how "compute" should be designed in the cloud, not a permanent thing, just a thing you need to do now, on demand, when needed but once you're done it's gone.
Traditionally a server is a big box I run up that sits there doing a task or - serving a service
even if the service is not needed all the time.
The server is static, pre-configured with software and configuration data, given a name and places in its place as part of a system, say a mail server.
All the components of the server (hard drive, processor etc) are dependencies of the server and therefor dependencies of the system.
Now along came virtualisation, which made it significantly easy to create servers, servers were now software but the fundamentals had not changed, the components may be virtual but they were still dependencies, they were still static.
Reliability increased by "copying" the server, just like it were a piece of software and allowing it to exist as part of multiple "hardware boxes"
In the end though this only really benefited the sysadmin, those who were responsible for the servers and infrastructure, end users or customers gained next to nothing and developers saw no benefit besides the slight decrease in provisioning time.
Now with programmable on demand stateful instance based "cloud computing" I introduce the idea of ephemeral compute, A server is no longer built to sit there and serve, it is created when its needed using software, an application needs a service, it creates a new "server" or instance to do the job, when the job is done it can destroy it.
The configuration of the server. traditionally done by the sysadmin can be completely automated by the software and provisioning tools, puppet, chef, scripts, boot strapping.
By completely automating the configuration of a server from zero to fully functional you eliminate almost all the issues of a computing environment, if something goes wrong, just destroy the service and create a new one, you need more, create more and place them in a group behind a load balancer and of course, this brings us to the concept of loose coupling.
Loose Coupling ties together with ephemeral because in a system with multiple servers or instances they need to talk to each other, however if nothing is "static" you cannot simply point one service to another, so we don't, we use a load balancer, a middle man and a dns service to never point two ephemeral systems to each other, point to the balancer, the balancer learns about any new instances (DNS and API) and passes to them, thus solving the static problem.
Together these two concepts allow complete systems to be completely disposable, to grow, to scale to shrink to self heal and to be designed for failure.
A concept that was nearly impossible in the days of hardware and component dependency
Building everything we use in cloud computing must be built on these concepts, because it allows us to build it once, build it right and know it will scale and fix itself.
Here at Skyramp we passionately believe in these fundamentals, we have no doubt this is how all things should be designed now and love the challenge of applying these concepts to new ideas and systems.
As always give us a call or contact us on the front page and we can discuss further, whether it be in our Brisbane Office or via email or phone I'm sure you will be impressed.