We propose a WICSA 2009 BOF session on “Virtualization, Cloud
Computing, and Software Architecture” which will look broadly at the following
main areas (suggested discussion starter questions).
(1) What is virtualization/cloud computing?
What
is virtualization?
What
is cloud computing?
What’s
the connection between virtualization and cloud computing? What do they
share in common? What’s different? Are there any necessary dependencies?
What
can be virtualized? What can’t be? What could be? What shouldn’t be?
(2) What is relevance
of virtualization/clouds to Software Architecture?
How
does virtualization/cloud any impact the architecture of software? What
specifically? What changes does virtualization/clouds require for software
architecting? What are the benefits, issues?
How (well)
does virtualization work with different architectural styles (such as SOA,
Grid, event-based systems, etc)?
What
architectural styles do/don’t work well on cloud computing? (E.g. Amazon
EC2). What changes or additions are required to cloud computing
architecture in order to address this?
What’s
“best practice” for architecting systems with significant virtualization?
How
should new applications be architected for virtualization/clouds?
Legacy
applications?
Hybrid
applications (some hosting internal to organisation, some external)
What
methods, frameworks, standards, patterns, tool support etc is
available/needed?
How
do you determine the costs and benefits of re-architecting for
virtualization/clouds?
What
impacts (positive and negative) does virtualization have on architectural
quality attributes?
(3) What is the Software
Architecture of virtualization/clouds?
What
characterises the software architecture of virtualization/clouds?
Are
there common architectural styles for virtualization/clouds?
Are
there any architecturally significant similarities and differences between
different types and vendors virtualization products?
What
standards exist or are under development for virtualization/clouds? What
is there purposes, scope, and uptake?
How
do you evaluate and select a virtualization/cloud solution against architectural
goals?
What
deficiencies are there in current virtualization/cloud infrastructures?
For example, how extensive and important is support for load-balancing,
automatic scaling (instance start/stop), monitoring and management, etc.
How
important is web-service based management of virtualization/cloud?
Is
virtualization and cloud computing the answer to all
scalability/performance issues?
What
performance and scalability issues does it potentially introduce?
What
problems/solutions are there for virtualization/cloud on extremely heterogeneous
resources (e.g. different speed CPUs).
Is
the view that “just throw more virtual instances at it” to solve
performance/scalability problems hopelessly naïve?
Are
there any reliable sources of empirical evidence for virtualization and
cloud performance and scalability?
(4) Looking back, experiences,
and looking forward
What’s
new/old about virtualization/cloud? What can be traced back to previous
successes (or failures!), and what lessons are transferable to current
software architectures and applications?
What
experiences have people had with using virtualization/cloud and what
lessons have they learnt from architectural perspectives?
What
research has been done, and what research is needed at the intersection of
software architecture and virtualization/cloud?