Distributed services used in enterprises are increasingly deployed in public cloud platforms such as Amazon EC2 and Microsoft Azure. The design and operation of these applications are made complex by the many uncertainties that arise in cloud deployment environments:
- How will the application behave if the cloud provider suffers outages?
- How to account for such risks in the design of the service?
- How to test the performance and reliability of a cloud service during the early design phases?
- How to coordinate the compute and data persistence tiers of a cloud service?
- What is the best architecture for a cloud service to guarantee high-availability?
- How to leverage design-time information to optimally configure the service and adapt it at runtime according to performance needs?
Research on these problems can be done either at the engineering level (the ideal candidate would have a good systems or software engineering background) or at a theoretical level (modelling or applied probability background).
For more information and research papers, please visit my homepage: