The wide availability of cloud computing offers an unprecedented
opportunity to rethink how we construct applications. The cloud is
currently mostly used to package up existing software stacks and
operating systems (e.g. LAMP) for scaling out websites. We instead view
the cloud as a stable hardware platform, and present a programming
framework which permits applications to be constructed to run directly
on top of it without intervening software layers. Our prototype (dubbed
Mirage) is unashamedly academic; it extends the Objective Caml language
with storage extensions and a custom run-time to emit binaries that
execute as a guest operating system under Xen. Mirage applications
exhibit significant performance speedups for I/O and memory handling
versus the same code running under Linux/Xen. Our results can be
generalised to offer insight into improving more commonly used languages
such as PHP, Python and Ruby, and we discuss lessons learnt and future
directions.