This presentation was created for the SATURN conference series and does not necessarily reflect the positions and views of the Software Engineering Institute.
Cloud computing is being adopted by commercial, government,
and DoD organizations and is driven by a need to reduce the operational cost
of their information technology (IT) resources. From an engineering
perspective, cloud computing is a distributed computing paradigm that focuses
on providing a wide range of users with distributed access to virtualized
hardware and/or software infrastructure over the Internet. From a business
perspective, it is the availability of computing resources that are scalable
and billed on a usage basis as opposed to acquired, which leads to potential
cost savings in IT infrastructure.
From a software architecture perspective, what all this
means is that some elements of the software system will be outside the
organization and the control over these elements depends on technical aspects
such as the provided resource interface to business aspects such as the
service-level agreement (SLA) with the resource provider. Therefore, systems
will have to be designed and architected to account for a lack of full control
over important quality attributes. This presentation will briefly define cloud
computing and the different types of cloud-computing environments, and
point out drivers and barriers for cloud-computing adoption. It will then focus
on examples of architecture and design decisions in the cloud, such as data
location and synchronization, user authentication models, and multi-tenancy
This presentation was given at SATURN 2011 in Burlingame, CA.