If you haven't already, consider reading Odoo on the Cloud: Introduction before this post.
In order to approach the challenge, we need a plan. I've decided to apply the 12 Factor App metodology. If you're not familiar with it, it provides some rules your software should abide by to be a good cloud service. It's not necessarily the final word on the matter, but it provides a good and well known approach to start converting your software.
In this series, I'm not going to apply every single factor; Odoo is already compliant with some (Port binding, Concurrency), while others may simply be left unaddressed if I haven't found a good solution. I'm also not going to follow the factors in their original order. Finally, some posts might address two related factors at once (such as Processes and Backing Services).
One of the most important ideas behind the 12 Factors is the restriction on local state. Since one of the cornerstones of the 'Cloud' is horizontal scaling on unreliable commodity servers, applications must be designed to store all persistent data (anything that survives a single request) on backend services, so that it can be replicated and made available to any instance of the application.
Odoo stores three types of data: Databases, Sessions and Attachments. The first is already treated as a network service, so in the next posts I will cover the other two.