Cloud Computing: Radboud University
Cloud Computing: Radboud University
Master’s Thesis
Cloud Computing
Supervisors:
Author:
Marko van Eekelen
Mark Spreeuwenberg
Ben Dankbaar
s0609846
René Schreurs
Abstract
Cloud computing is a hot topic today. Cloud computing is more than a
hype; it is a change in how IT within an organization will be organized.
Sometimes it is unclear what the definition of cloud computing is, but the
common characteristics include access to IT resources over the Internet,
these resources scale on-demand and they are being paid in a pay-as-you-go
manner. Some well-known service models are Software as a Service (SaaS),
Platform as a Service (PaaS) and Infrastructure as a Service (IaaS). These
service models can be combined with a deployment model: public, private
or hybrid. All these combinations have their advantages and disadvantages.
For example SaaS will be easy to use for end users, but is less flexible while
IaaS is meant for network architects and highly flexible. For a public cloud
the advantage will be that it is often cheaper than a private cloud while there
is less control over the software and hardware. Cloud computing is supposed
to give quite some advantages to the service provider and customer. A
service provider can become a specialized party in the offering of a service
while a customer can work more efficiently and doesn’t have to buy hardware
for peak loads. Cloud computing has some disadvantages as well. One of the
biggest risks is the unavailability of the service because of the dependence
on the provider. Furthermore legislation can be a real obstruction for the
adoption of the cloud. For some organizations can be prohibited to transfer
personal data to a specific region. In particular circumstances it can be
more advantageous to put products in the cloud than in other situations.
For example when the application that runs in the cloud is stateless and
when the application does not have much interaction with back-end systems.
Furthermore the advantages for smaller organizations might be bigger than
for large organizations because the small organizations might not be able to
pay the start-up investment of an on-premise solution. A general remark is
that there is not only one solution available and that the solution depends on
different circumstances and business values. Important factors in defining
the solution are the business values as well. Sometimes an organization has
some values that do not correspond with the most efficient solution. Maybe
the most important recommendation is that the movement to the cloud
(once the software is standardized) should be done in phases. This means
that is will be better to do this in small parts instead of moving to the
cloud at once. This thesis contains a case study in which the circumstances
within Aia Software are being researched and, based on this research, a
cloud design for their product is developed. In the end the concept of the
design is proven with a proof of concept. The proof of concept shows that
it is possible to run several ITP installations on the same system without
having the possibility of customers accessing the installation or data of other
customers.
ii
Preface
This master’s thesis is the result of six months of research which I have done during
an internship at Aia Software BV in Nijmegen. This research was performed as
the final part of my study Computing Science, with Management and Technology
as track, at the Radboud University in Nijmegen.
Aia Software is a global developer and supplier of the ITP Document Platform, a
solution for the production and distribution of document output based on applica-
tion data. The company was established in 1988 in the Netherlands and is serving
the global market. Aia Software’s ITP Document Platform is currently used by
more than 1000 organizations in more than 30 countries worldwide. I would like
to thank Aia Software for accepting me as an intern and providing me with the
required resources.
I would also like to thank several people who made it possible for me to complete
my study and thesis. First of all I would like to thank three people especially:
• Prof. dr. Marko van Eekelen, my supervisor at the Radboud University from
the study computing science, for his guidance with the technical part and
his feedback. His feedback really helped me with writing a scientific thesis
that has enough content to graduate.
• René Schreurs, my supervisor at Aia Software, for providing me with all the
required resources and knowledge about the company. His ideas and insights
really helped me by creating the results.
Secondly I would like to thank my colleagues within Aia Software who shared their
insights and ideas with me. They were always willing to answer my questions and
participated in some discussions. Last but not least I would like to thank my
family for supporting me during my entire study.
CONTENTS iii
Contents
1 Introduction 1
1.1 Problem statement . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Research Question . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Thesis outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
I General Information 5
2 Cloud computing 6
2.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Future . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Strengths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Weaknesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6 Success factors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.7 Service models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.8 Deployment models . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Security 19
3.1 Cloud computing threats and risks . . . . . . . . . . . . . . . . . . 19
3.2 CIA Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Privacy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4 Identity and access management . . . . . . . . . . . . . . . . . . . . 25
3.5 Other challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4 Legal Aspects 29
4.1 Legislation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Liability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5 Cloud platforms 35
5.1 Windows Azure Platform . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2 Amazon EC2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3 Google AppEngine . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.4 Force.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.5 Oracle cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.6 IBM SmartCloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.7 VMWare vCloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
iv CONTENTS
5.8 Sentia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
II Solutions 41
6 Cloud solutions 42
6.1 General requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.2 Target group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.3 Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.4 Choosing a provider . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.5 Implementation approach . . . . . . . . . . . . . . . . . . . . . . . 47
7 Business model 48
10 Proof of Concept 86
10.1 Testing limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
10.2 Minimal solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
10.3 Steps to ideal solution . . . . . . . . . . . . . . . . . . . . . . . . . 90
12 Future work 96
CONTENTS v
13 Academic Reflection 97
13.1 Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
13.2 Product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
V Appendices 105
A Windows Azure Load Balancing 106
A.1 Performance load balancing . . . . . . . . . . . . . . . . . . . . . . 106
A.2 Failover load balancing . . . . . . . . . . . . . . . . . . . . . . . . . 107
A.3 Round Robin load balancing . . . . . . . . . . . . . . . . . . . . . . 108
B Interviews/Conversations 109
B.1 Erik Meijer (10-2-2012) . . . . . . . . . . . . . . . . . . . . . . . . . 109
B.2 Erik Poll (10-2-2012) . . . . . . . . . . . . . . . . . . . . . . . . . . 109
B.3 Mireille Hildebrandt (27-3-2012) . . . . . . . . . . . . . . . . . . . . 110
B.4 Mireille Hildebrandt + Merel Koning (30-3-2012) . . . . . . . . . . 110
B.5 Jean-Claude Grattery (26-4-2012) . . . . . . . . . . . . . . . . . . . 111
B.6 Ian Zein (19-6-2012) . . . . . . . . . . . . . . . . . . . . . . . . . . 111
vi CONTENTS
1
1 Introduction
For the study computing science this master’s thesis was written as a result of an
internship at Aia Software in Nijmegen. Research was carried out in this company
about how they should implement a cloud based version of their ITP (Intelligent
Text Processing) Document Platform.
3. Which security aspects are important and what are the consequences for the
design?
4. Which legislation is relevant and what are the consequences for the design?
2 1 INTRODUCTION
5. What are the characteristics of Aia’s current product with special attention
for the architecture and security aspects?
6. What are the characteristics of the solution for Aia in the cloud?
1.3 Approach
This section provides a description of the approach that was used to answer the
research question and its sub questions. At the base of answering sub questions 1
to 4 lies a literature study. Since the legislation is very unclear when talking about
cloud computing, there were interviews and conversations with people within the
faculty of science that have knowledge about this topic.
Sub question 5 was answered by talking a lot to people within Aia Software since
they are the people that have the experience with their own product. In particular
there were a lot of informal talks with the Research and Development department
because of their knowledge of the current possibilities and design of the application.
The rest of the information was gathered by reading the company website and
some other documents about the product. After reading those documents the
information was verified by the people within the company.
In order to answer sub question 6, there were informal talks about what should be
possible in the cloud. Different possibilities were presented to people within Aia
Software in order to get feedback whether it could be a good solution. In order
to answer this question, information about general cloud solutions was read first.
After reading this information the relevant aspects were taken into account for
Aia’s solution. During the process of developing the solution it was also necessary
to have some knowledge about the total costs and how to be profitable in the end,
so information about the costs for the possible solutions is considered as well.
In order to show that the design of the solution really satisfied the needs, a small
proof of concept was made. For this proof of concept a cloud platform had to
be chosen on which the application should run. In order to choose a well suited
platform, there were a lot of mail conversations and phone calls with providers.
In the end it wasn’t necessary to run the proof of concept at the side of a cloud
service provider.
Sub
Part Chapter Title Description
questions
1 Introduction - Introducing the thesis
2 Cloud Computing 1 Literature study
3 Security 3 Relevant security issues
I
4 Legislation 4 Relevant legislation
5 Platforms 2 Existing platforms
6 Cloud Solutions 1, 2 Possible solutions
II Business models for
7 Business model 1, 2
cloud computing
Current product of Aia
8 Current Situation 5
Software
Aia Software’s product
III 9 ITP in the Cloud 6, 7
in the cloud
Small proof of concept
10 Proof of Concept 6
of the architecture
11 Conclusion All Main conclusion
12 Future Work - Future research
IV
Reflection on the prod-
13 Academic Reflection -
uct and process
be some further research about security aspects in combination with cloud com-
puting. Questions like “how can it be kept secure?” and “what are new threats in
cloud based environment?” are being answered in this chapter. The next chapter
(chapter 4) provides more information about the relevant legislation for an orga-
nization that wants to start using (or offering) cloud computing. Chapter 5 gives
an overview of the existing platforms that are available and their advantages and
disadvantages. Chapter 6 continues with an overview of possible models and so-
lutions for implementing cloud services. This chapter will describe the advantages
and disadvantages of the different solutions. Business models for offering cloud
services are provided in chapter 7. In chapter 8 the current situation within Aia
Software will be described. After all the information in the previous chapters is
presented, in chapter 9 this information will be used in a case study. This case
study will be the situation within Aia Software. In this chapter an advice will be
given about the best way for Aia Software to put their product in the cloud. A
proof of concept for this solution is created and presented in 10. The conclusion
and the future work are written in chapter 11 and 12. Finally, chapter 13 provides
a reflection on the process and the product.
4 1 INTRODUCTION
Part I
General Information
5
6 2 CLOUD COMPUTING
2 Cloud computing
2.1 Definition
The name cloud computing refers to the images of clouds that are representing
networks and the Internet in most drawings. Basically, cloud computing makes
data and applications available through the Internet. By doing this, data and
applications can be accessed from everywhere. Cloud computing is not a new
technology or a new device; it is a new way of using existing technology and
devices. It is hard to find a clear definition of cloud computing but the following
definition by Forrester Research is helpful because it contains all the elements that
are commonly associated with cloud computing:
With cloud computing it becomes easier to access data with several devices. Espe-
cially for mobile devices this can be really useful since the only thing that is needed,
is an Internet connection. In figure 1 a diagram is shown of a cloud based solution.
This figure shows different devices like notebooks, desktops, smartphones, tablets,
servers and databases that are connected to the Internet. Storing data and run-
ning applications will be done in such a way that they can be used by devices
that are connected to the Internet. An important aspect (for my research as well)
2.1 Definition 7
Cloud computing was pushed into the real world because of the pressure on IT to
save money [26, 38, 50]. In the past, maintenance costs have kept on rising with
the result that the budget for innovation decreased since the total budget didn’t
change.
Cloud computing will change the role of decision makers in a way that might not be
expected. The cloud should be used to outperform the competition. The biggest
impact for the provider of cloud computing is not to increase time to market and
agility, which are important goals for an organization (for the consumer of cloud
services as well), but the bigger impact for the provider is that it transforms the
business models. So an organization that wants to deliver cloud services as well
should consider another business model because it will not be selling products
any more, but it will be selling a service, which requires another business model.
Today’s economy has changed from a pattern of predictable cycles to a situation
where there are high and low peaks. Nicholas Carr states in his book The Big
Switch that in the coming decade or so, corporate IT will be more or less switched
off in favor of cloud resources. Brian Garvey even states that 2012 will be the year
of the cloud [36].
As already mentioned, another effect of cloud computing is that products become
services. This is something that has to be taken into account for the relation-
ship between a vendor and a client. Since the product has become a service, it is
easy for the client to stop using this service and switch to another vendor. Cloud
8 2 CLOUD COMPUTING
computing is not a goal in itself; it helps a company to become part of the cur-
rent ecosystem. An opinion that is shared by a lot of people is that when an
organization ignores cloud computing, it will not get the business and when the
organization is not maintaining good relationships with its clients, it will lose mar-
ket share. So it does not make sense to resist against the shift to this new kind of
ecosystem because it is inevitable. Cloud computing won’t go away anymore; it is
the future [26, 36].
The shift from products becoming services results in the distinction between own-
ership and usage of IT assets. When an organization delivers cloud solutions it has
an advantage because they can realize economies of scale and standardize products.
Nevertheless it also introduces some questions for the client [30, 26]:
• How to integrate the external and internal assets into one usable solution?
• Will there be access to the data when the provider goes bankrupt?
2.2 History
In the history of IT first there were mainframes (1960s). In the 1980s the client
server model was introduced. Today cloud computing really seems to be breaking
through.
When looking from the point where there was Internet, there first was access to the
Internet only, which was made available via an ISP (Internet Service Provider).
After some time there was access to servers via this Internet. After this racks
for equipment that could be accessed via the Internet arrived. All the previous
was made possible via an ISP. After this stage the ASPs (Application Service
Providers) arrived. They provided the possibility to host applications on a server
and access it via the Internet. Nowadays the cloud has arrived which offers an in-
frastructure for hosting applications and data. Although ASPs and CSPs (Cloud
Service Providers) look very similar, there are some differences. For example ASPs
were less focused on multi-tenancy, which means that multiple customers working
with the same system or application was not supported. Another difference is that
cloud applications are designed for web usage while ASP applications often had
nothing more than a simple web interface attached to a large client-server appli-
cation.
10 2 CLOUD COMPUTING
Cloud computing shares characteristics with some other forms of computing which
is shown in figure 2. Jenkins [25] mentions that cloud computing is the commercial
version of utility computing of which it adopts the concept [22]. Utility computing
is the packaging of computing resources such as computation, storage and services
as a metered service. This means that the equipment is basically rented. Utility
computing has characteristics of grid computing. Grid computing refers to the
technology in which computational power of different domains, that are loosely
coupled, is combined to reach a common goal. Grid computing at its turn has
characteristics of both cluster computing and supercomputing. Cluster computing
refers to the technology in which computer clusters are created. The computers
in these clusters are loosely coupled (but stronger than with grid computing) and
work together as a single system to perform some computational operations. Su-
percomputing refers to usage of supercomputers. Supercomputers are computers
that are at the front-line of current processing capacity. Those computers are used
for highly calculation-intensive tasks.
2.3 Future
Since cloud computing is nowadays very trendy, it seems logical to invest in this
technology. Nevertheless it is wise to take a look in the future and how it is
expected to develop. It is somewhat hard to predict but the common opinion
about cloud computing is that its usage will increase enormously in the coming
years, especially when IT budgets have to be cut. For example Cisco predicts an
increase of a factor 12 in the traffic for data centers between 2010 and 2015 [53].
Forrester expects an increase in the total cloud computing market of $40.7 billion
2.4 Strengths 11
in 2011 to over $241 billion in 2020. Gartner Research expects cloud computing
to be a $150 billion business by 2014 and according to AMI partners, small and
medium businesses are expected to spend over $100 billion on cloud computing by
2014 [17].
The next step will be that it doesn’t matter on which hardware a specific cloud
is running. Like the SETI (Search for Extraterrestrial Intelligence) project [57]
the computational power of other clouds can be used when it isn’t needed for that
cloud. It is possible for people to subscribe to the SETI project. This subscription
means that when the subscriber doesn’t use his computer, the computational power
can be used for this project. Since cloud computing is just getting interesting
at this moment, it will take a lot of years before this new situation, in which
overcapacity can be used by other CSPs, can be reached.
2.4 Strengths
As already said, cloud computing is supposed to give many advantages to software
vendors as well as clients. For the clients a very obvious advantage is that they
do not have to buy the hardware and software anymore since it is no longer a
product but a service. Another advantage for a client is that it is in a lot of cases
(but definitely not all), much easier to switch because he is just using a service,
which means he did not buy any expensive software or hardware equipment that
has to be recovered first. A software vendor can standardize a specific service and
therefore realize an economy of scale. When this situation is reached, the vendor
will be able to reduce its operating costs which can result in a lower service cost.
This is something that cannot be reached when the internal IT department of the
client has to do all this work. In the current situation about two-thirds of the
corporate IT budget goes to routine support and maintenance activities [26]. By
implementing a cloud strategy an organization will be able to work more efficiently
as well. Employees will no longer have to wait for their colleagues to send infor-
mation since the data is accessible by all the employees from any place as long
as there is an Internet connection. Furthermore, employees don’t have to wait for
their internal IT department to provide them with extra resources.
Cloud computing furthermore results in the fact that the IT department does
not have to provide the end-users with resources because the provision of those
resources will be done (automatically) by the cloud service provider. It will be eas-
ier to change an organization’s infrastructure because there is no privately owned
hardware involved. A cloud solution is also device and location independent be-
cause everything is running online. Because of this it is possible to use those
applications on any device that has Internet access. By using virtualization it is
very easy to share servers and storage. By doing this the equipment will be used
more efficiently. Nowadays the average capacity utilization of a server is about
12 2 CLOUD COMPUTING
10-30% [17]. Buyers of cloud based solutions don’t have to consider their peak-
load because there is more than enough capacity in the cloud. Once the peak is
over, the resources can be scaled down again. When an organization buys its own
hardware they will have to consider whether there should be capacity for the peak
or that there will be some underprovisioning during the peaks (which results in
users that are not being served) [11]. In the cloud, applications can run on multiple
servers so this will increase the reliability of the service as well. Furthermore it is
easier to maintain applications in the cloud since there is no need to install it on
every single computer or server within a specific organization.
2.5 Weaknesses
Although cloud computing has many advantages, there are also some problems
that might arise while implementing a cloud based solution. While designing an
architecture for a product that has to live in the cloud, attention has to be paid to
these problems and how they could be solved. Since the client has the possibility
to switch to another vendor easily (only when no provider specific technology is
used), this will result in a risk for the software vendor. The software vendor has
to make sure that there is a good relationship with the client.
When data will be stored outside the company, for the customer there will also
be a serious risk that the data gets into the hands of the wrong people, so this is
something that should be avoided. This is especially important for cloud comput-
ing since the resources may be shared by several clients. A CSP (Cloud Service
Provider) also has access to the data so for a CSP it is really important to gain
some trust from its customers. Privacy becomes an even bigger risk when data
will be stored on several systems.
Another barrier consists of legislation [27]. Especially the European regulations
are very strict on privacy. Sometimes the regulations are even unclear, this hap-
pens in particular when country borders are crossed. There are several rules that
state something about the physical location of the data that has to be stored or
processed. Rules in different countries might be as diverse that it is needed to
implement a, more costly, hybrid solution. For an organization that wants to buy
a cloud solution in order to offer its own software (running on that solution) as a
cloud service, legislation will be even more complex. Such an organization has to
comply with the legislation that applies to itself, and the legislation that applies to
its customers since creating a cloud service that cannot be used by its customers
is useless.
As already said, looking with a long term perspective is really important as well.
For example, what happens when a service provider goes bankrupt? What will
happen with the data? Or what will happen if a provider merges with an organi-
zation’s competitor? Since it is very hard to predict what will happen, this is a
2.6 Success factors 13
must be able to move data freely around the cloud while at the same time
giving users the faith that their data will not be disclosed.
Battling cybercrime: There must be a clear set of laws concerning cloud com-
puting. This is something that can be hardly influenced by an organization
but since there are some rules, they have to be taken into account.
Promoting free trade: A cloud becomes really useful when data can flow freely
around the world so there must be as few barriers for free trade as possible.
In the SaaS model CSPs install application software that can be accessed via cloud
clients. The customer does not have to manage the infrastructure or platform. The
difference between a cloud application and a “normal” application is the elasticity.
Cloud applications are more scalable. Furthermore the CSP will do the updates,
back-ups and maintenance so the client does not have to worry about this. For
the provider of the application it is easier to maintain because it doesn’t have
to be done for every customer separately. The SaaS solution is explained by
Mark Russinovich as applications on demand [56]. Since the SaaS solution offers
applications, the end user will be able to work with this immediately.
In a public cloud, applications and resources are made available to the public.
Services in a public cloud will be accessed through the Internet only. 22% of the
government agencies selects this option [39], now or in the near future. Contrary
to what a lot of people think, it is possible to store personal data in the cloud.
When this is wanted the client should talk to the cloud service provider in order
to figure out which security measures have to be added [46]. This is called a gap
analysis. During the Oracle Cloud Conference [28] it was told that an organization
should use this deployment model unless it does not meet the requirements. The
advantages of the public cloud are that the customer does not have to buy any
equipment and that the resources can be shared among different customers. The
result of this is that IT will become a bit greener and the operation cost can go
down because the equipment is used more efficiently. The downside of this model
is that an organization gets less control over its hardware.
3 Security
Security is one of the terms that is very often mentioned when talking about cloud
computing. A lot of people think of insecure use of software when they hear the
term cloud computing [9]. This chapter provides an explanation about new threats
and how these can be handled. Most people are scared to start using cloud services
because they think it is not 100% secure. For these people it is important to realize
that the current IT systems also have performance failures and data leaks. Since
large IT systems are very complex, it is almost impossible to get a proof that a
system is 100% secure. There are quite some news items nowadays, in which there
is a story about data leaks or IT systems that could not be used for quite some
time. So, it is important to research how much cloud computing differs from the
existing systems at this point. In fact, cloud systems are often even more secure
than on-premise systems since back-up and failover facilities are organized much
better. Of course this has to be the case since the consequences of bad security
are much worse when something goes wrong.
The most important thing with security is that an organization uses the “security
by design” principle. This means that security is implemented in the design of an
application. Once the design is made without having security in mind, it will be
hard to create a solution that is secure.
Abuse and nefarious use of cloud computing Cloud service providers often
offer their customers unlimited processing power, network capacity and storage
capacity. Together with the fact that it is very easy to register for those services
(often anybody with a valid credit card can register), it can end up in an unwanted
situation because there is a high degree of anonymity. Because of this anonymity
it is easy to abuse all the available computing power. One can use this computing
power for example for password and key cracking, captcha solving, etc. The result
of this abuse is that entire blocks of network addresses get blocked which will result
in innocent addresses being blocked as well. This threat is not applicable for the
SaaS model since an organization cannot develop new applications. It will be hard
to determine when some kind of behavior has to be classified as abuse. This means
that it will be difficult to prevent this.
20 3 SECURITY
Insecure interfaces and APIs Cloud computing providers often offer a set of
interfaces or APIs to their customers for interaction with the cloud services. The
security of the cloud services is dependent on the security of those APIs.
Malicious insiders This threat is not specific for cloud computing but cloud
computing amplifies it because of the convergence of the IT services. Since data of
different customers are combined on the same servers, the risk of a malicious insider
increases. Because of the lack of transparency at the service provider (especially
into the hiring of people) the customer has to trust the provider that he doesn’t
hire “bad” people. This could be prevented by monitoring but this is in conflict
with the privacy of the users. Certificates of good conduct and certification of
personnel could also solve a part of the problem but there will still be a small risk.
This problem also exists in the on-premise situation, nevertheless in the on-premise
situation there was slightly more information about the personnel.
Shared technology issues This threat only applies to IaaS providers. IaaS
providers often share their resources for customers in order to let it be scalable.
This might result in some problems since most components were not designed to
offer strong isolation properties for a multi-tenant architecture. So when this is not
taken into account, it might happen that some data is leaked to other customers
or people. Existing virtualization software is intended to solve this problem so this
risk will particularly exist when an organization develops its own cloud.
Data loss or leakage Since data is stored in the cloud the CSP can be respon-
sible for back-ups of the running system in case its hardware fails. Furthermore
the loss of an encoding key may result in data becoming unusable. This is not
cloud specific but especially in the cloud, stored data should be encrypted. In
order to prevent data leakage, there should be an authorization part in front of
the application that checks permissions for the specific application.
Account or service hijacking This is not a new type of threat since attacking
methods like phishing, fraud and bug exploitation exist already for quite some
time. Nevertheless cloud solutions add some new threat: the attacker can for
example eavesdrop someone’s activities or use someone’s account as base for other
attacks.
Unknown risk profile Cloud computing has several advantages to the business.
The business does not have to buy and maintain hardware so there are some
financial and operational benefits. Nevertheless those benefits have to be weighed
against the security concerns. Attention should be paid to the risks that the cloud
3.1 Cloud computing threats and risks 21
solution brings along and the impact that it can have for the business. This means
that if there is no clear overview of the possible risks, the lack of this overview will
be the biggest vulnerability. Security through obscurity (using secrecy of design or
implementation to provide security) might be the easiest way but this can result
in some unknown exploitations. In fact security by obscurity is never a good idea.
Privileged user access Since sensitive data is stored outside the organization,
there is much less control about who can access the data. For a customer it is
important to gain as much information as possible about the people that have
access to the data. It might be a good idea to ask information about the hiring
process and the oversight of people that have access to the data. This risk also
exists when talking about outsourcing. Nevertheless, the potential group of peo-
ple it much larger when talking about cloud computing because the data can be
accessed via the Internet.
Regulatory compliance Customers are responsible for the security of their own
data, even when the data is stored at a cloud service provider. Those providers
are subject to audits and certifications so when a provider refuses to undergo this
process, according to Gartner, he might be signaling that he can be used for only
the most trivial functions.
Data location Since the cloud is not located at a single location, it can be
unclear where the data of a customer will be stored. In some cases it is even unclear
in which country the data will be stored. For a customer it can be important to
ask the provider whether he can store the data in a specific jurisdiction.
Recovery Although every provider will tell how great their uptime is, it is im-
portant to ask how data replication is organized when there are failures in the
system. Once data is not replicated it might result in a total failure of the system.
A customer should ask the provider whether it is possible to do a complete restore
operation and how much time it will take to complete.
Long-term viability When choosing for a cloud service provider, this provider
is not expected to go bankrupt or get acquired by a larger company. Nevertheless
this might happen and therefore a customer should ask what happens with his
data in this situation. He should ask whether the data remains available and
which format will be used to export the data from the cloud. This format is
important for the ability to import the data in a replacement application.
3.2.1 Confidentiality
Confidentiality is the term that refers to the prevention of data disclosure to unau-
thorized people. Confidentiality is necessary (but not sufficient) for the privacy of
people that have data in the system. For a cloud service provider it is really impor-
tant to guarantee confidentiality to their customers since a lot of customers might
be running with the same resources. Attention has to be paid to (unexpected)
data leakage since there also might be some temporary files that are stored in for
example some cache or shared file system.
The simplest way for a user to protect its data privacy is by using encryption.
When a modern encryption standard is used, nobody else will be able to decrypt
the data. Nevertheless, because of performance reasons this doesn’t seem to be
3.2 CIA Analysis 23
a very practical solution. It is for example difficult to search for keywords in en-
crypted data. Downloading all the data and decrypting it locally will generate too
much Internet traffic. Storing data in the cloud is almost useless if people cannot
search and utilize that data [9].
3.2.2 Integrity
Integrity refers to the fact that data cannot be modified by unauthorized people.
An organization doesn’t want customers to see data of other customers but it is
also not wanted that they can alter data from other customers. Data might be
stored on the same storage devices so there has to be a solution for setting access
rights in order to prevent people from altering data that does not belong to them.
For integrity it is again important to notice that existing encryption techniques
will be impractical when it comes to checking integrity. For these techniques it is
often required to have a local copy of the data and this local copy isn’t available
anymore since all the data will be stored in the cloud.
3.2.3 Availability
Availability refers to the time that a system will be available for usage. Nowadays
there are a lot of systems that have to be available 24/7. This requires a security
model that guarantees this. Availability is very important in cloud based solutions
since organizations want to use the software whenever they need it. This results
in the fact that it is unacceptable to have some downtime of the system when
updating to a new version of the software. Those updates should also be done in
such a way that the client doesn’t have to change anything in their own software
because this probably will result in downtime of the system for that client. In
order to guarantee availability, most cloud service providers will set up a Service
Level Agreement (SLA). Nevertheless these SLAs are not always meaningful. For
example a provider can guarantee an availability of 99.999% and give a discount
of 10% when this is not reached. Since the infrastructure is not designed to reach
this availability [17], the provider is actually offering a 10% discount in exchange
for the benefit of claiming that SLA. So as a customer it is important to pay close
attention to the details of the SLA. It is important to weigh the benefits against
the impact on the business when the SLA is not met [6]. Another aspect that
might cause some problems for availability is that a lot of CSPs only offer email
or web-based support. For a cloud service provider it is really important to match
the performance of the service to the level of performance and reliability to which
the customer got used to when maintaining their own data center.
Another potential risk for cloud computing is a denial of service (DoS) attack.
Although the cloud in theory has unlimited resources, it can still be exhausted [3].
24 3 SECURITY
Once the cloud gets exhausted the problems are much bigger compared to the
on-premise situation because much more customers are using the same instance.
3.3 Privacy
Privacy is an important issue within the area of cloud computing [12]. Combining
privacy and multi-tenancy is one of the most critical and difficult challenges for
the public cloud. Two aspects of privacy are especially important to have in mind
when designing a cloud system: legal compliance and user trust. As with security
it is important to consider the privacy right from the start instead of trying to
implement it in a later stage (security by design). Since privacy is a human right,
there is some legislation about this topic about what is allowed and what is not.
More information about the legislation can be found in chapter 4. The term
privacy sensitive data might be used differently by different people. Pearson [12]
describes this term as information that includes the following:
Usage data: data which is collected from computer devices, behavioral informa-
tion about which contents are viewed and which products are used.
It is not only the personal data that is worth protection. Behavioral information
should also be protected. Since resources are shared among users, information
about the usage of one user can be leaked to another user. With this information
someone could reverse-engineer for example data about the customer-base or rev-
enue size. This can be done by, for example, monitoring the CPU usage or the
memory usage. When one user is using some computational power of the cloud,
this computational power cannot be assigned to another user.
With shared resources there will also be the risk that someone who shares re-
sources with a user who does malicious or unethical things, has the risk that he
gets blamed for it. Even when the person or organization can prove that it was
someone else who did the malicious things, the reputation is already damaged [23].
3.4 Identity and access management 25
Choice, consent and control: the user must have a choice about which infor-
mation is collected. Data subjects must give their approval for collecting,
using and disclosing their personal data.
Access and accuracy: users must have the ability to check which data is held
and check its accuracy. All the personal information has to be accurate.
Purpose: there must be a clear purpose for the collection of personal data. Data
subjects should be told why their data is collected.
Limiting use - disclosure and retention: collected data should be used only
for the purpose for which it was collected. Personal data should be stored
as long as necessary.
the end-user can use the cloud service in a way that he was used to when he was
using on-premise applications. This means that there will be a single log-in. Un-
fortunately this isn’t always possible.
When using on-premise systems, authentication is often based on Windows Au-
thentication. Once a user logs on to its computer, these credentials are used to
get access to other applications and resources as well. Once the applications are
running outside the organization, these credentials often cannot be used anymore.
This means that in cloud applications, there has to be another mechanism for
identifying and authorizing people. This might be even one of the most important
issues when talking about the cloud. A customer wants to be completely sure that
another organization cannot get access to its data. Therefore the authorization
part has to be really important. Especially when separate installations of a soft-
ware product are running on the same hardware, it is important to have a routing
mechanism that routes customers to their own installation. This means that such
a routing mechanism has to do the authorization part as well. Once someone
wants to do something in the cloud, this person should be identified. Afterwards
it should be checked whether or not this person is allowed to perform the action
on the requested resources.
For a CSP, the most “easy” solution to handle IAM is by developing an authentica-
tion mechanism for itself. This often results in the fact that customers cannot use
their existing user accounts. Because of this there will be no Single Sign-On (SSO)
possibility. Since a cloud application is often used by a lot of users, it will be useful
to create a role based access control mechanism. By creating such a mechanism it
will be easy to change the permissions of a lot of users and set permissions of new
users.
Especially in cloud computing it is important to use the principle of least privilege.
This means that a user should not have more permissions than necessary. Since a
cloud application is exposed over the Internet, it is important to keep the attack
surface as small as possible. This means that only the necessary elements are
exposed. It is also important to check permissions “at the gate” this means that
the permissions of a user are checked immediately when the user arrives at the
application. Besides this, every layer in an application should check permissions.
Once functionality of a system isn’t used, it should be disabled in order to pre-
vent people from performing unexpected operations on the system. All these core
security principles are not cloud specific, but since cloud applications are widely
exposed, they become more and more important.
As already said, for a customer it is important to adapt the IAM practices in such
a way that they can be used in the cloud as well. In fact this is something that
should be done together with the CSP. The Cloud Security Alliance [33] mentions
some important IAM aspects that need attention:
3.4 Identity and access management 27
For a cloud service it is not enough to have credentials for every user. A user should
also have the right permissions to the applications. This information should be
provided to the cloud service in order to get access. Not only user identities
should be provided, but also applications should identify themselves (when an
application is being called by another application). Using standards as the Service
Provisioning Markup Language (SPML) can help to automate this process. Of
course the information about identities and permissions has to be sent over a
secure line. When an organization is using a combination of multiple cloud services
that communicate with each other, it is preferred that it is not necessary to enter
credentials for every system. A Single Sign-On (SSO) mechanism can help with
this. This means that different services have to trust each other. An industry
standard that can help with this is Security Assertion Markup Language (SAML).
This is a message format that contains authentication data.
28 3 SECURITY
• Proof of ownership
Proof of ownership is concerned with who the owner of the data is. This is not just
a legal issue. Cloud service providers often perform de-duplication. This means
that the provider removes duplicates of the data, even if different users have added
the data. Since in this situation there is only one copy left there might be some
problem in telling who the owner will be. Assured data deletion is concerned about
the “real” deletion of data. When a user thinks he has deleted some data, the data
should be really deleted. For example the CSP should not keep and definitely not
use a copy that is not visible for the user. The only situation in which this could
occur is that the data still exists in a backup, nevertheless the user must be aware
of the existence of this backup. This is especially important when it concerns
personal or business critical data. An organization should and wants to know
where that kind of data is stored. Remote assessment of fault tolerance is the
remote detection of hard-drive failure vulnerabilities in the cloud. When there is
some hardware failure in the cloud, this must be repaired as quickly as possible to
guarantee the availability of the services.
Another aspect that changes for the customer is that their applications cannot trust
the server anymore since the server is moved to another domain, unless certificates
are used which is mostly done. In case of a private cloud that is hosted on-premise
this doesn’t hold but in any other case this will be the situation. Furthermore
IaaS solutions often rely on virtualization of the software but the virtual operating
systems also rely on the underlying system. This means that security issues in the
underlying system will also have impact on the virtualized environment.
29
4 Legal Aspects
4.1 Legislation
Cloud computing is not that new as one might have expected, but it was only
recently that it became popular. Because of this there is not that much legisla-
tion about this topic. Since cloud computing offers the possibility to access data
and applications over the entire world, there are many laws of different countries
involved. This is exactly the point where there might be a problem. Different
countries have different laws that can be contradictory.
a solution that can run on different platforms and check the performance of the
provider.
In The Netherlands there is a lot of (European) legislation applicable in which
the government can, under special circumstances, get access to data that is stored
within companies. Organizations also have to consider the USA PATRIOT Act
which grants the US government access to the data. This act is applicable to
companies that are located in the United States, have a parent company in the
United States, have a subsidiary in the United States [27] or even do business in the
United States on a regular basis [16]. The governments from different countries
can be prevented from reading the data of a PaaS and IaaS platform without
notification, by using state of the art encryption [15]. Although an organization
should definitely pay attention to this, they should not overreact by definitely not
using an American CSP. It is just a matter of weighing the consequences. When an
organization wants to be completely sure that its data does not get into the hands
of American authorities, the best way is to keep data in a private environment
that is completely managed by themselves [5].
• Improving the regulations that are concerned with the applicability of the
rules and the transmission of data outside the EU.
• Organizations are subject to only one privacy authority, i.e. the authority
in the country of their headquarters.
• The obligation to assign a Data Protection Officer in entities with more than
250 employees.
• Control about personal data. A person must be able to access his personal
data in order to check or change it.
32 4 LEGAL ASPECTS
In order to guide the data transmission between the European Union and the
United States a Safe Harbor Agreement has been set up (section 4.1.2). Neverthe-
less, when a European organization is doing business with an American organiza-
tion, it will be automatically subject to the Patriot Act. Since all member states
of the European Union and the Euro-parliament have to agree on this directive it
will still take 2 to 3 years before it can be implemented.
Safe Harbor Principles The United States do not offer sufficient privacy pro-
tection according to the European Directive. Therefore a Safe Harbor agreement
was negotiated for enabling the data transfer between Europe and the United
States. This agreement is only applicable to information transfer between those
two parties. An organization that is located in the United States can adhere to
those principles. When this is done the organization is expected to provide suffi-
cient protection. This agreement is not applicable to the financial services sector
which has its own forms of compliance. The Safe Harbor Principles include the
following [14]:
• The data must be relevant for the purposes for which it is used.
• The data subject must have access to his information in order to correct and
delete information.
A common opinion is that these safe harbor principles are not sufficient as well.
There is not enough control on the compliance to the principles. German organi-
zations that want to transfer their data to the United States will have to check the
compliance to the safe harbor principles actively [10] while other countries don’t.
The safe harbor principles will be replaced by the new version of the European
Data Protection Directive.
4.2 Liability 33
4.2 Liability
One of the biggest risks of cloud computing is that the service becomes (temporar-
ily) unavailable. Once this happens, the customer can experience a lot of damage.
Direct damage from the service being unavailable is often less bad than indirect
damage. Indirect damage consists of things like loss of business or loss of reputa-
tion.
Cloud service providers often don’t want to be liable for a lot of consequent dam-
age. Most CSPs will set a limit on the amount of damage for which they will be
34 4 LEGAL ASPECTS
liable. This amount is often not more than at most a few times the amount of
the fee that has to be paid for the service. The best thing for a customer to do,
is making use of facilities that are offered by a cloud service provider to help in-
crease availability. Examples of those facilities are: resilience, failover and disaster
recovery options. In addition to using these facilities, it is also important to make
good arrangements with the cloud service provider. These arrangements should
be written in some kind of contract in order to be legal.
35
5 Cloud platforms
Nowadays there are several cloud platforms available so it is not necessary for an
organization to create its own cloud or buy hardware for it. In this chapter there
will be a description of some existing platforms among which an organization can
choose.
• Windows Azure (an operating system providing scalable computing and stor-
age facilities)
future. Spot instances are instances on which everybody can bid. The bidder with
the highest bid can use the instance as long as his bid doesn’t get exceeded. This
type of instances can be interesting for batch jobs [42], since there is often nobody
waiting for these jobs to complete.
In order to spread the load and guarantee availability, Amazon offers some func-
tionality. They offer a load balancing, cloud monitoring and auto scaling. The
Elastic Load Balancer can be used to spread the load over different EC2 instances.
CloudWatch can be used to monitor EC2 instances, EBS volumes, Elastic Load
Balancers, and Amazon RDS DB instances in real time. CloudWatch provides
metrics such as CPU utilization, latency, and request counts. The auto scaling
functionality gives the user the possibility to automate the process of adding or
removing instances. The addition and removal of those instances can be based on
the metrics that are provided by CloudWatch.
5.4 Force.com
Force.com is classified as a “Platform as a Service” as well. It is a cloud computing
system from Salesforce.com with which applications can be developed. Once they
are developed, they will be hosted on their servers. There is quite some criticism
on the IDE and developer friendliness. The platform seems to have potential but
currently seems to be inappropriate for customers who want to use Force.com as
a standalone platform [60]. Once this platform is chosen, it is hard to switch to
another platform or to remove everything from the cloud and run in in a privately
owned data center. This is difficult because all software is created for the Force.com
platform specifically and it will not run on other platforms. This will create a
lock-in effect that might have some negative impact on your performance. The
Force.com platform uses its own programming language which is called Apex.
5.5 Oracle cloud 39
5.8 Sentia
Sentia is a small Dutch application hosting provider. Currently Aia Software
is in contact with Sentia about hosted and cloud solutions. That is the reason
why it is interesting to take a look at Sentia as well. The company can help
40 5 CLOUD PLATFORMS
organizations by implementing their software into the Sentia Cloud. Sentia will
help with the development and configurations of a specific application. By doing
this they guarantee that the application will meet the performance and uptime
needs of the customer. They guarantee an uptime in their SLA of 99.9%. In
comparison to other CSPs like Amazon, Sentia is quite different. Where Amazon
offers its customers to manage their cloud on their own, Sentia does not support
this. Sentia offers fully managed hosting which means that they will do all the
activities. When additional capacity is needed, it cannot be added by the customer
but it should be done by the provider. Sentia can work with their private cloud
as well as with clouds of Amazon and Rackspace. In both cases the cloud will
be managed by people of Sentia. Although scaling activities have to be done by
someone of the company, those activities can often be done within a day. Like
the clouds of Amazon and Microsoft, Sentia also offers a server limit of 8 vCPUs
(virtual CPUs), in addition to this processing power there is a limit of 128 GB of
memory. The VMs at Sentia run on a RAID-10 array which means that it is already
quite redundant. Furthermore there will be an offsite backup once a day and an
offsite snapshot once a quarter. This snapshot is made to guarantee continuity. In
contrast to Amazon and Microsoft, Sentia offers persistent storage of data inside
a VM. This information was gathered via email with Sentia (appendix B.6). Last
but not least, the Sentia cloud implementation are ISO27001 certified.
Part II
Solutions
41
42 6 CLOUD SOLUTIONS
6 Cloud solutions
For a cloud based solution there are several possibilities. In this chapter the pos-
sibilities for putting a product in the cloud will be discussed. Of course attention
has to be paid to the architecture, but as mentioned before the business model will
change as well, so this is something that should be kept in mind while designing a
cloud solution.
• Web servers.
are large fluctuations in the work-load, these fluctuations can be easily captured
by some cloud resources. By doing this an organization will not have to buy the
hardware to handle the peak load. When an application is used for a short term
it might be wise to use it as a cloud service, this prevents an organization from
buying hardware for only a short term.
Once it is determined whether an application is suitable to be put in the cloud
there are some general requirements that are commonly expected for a complete
cloud solution. The requirements that almost everybody wants to have in a cloud
solution are listed below:
define the possible customers. It might be the case that only a specific group of
people is interested in the solution so why focus on the rest. Another possibility
is that large organizations are only interested in private solutions and smaller
organizations are more interested in a public solution. This last point is actually
not a shared opinion [17]. This means that a cloud service provider, once the
potential customers are known, has to pay attention to how to satisfy specific
needs. As already mentioned, in order to do this the customer’s viewpoint has to
be the starting point: which problems should be solved?; why is this interesting?
Once the expectations of the customer are known, it is important to manage these
expectations otherwise the customers might get dissatisfied. So it is important to
communicate with the customer about the possibilities of the cloud solution.
6.3 Architectures
For a cloud solution there are several architectures possible. In figure 5 an archi-
tecture is shown in which an instance of the product is running for every customer.
By implementing this, the customer has its own private solution which might give
more confidence in the security because the application of one customer is sepa-
rated from the other customer. Furthermore, more customization is possible. For
the provider this solution results in more work because all separated instances have
to be maintained, of course this could be compensated with the price. In figure 6
there is an architecture in which there is an instance of the product running for
every version of the product. In this solution there can be several versions of the
software next to each other. For the provider this will result in more software
that has to be maintained. For the customer this means that he doesn’t have the
newest software automatically. This can be useful when there are software updates
that require some kind of action at the client side. In figure 7 there is a picture of
a solution in which all customers are using the same instance of a product. This
is the most general solution of the three. For the customer this means that he is
always using the newest version but that he cannot personalize the software that
much. For the provider this means that he has to maintain only one version and
that he has to provide a really scalable solution. In this solution it isn’t likely that
only one instance of the product will run because of availability concerns. There
can be running copies of the same instance in order to guarantee the availability
and maintainability of the system. When updating the system in such a situation
it is just a matter of replacing all the copies with copies of the new version. When
this is done by one at a time there will even be no downtime, which is an important
requirement for a cloud service.
The products that are shown in the figures can run in the public cloud as well as
the private cloud. Of course there is also a combination possible in which some
components of the product will run in the cloud and the rest is done outside the
6.3 Architectures 45
cloud. Another possibility is that they run in both the public and private cloud. In
this situation it is possible to give the customers a choice. It is possible to use the
public cloud as spare resources in case that the private cloud gets overloaded. A
second possibility is to offer the public cloud as a basic product and offer a private
cloud is case that the public offering doesn’t fit the customer’s needs. Reasons for
this might be found in legislation.
While on-premise applications often have access to many internal applications or
storage resources, this is an undesirable situation when an application is moved
to the public cloud. Since in a public cloud the same application is used by many
different customers, it is not a good idea to give this application access to internal
systems. In general it is a much better option to let the on-premise applications
push the data that has to be processed to the cloud.
46 6 CLOUD SOLUTIONS
7 Business model
The offering of cloud services results in a change in the way in which an orga-
nization can earn money. It is impossible for an organization to ask money for
the software itself. Besides this, there are some other important factors that will
change. It is much harder to create a lock-in effect based on costs because the
entrance costs for the customer are relatively low, therefore it is easy for them to
switch to another vendor. There are several possibilities to earn money as a cloud
service provider for example by using one of the following pricing models:
Pay-per-use model: pay for every time when a request is done. This will result
in costs that are less predictable because in some organizations it is very
likely that there are peaks during the year in which the service will be used
more. An exception to the unpredictable prices of this model occurs when
an organization is capable of predicting the peak-loads.
Pay-per-seat model: pay for every user that is using the application. This re-
sults in predictable costs because the number of users to which access is
given, is known. This predictability completely disappears when the soft-
ware is used to process data from a website. In this situation it will be hard
to tell what a user is. Once everybody that visits the website is a user, the
costs will be highly unpredictable.
Subscription model: pay a fixed price every month. This will result in pre-
dictable costs since it will be the same every month regardless the number of
users, the time of using, etc. In combination with this model it is possible to
ask a fixed price every month for a specific amount of capacity. When more
capacity is needed, the monthly subscription fee will increase.
The amount of resources used: pay for the amount of resources that is used
(e.g. computation time, memory and storage). A customer cannot predict
the costs in advance since he doesn’t know how many resources are needed
for a specific task.
It is also possible to have a mix of the pricing models. It is for example possible that
a provider asks a small monthly fee and that the rest of the cost will be covered by
a pay-per-use pricing model. In this situation the start-up costs can be covered and
the variable costs can be covered with a variable price. All those possibilities have
some advantages and disadvantages in a particular situation. The most important
aspect might be that the customer understands what he is paying for. A lot of
customers will not understand what they are paying for when they receive an
invoice based on resource usage. They just don’t know the relation between the
49
tasks and the amount of resources they use. Because a lot of customers will not
understand this relationship, it will be hard for them to check the final amount. So
a cloud service provider should offer a metering service (used for billing) in which
the customer will get confidence for the correctness of the bills. Furthermore it
is important to give customers a choice since it might be that customers want
different things. Some customer could be happy with the movement to the cloud
but others might be not willing to put their data in the cloud. This last type of
customer should not be forced to move to the cloud because than they will switch
to another vendor. Instead of forcing them, there should be some kind of menu
of which they can choose. It can be the case that those customers don’t want to
move everything to the cloud but that some parts still could be done in the cloud.
Once the value of the customers that don’t want to move to the cloud is less than
the costs of offering the menu of possibilities, it will be a valid option to remove
the existing solutions from the menu and offer a cloud solution only. Customers
should also get the possibility to manage some things by themselves. This has
some impact on the business model because it means less work for the provider.
As already mentioned before, for a CSP it is really important to gain the trust of
the customer. When the customer doesn’t trust the provider, he is certainly not
going to pay for the services that the provider offers. The first step in gaining this
trust is transparency. The provider should tell how different things are organized
and why the amount specified at the bill is as high (or low) as it is.
As a start-up cloud service provider it might happen that the first year(s) there
won’t be a lot of (or even no) profit. This can happen because the start-up costs
can be relatively high, as with all IT projects. Since revenues will be based on usage
instead of licenses or hours, it will take some time before a stable revenue stream is
generated. In the situation in which licenses were sold, a lot of money was earned at
once while in the cloud situation these licenses aren’t sold anymore. This can result
in some lower income and higher personnel costs during the first years. In order
to prevent this, there should be a plan on how to start the service. There should
be an estimation of the resources that are needed, especially when the service
will be provided from a data center that is owned by the cloud service provider.
Nevertheless it is not always possible to prevent losses. For ISVs (Independent
Software Vendors) it might take about 3 up to 5 years before moving to the cloud
becomes profitable. So on the short-term moving to the cloud might cost an
organization money, but for the long-term it can generate a more stable revenue
stream. [29]
According to research of Heliview [29] an IT company that wants to offer cloud
services, should do this with a “big bang”. This means that the switch to the cloud
should be done at once instead of in smaller parts. This means that it should be
decided whether a cloud service or an on-premise solution will be offered. The
50 7 BUSINESS MODEL
reason for this is that it is hard to combine the different business models. The
big bang approach has a high risk and that’s why organizations are not using this
approach. Because of this several companies have started a second organization to
operate in the cloud business. For an average sized company it can take up to 11
months before their first cloud service could be launched. The bigger the company
gets, the longer it will take before a cloud service can be launched. The big bang
approach doesn’t mean that the cloud service has to be released in one step, this
can still (and should) be done in smaller steps.
Moving to the cloud has also some impact on the role of IT people within an IT
company. Nowadays it is pretty common for an IT specialist to have the role of
technology expert, when changing to cloud services, this role will be more like
an adviser. The result of this is that there will be less or no work for some
IT specialists. The IT adviser will need to have knowledge about the primary
processes at the customer side, which he probably already had some.
Part III
Case Study: Aia Software
51
52 8 CURRENT SITUATION
8 Current situation
8.1 The Company
Aia Software is the developer and supplier of the ITP Document Platform, a solu-
tion for the production and distribution of document output based on application
data (more information in chapter 8.2). The company was established in 1988 in
the Netherlands and is currently located in other countries as well. Aia Software
BV is a subsidiary of Aia Holding BV. The complete organizational chart can be
found in figure 8. The parts of Aia which are located in other countries are sub-
sidiaries of Aia Holding BV as well, so the parts of Aia abroad are sister companies
of Aia Software BV, which is located in Nijmegen. Aia Software BV, Aia Soft-
ware UK Ltd, Aia Software Deutschland GmbH, and Aia Software North America
Inc. are 100% owned by Aia Holding BV. It is Aia Holding BV that is the owner
of the intellectual property of the organizations. Aia Software has customers in
different countries and different sectors. A lot of customers are in the financial
services sector, public sector, legal, IT and communication, manufacturing, retail,
real estate, logistics and business services. Some of these sectors will put some
additional requirements to the cloud solution. For example for some organization
it is not allowed to bring their data outside Europe or even their own country.
As shown in the figure, Aia Software BV has a sister company in the United States.
This means that Aia Software North America Inc. is subject to the American law
which includes the Patriot Act.
the inner working (chapter 8.2.3) there were quite some changes that can make
migration pretty hard. Upgrades of the software are included in the maintenance
costs but are not mandatory. So, the customer has a choice to upgrade to a newer
version or stay with the old version.
• Text blocks
• QForms
• Content Wizards
A text block is a piece of text that can consist of pure text or text with data
fields and they are stored in the repository. When a text block consists of pure
text it is just a piece of text that can be re-used in several documents. When a
text block contains a data field, this data field will operate like a variable. The
value for a data field can be derived via the ITP data retrieval mechanism or via
user interaction. QForms are used to determine the value of this data field via
user interaction. These forms are used to ask the user the value of some relevant
data fields. So QForms define the questions for the variable fields in a text block.
Related data fields can be put in a field set.
Content wizards are used to enable users to define their own documents. By using
a content wizard a user can define the content of a document by adding sections,
subsections and text blocks. Furthermore the user can specify which of those
elements are mandatory and which are optional. This is something that can be
done by the user and actually this should be done by the user, since he is the
person that has all this knowledge. The IT department should be only there for
support and creating templates that the user can use. This is what is called the
BOBMIC (Business Owned, Business Managed, IT Controlled) principle. [52]
54 8 CURRENT SITUATION
8.2.2 Architecture
At this moment there are two versions: a full version and a free version. The
free version of the Platform is still in development so there are some uncertainties
about the architecture. Basically the free version is a limited version of the full
version.
ITP Full version Aia’s ITP is a product that consists of basically 3 parts.
The first part is ITP/OnLine, the second part is ITP/Server and the third part
is a range of document processors. ITP/OnLine is the part that is responsible
for user interaction, the applications of the client can communicate with this part
by opening a URL. When the creation of a document cannot be fully automated
this part will ask the user for extra input. An additional part of this is the letter
book in which the user can select which type of document he/she wants to create.
ITP/OnLine sends this request to the ITP/Server, this part is basically a queuing
mechanism that divides the requests over the document processors. ITP/Server
can be called from outside directly as well, in particular this will happen when no
user interaction is needed. After the division of the requests, the document pro-
cessors take templates out of a database/repository and create a document (doc,
docx, pdf, Email, SMS, Fax, Print stream, etc.).
During the installation of ITP/Server there are a few parts that are being installed
on the system. First there will be the installation directory in which all files are
present which are needed to run an ITP/Server instance. Secondly there is the
ITP Work directory. This is a directory that exists for every ITP/Server. In this
directory data about the host, port, license, etc. is available. This is also the
directory in which session data and temporary data will be stored.
In principle ITP generates a doc or docx file without using a word processor. Once
this document is produced a rendering engine has to be used to generate another
file format out of it. For this step, ITP uses the Microsoft Office Word rendering
engine. Because of this step there will be a Microsoft Word license needed when
PDF files have to be generated. ITP/OnLine uses Microsoft IIS technology or the
J2EE platform. Document processors have a shared file system to store tempo-
rary results. If a task has to wait for user input, a next task is started and the
temporary result has to be stored on a shared file system because it might happen
that another document processor will continue with this task. Data can be send to
ITP in XML format, but ITP is also capable of gathering data out of a customer’s
databases and systems.
An additional component is the CCM (Customer Communication Management)
part. With ITP/CCM it is possible to untap the value of an organization’s CRM
systems. For example an organization’s customer can have a preference for a spe-
cific format of correspondence (email, mail, sms, etc.). This kind of information
8.2 ITP Document Platform 55
is often stored in CRM systems. With ITP/CCM it is possible to use this infor-
mation during the document generation process. A model of the ITP Document
Platform can be found in figure 9.
ITP Express ITP Express is a free version of the ITP Document platform. It
consists of exactly the same parts as the paid version. Nevertheless is has less func-
tionality. The first important difference is that there are only doc files produced
which results in the fact that there is no license of Word needed. Furthermore
application data can be delivered in XML format only. Another difference is that
there is no CCM added to the functionality. At this stage ITP Express will contain
56 8 CURRENT SITUATION
only one document processor. Another component that is not implemented in ITP
Express is the batch part. The execution of batch jobs is not supported for ITP
Express. A model of ITP Express can be found in figure 10. This free version is
created to generate a lot of ITP users. Once those users are familiar with ITP,
they might want to use more functionality for which has to be paid. By doing
this, it should be possible to put less effort in getting small companies to buy the
software which takes quite some work in the current situation.
3. Once ITP/Server has received the request, it will be placed in its queue and
passed on to a document processor when there is one available.
4. The document processor uses the evaluator to perform all the necessary
operations. The evaluator has access to a repository or content publication
database from which the necessary data can be gathered. The evaluator has
access to a CCM database as well for gathering information.
Once there is information from the user needed, it will be asked by an iteration of
steps 5-10.
5. An XForm is send to the document processor.
6. The XForm is forwarded to ITP/Server. During the time that the document
processor has to wait, the session will be suspended and another job can
continue on the DP. Once the needed information is entered, the job can
continue. The entire document will be built from scratch with the data that
was already entered, being retrieved from cache. This rebuild is also done
when the user clicks the back button in the browser. In fact after every step
of data retrieval the entire document is built again. This rebuild is done
because it might happen that some things (e.g. Text Blocks and questions
to the user) are changed in the meantime. This can especially happen when
a job is suspended for a longer time.
8. Once the user has submitted the data, the response is send to ITP.
11. After all data is retrieved from the repository, databases and user, the result
will be send to the user. The result can be a doc, docx, pdf, etc. The user
has to specify whether there are doc or docx files being produced. Other file
formats are produced using Microsoft Word. So for the production of doc
and docx MS Word is not needed.
As shown in figure 11, it takes relatively many steps (step 5 to 10) in order to send
an XFrom and its response. The reason for this is that ITP consists of several
layers. The core functionality is basically the same for a lot of years. Afterwards
functionality was added by creating an extra layer around the former product. So
first there was the core functionality of producing a document, after some time
a queuing mechanism (ITP/Server) was built around it. Again after some time
interactive documents had to be produced and ITP/OnLine was added as an extra
layer. At some point a web services interface was introduced as an extra layer in
ITP/Server. This is how the ITP Document Platform is build and will be built
for a long time. The result of this is that request and responses have to be passed
on through several layers.
ITP/OnLine is an application that runs on an IIS web server or a J2EE web server.
ITP/OnLine, ITP/Server and document processors can be installed on separate
machines. In practice some of these ITP components are combined on machines.
The sessions that are set up, are basically nothing else than Windows services. The
data of those sessions and the data that is gathered during the session have to be
stored in a persistent way because it has to be available when a session continues.
Data is stored in sessions in order to create a state-full application.
ITP/OnLine is developed for usage within the intranet but there are some cus-
tomers that access it over the Internet. This “change” is pretty easy to make since
ITP/OnLine is a web application.
8.2 ITP Document Platform
Figure 11: Diagram of communication channels in ITP
59
60 9 ITP IN THE CLOUD
9.2 Requirements
The ITP Document Platform is an application that is suited to be put in the
cloud since it is an application without a lot of back-end systems. Furthermore
the platform doesn’t have a constant workload which is one of the characteristics
that make an application suitable for the cloud [48]. Some basic requirements that
are based on chapter 6 and set in consultation between Aia and me, are mentioned
below.
• The response time must be at the same level as in the current situation
– No data leakage
9.2 Requirements 61
– No loss of data
– No exceeding of the contract
• The solution must be made in such a way that the entire platform can be
put in the cloud afterwards
– PDF generation
– Sending letters/e-mail
– Printing
• The solution must support programming languages that are currently used
(C++, C#, C, Java)
The cloud platform that will be chosen has to support the generation of pdf as
well, although this is not a functionality of ITP Express. The intention is to put
the entire ITP Document Platform in the cloud after some time. This means that
generation of other files than doc must still be possible. Since there might be a
problem at this point, this should be considered while designing the architecture.
Another very important requirement is that existing code has to be re-used as
much as possible. By doing this the time to market of the cloud version will
decrease a lot since there will be much less work. Furthermore this will reduce the
risk of introducing errors.
For their customers, Aia should offer a SaaS solution. This is the best way to
go because, for now, Aia only wants to offer the service of creating an output
document. There is no need for the customer to install its own applications on the
platform. The customers are only interested in getting their documents so ITP in
the cloud will be a black box for them. They will just send a request to it and they
will get a document back. Only a few customizations can be made via a special
customer interface. For batch jobs there has to a mechanism that sends files to the
customer in an asynchronous manner because batch jobs can take a lot of time to
complete. This can be done by sending every single file to the customer, or wait
for the job to complete and zip all files and then send it to the customer.
9.2.3 Legislation
As with all cloud service providers, there is a lot of legislation applicable to Aia.
Nevertheless, Aia will not put personal data in the cloud, it is Aia’s customer
9.2 Requirements 63
that puts the data (temporarily) in the cloud. Therefore the customer will be
responsible for what happens with the data. Of course the customer wants to have
some guarantees about what happens with its data and some information about
this should be put in a contract. Nevertheless, since Aia is processor of the data,
the company will have responsibilities for what happens with the data as well. In
general Aia can use all cloud service providers that are located in the EEA and
providers that comply with the safe harbor principles.
Another important aspect is what happens when a cloud service provider (Aia or
Aia’s provider) fails to meet its SLA. A lot of this information has to be included
in contracts between Aia and its customers, and in a contract between Aia and
the cloud service provider from which Aia will be purchasing the infrastructure.
9.2.4 Platform
In chapter 5 there was a short list of existing cloud platforms among which an
organization can choose. Since Aia needs to develop their software on an IaaS
solution, the platform should be classified as an IaaS solution. From the viewpoint
of complexity it might be useful to buy everything from one provider, but for from
the viewpoint of availability this is the opposite. In this situation the provider
can be held responsible for cloud failures. Since Microsoft, Google and Amazon
are expected to have a sufficient protection level, they will comply with the Dutch
law so those platforms could be chosen as well. The result of those providers be-
ing American, is that the USA PATRIOT Act will be applicable to them. The
platform has to operate in such a way that the software which is running in the
public cloud, can be easily transferred to the private cloud as well. Furthermore
it is preferred to have as less lock-in effect as possible.
Some of the platforms that were mentioned in chapter 5 require a specific program-
ming language. Aia is not planning to rewrite all the code of the ITP Document
Platform so the chosen cloud platform should be able to handle (most of) the pro-
gramming languages that are used in the current version of ITP. Because of this
the solutions of Google and Salesforce.com cannot be used. Google AppEngine
only supports Java, Python and Go which are not the required languages and
Force.com only supports its own programming language Apex.
Since it was decided that a public solution is preferred, the platform should offer
a public solution. Because of this reason it is not possible to use the solution from
Oracle right now since they don’t offer a public cloud solution. In a few months
this could be different because Oracle will launch a public solution during the
summer of 2012, but for now they don’t. The same argument holds basically for
vCloud from VMWare. In this platform there is also no direct public solution.
The offering of Sentia will be really interesting because it’s a Dutch company.
Furthermore the company is not that big which means that the response times
64 9 ITP IN THE CLOUD
in case of a problem are likely to be shorter. It will be likely that Aia will have
more influence in this process as well. Since Sentia offers a fully managed hosting
solution, a lot of work will be done by their specialists. Sentia offers the possibility
to run on the Amazon cloud. Sentia also offers persistent storage within a VM.
Because of all these possibilities, Sentia will be the best provider to start with.
The costs of this solution are highly dependent on the amount of resources that
has to be purchased. The base amount, including operating system management,
is set at 90 euros a month. The price per virtual CPU is set at 50 euros a month.
1 gigabyte of memory is offered at a price of 15 euros a month and 1 gigabyte of
disk space will cost 50 cents per month. Every configuration that has to run 24/7
will cost an addition 150 euros a month for support. The rate for the network
connection (1 Mb/s, including firewall and network service) is set at 125 euros
a month. Additional costs to the cloud solution will be the licensing costs for
the software that will be installed within the virtual machines. Some examples of
software that has to be installed on a virtual machine are: Windows Server, SQL
Server and Microsoft Word. Sentia can help Aia in getting these licenses. These
licenses have to be paid in monthly payments as well.
9.2.5 Security
In chapter 3 there was an overview of different security aspects in relation to
cloud computing. There are quite some top threats that are applicable to Aia
Software but to which they don’t have influence because these aspects are being
controlled by the cloud service provider. For example people doing malicious things
is something that cannot be prevented by Aia, the only thing they can do is to try
to control how customers are using their software. Data leakage that occurs from
shared technology problems is something that cannot be controlled by Aia either.
The only thing that can be done is to make the solution a black box and keep
data from customers separated. Of course there are also some aspects that have
to be taken into account by Aia. Since the customer has to connect to the ITP
system in the cloud, Aia must offer some APIs to make this possible. It is really
important that those APIs are secure, otherwise there might be the risk that other
people can get into the system or that data of a customer might leak to another
customer. The login of a customer may never leak to a malicious person.
The privacy requirements mentioned in chapter 3.3.1 aren’t all applicable as well.
In the cloud solution there will be no data collection by ITP. The customer will
have to send all the data to the ITP system. This is done because having a
cloud solution that accesses databases from several customers is a situation that
is undesirable. In the cloud data gathering has to be minimized, so the customer
should send only the information that is needed for the documents. If there is more
data send, there will be an unnecessary risk of privacy sensitive data leaking out
9.2 Requirements 65
of the cloud. ITP in the cloud will only store privacy sensitive data temporarily
(when the data is needed for a job that did not finish yet).
In order to keep customers away from each other’s data, all access to files and other
resources has to be set for a specific session (when a shared ITP/Server is being
used). This means that a customer can only access his own required files within a
session. Once the session is closed, there will be no access to the data until a new
session is started. Furthermore the principle of least privilege should be used. By
default a person should have no access to the system, once it is discovered that
a person needs to have some rights, these rights have to be added to its account.
This is called the principal of least privilege. Once several people need the same
rights, role-based access can be implemented.
Identity and access management is of course highly relevant in order to keep data
separated. Once there are separate systems for every customer, access rights can
be set on folders and databases. As an extra service to the customer it would be
nice when the authentication can be integrated in the enterprise solutions of the
customer. For Aia Software it is important to have a guarantee that a customer
cannot use more resources than the amount that is specified in its contract. For
Aia’s customers it is really important to have the knowledge that the confidentiality
and the integrity of the data is guaranteed.
9.2.6 Standardization
As already mentioned in section 6.5, the first step when moving existing software to
the cloud, is standardization. The current version of the ITP document platform
isn’t standardized since a lot of customer specific configuration has to be set within
the software itself. In ITP/OnLine there will be the Online Apps that are customer
specific. Once these applications are removed from ITP/OnLine and loaded just
in time, the ITP/OnLine installation can be the same for every customer.
More configuration problems exist in ITP/Server. In the current version of ITP,
the content publication database is installed next to the ITP/Server component
on the same machine. Since this data is very customer specific, this should be
removed from ITP/Server and put on a higher level. Another aspect that can be
very different for every customer, is the scripting part. Every customer has his
own scripts and it is really undesirable that a customer can use another customer’s
scripts, therefore the scripts should be removed from ITP/Server as well. All this
configuration data should be loaded into ITP/Server, just before it is needed.
66 9 ITP IN THE CLOUD
9.3 Challenges
9.3.1 PDF Generation
ITP Express can generate doc files only. Nevertheless, for the future it is the
intention to put the entire ITP Document Platform in the cloud. This means
that those doc files need some post processing. Since Microsoft Word is the best
application to handle these files, this application should run in the cloud as well.
There seemed to be a problem with the Word licenses when running the software
in the cloud, but after some correspondence with Microsoft it was said that there is
no licensing problem for our solution. One other option is to switch to OpenOffice.
The downside of this solution is that doc files sometimes have a different layout
when opening them in OpenOffice. Another option is to use Microsoft Sharepoint
Server 2010. Sharepoint Server contains an extra component which is called Word
Automation Services. These services can convert MS Word documents into other
formats of MS Word documents plus PDF or XPS. Word Automation Services
also provides the functionality to spool the output files to a printer. Furthermore
the number of parallel processes can be specified in the Sharepoint GUI. This
gives the possibility of calculating the maximum throughput of documents. The
services also provide the functionality of monitoring jobs and restarting conversion
when a failure occurred (with a maximum number of retries). When a document
is converted, it is possible to automatically remove the source document. The
downside of this solution is that a license for Sharepoint Server 2010 has to be
bought since it isn’t possible to use the services separately. Another downside of
the Word Automation Services is that the frequency for checking jobs is 1 minute.
This interval has to be set in the Sharepoint Portal. This means that it is possible
that a user has to wait 1 minute before his conversion job is even started. This
kind of behavior is unacceptable for interactive jobs, it is not done to let a user
wait that long. A last more rigorous solution might be to stop using any kind of
the existing conversion techniques and start creating, for example, tex files. This
might have some other advantages like an already available web editor. This can
result in some advantages when the models are being designed.
9.3.2 Multi-tenancy
The ITP Document Platform is currently designed to serve only one customer.
When ITP will be put in the cloud there will be real benefits for Aia when a lot
of customers can share the same system. When doing this it is important that
the customer will not notice this in the performance. This means that all cus-
tomers should be treated fairly according to the SLA. It is not acceptable when
one customer has to wait for another customer to complete his jobs. An even more
important aspect is that a customer cannot access another customer’s data. So
9.3 Challenges 67
the multi-tenancy problem, basically exist of two smaller problems. One problem
is how customer data can be kept separated and the other problem is how the
performance for every customer can be guaranteed.
To separate customer data, there will be a separate content publication database
(CPD) for every customer. This also solves the problem that data communication
to the database cannot be load balanced. The databases can be accessed by the
corresponding customer since this is necessary for the publication of the models.
Furthermore these databases can contain a lot of additional configuration infor-
mation in order to get ITP/Server stateless. Session data and temporary data
will be stored in a database as well because it is undesirable that this data can be
accessed other customers.
In order to guarantee direct response to a customer’s request, there should always
be some overcapacity (only when there is less capacity available than the capacity
for which is paid by the customer). This overcapacity is necessary because it takes
some time (this varies from 2 to 10 minutes) for a new instance to start. For a
customer it is unacceptable to wait this amount of time. This problem could be
partly solved by setting a trigger on the response time. Once the response time is
increasing there can be a trigger to start a new instance before the moment that
the response times in the SLA are reached. This will probably result in better
performance, but when a lot of request will come at once, this option will not
solve the problem. Another possibility to create a higher availability for multiple
users, is by using two or more different providers. By doing this there will be no
dependence on a single provider so when a failure at the provider’s side occurs, it
will be relatively easy to distribute to the other provider. It is possible to switch
the load over different providers when the requests comes in, but this won’t be the
best solution since network traffic between different providers is relatively expen-
sive compared to internal traffic. When two providers are being used, it is better
to keep them separated and put one pool of customers on an ITP installation that
runs with one provider and another pool of customers on installation at another
provider. When a large failure occurs in this situation, it will still be relatively
easy to switch customers to the other installation.
will automatically scale according to the demand. By doing this there is not much
interaction needed. So the second step is that a “cloud operator” within Aia starts
an implementation when there is a new customer and afterwards the application
will automatically adjust to the demand. The last step that is left, is to create an
application that supports multi-tenancy and that can scale automatically based
on demand, without treating users unequally (according to their SLA). In order
to get the ITP document platform highly scalable, it is necessary to make the
installations as stateless as possible. In order to do this, the session information
of ITP/Server has to be stored outside ITP/Server. By doing this, a job can run
on every ITP/Server.
tomer must be able to predict his costs. This means that the customer will buy a
maximum amount of ITP capacity for a fixed price per month. When this limit is
reached the customer will have to wait till previous requests are processed.
9.5 Architecture
9.5.1 Potential Architectures
Load leveling: This allows work to be spread over time. This results in the fact
that a message consumer doesn’t have to be able to handle the peak load.
Loose coupling: This allows message producers and consumers to work com-
pletely independent from each other. This means that they can do their
tasks without the need of interference of the other.
Large requests will be stored on a cloud storage service and a reference to it will
be added to the queue. By doing this there are no large requests that have to be
loaded into the memory. The downside of this design is that the queue is a service
that has to be provided by Aia’s CSP. This means that, unless Aia will develop its
own queue, the number of CSPs will be very limited. Because of this it will be less
easy to switch to another provider. Furthermore this solution will need relatively
much work that has to be done to get it working.
Figure 19 shows an architecture that looks a lot like the architecture in figure 17.
There is only one important difference that has some consequences. In this ar-
chitecture ITP/Server will be customer specific as well. This means that there
are more ITP/Server installations needed. Since ITP/Server doesn’t use a lot of
resources, it is possible to install multiple ITP/Servers in a single virtual machine.
The other downside of this architecture is that also the document processors will
be customer specific since they belong to only one ITP/Server. This will result in
a less efficient use of the document processors this customers cannot use capacity
that is not being used by other customers.
78 9 ITP IN THE CLOUD
could also be useful, but this solution will be more useful when all customers are
sharing all components. When the support for the old version is stopped, the
architecture of figure 6 is actually the same as the architecture in figure 7. The
solution in figure 5 can also handle different version.
The architecture in figure 7, in which there is only one installation of the product,
is not suitable for Aia. Since there are destructive updates possible for ITP (like
the update from ITP 3.5 to ITP 4.2) this will be a deal breaker for using this
solution. Otherwise this will result in the fact that after an update, customers
cannot use ITP anymore.
In the previous section there were described a lot of possible architectures. These
architectures were discussed with the management of Aia and finally one architec-
ture was chosen that had to be extended. Figure 12 to figure 16 were evaluated
but it was decided that the business model will be based on the number of docu-
ment processors. Furthermore the application should be able to do more than just
producing pdf. Because of this, more customizations are needed, which results in
an installation in which there are customer specific components. Once this was
known, figure 17 to figure 20 were created. At first the intention was to create an
architecture in which document processors would be scaled on demand. After some
discussion it was determined that once a customer pays for 3 document processors,
there should be always 3 document processors for that customer. Because of this
decision, ITP/Server could be assigned to a customer as well because the workload
of ITP/Server is not that high and it doesn’t make sense to divide the work of one
customer over different ITP/Servers. This means that the architecture in figure 19
and figure 20 were left. Since it is better for the entire ITP product to remove
customer specific configuration from ITP/Server, it is decided that this will be
done. This means that in the figure, every customer has its own ITP/Server, but
these ITP/Servers will be clones. In this case a clone means that they will share
the installation base. The ITP/Server installations will differ from each other in
the work directory. This work directory contains scripts that can be executed and
other specific settings like the host and the port on which that specific ITP/Server
is running.
The architecture will be designed in such a way that the ITP Document Platform
becomes a kind of black box. The customer will send in a request via ITP/OnLine
or his application and gets a document out. At first this request will be an XML
message and the result document will have the doc format. The customer will be
allowed to modify the settings of ITP as less as possible. The architecture for 1
version of ITP can be found in figure 21 and 22. When another version of ITP is
added, for a specific customer the installation can be replaced by the new instal-
lation. There will be no connection between the different versions. In order to get
the software easily scalable, all document processors must be able to communicate
80 9 ITP IN THE CLOUD
with the different content publication databases of the customers. Since every
customer has his own content, these databases have to be separated. When there
are too few document processors there will be an option to add (temporarily) an
extra document processor. In the beginning this has to be done by someone within
Aia Software.
In the architecture there will be running two systems. One system is responsible
for the interactive and on-demand jobs, and the other system will be responsible
for the batch jobs. The distinction between the two systems is made to guarantee
availability because otherwise there would be the risk that a series of batch jobs,
blocks all other jobs. This is in particular true when one ITP installation is shared
by different customers. So at the start when every customer has his own document
processors, the batch part could be combined with the interactive part. The only
thing that has to be done in this case, is setting priorities for interactive and on-
demand jobs. For the interactive part there will be a limit for the time that a job
can run in the document processor. When this time gets exceeded the job will be
killed because interactive jobs should be executed quickly. If the execution takes
too long, the customer has to change its model. This measure is also implemented
for guaranteeing response times.
Since ITP will be accessed over the Internet it must be prevented that everybody
can start using ITP. Therefore there will be an authentication component in front
of all the ITP/OnLine components. This component can also handle the maxi-
mum number of users that is allowed to use the ITP document platform. The
business model has quite some impact on the architecture. Since the business
model will be heavily based on the maximum number of document processors that
a customer can use. This means that it has to be prevented that a customer ex-
ceeds the processing capacity for which he has paid. This level of capacity (and
other agreements that are made) is described in a SLA. Because of this there has
to be a component in the architecture that checks this SLA and decides which
actions a user can do. Therefore in the architecture there is the “contract guard”
component. This component can also be used to load user specific configurations.
The contract guard and authentication layer can be combined in a single compo-
nent. Since different customers use for example different scripts and constants, this
should be removed from ITP/Server and be stored externally. Since ITP/Server
should have this configuration at some point, it is a good place to gather this
information just before ITP/Server is used. When such a component is added
to the current on-premise version of ITP, this version will also benefit from this
solution since the components are more generic without losing functionality. This
will help to improve the installation process. This is actually part of the stan-
dardization phase that was discussed in chapter 6.5. In this phase the software
should be standardized for every customer, which means that there should be no
9.6 Implications 81
9.6 Implications
Putting ITP in the cloud has some implications that have to be considered. The
advantage of the product in the cloud is that the newest version is always available
for the customers. This might also bring some problems when the software is being
updated. Updates that do not need to change the software at the clients side can
be done automatically and for everybody, but updates for which the client also
has to change some things cannot be done automatically since this will break the
software for clients that have not done those changes. This problem could be
solved by having two versions in the cloud. Since this is not a desired situation,
the time that there are two different versions in the cloud, should be limited. For
example: support for the old version could be given for 2 years after a new version
is released. Somewhere within this time the customer must switch to the new
version or the contract could be ended automatically.
In the current situation ITP can gather its data by accessing the databases at
the client side. In the cloud solution this cannot be longer the case. Since the
functionality of ITP Express is the first version that will be in the cloud, this not
a problem since information can only be send to ITP via a XML message. Once
82 9 ITP IN THE CLOUD
more functionality is added to the cloud solution Aia should keep in mind that it
is not possible anymore to access the database at the customer side. All the data
that is needed should be send to ITP via push messages.
The location of the data and the data processing might be important for some
customers. Some customers (including foreign customers) are not allowed to bring
their data outside the country borders. When it comes to foreign countries, the
legislation in these countries still has to be considered.
The performance and the costs for the customer will be related to the requests that
are being sent to the cloud version of ITP. In the current situation there is a lot
of information in the request that is possibly used by ITP. This means that there
is a lot of information that wasn’t necessary to send with the request. Especially
in the cloud this generates a lot of traffic for which has to be paid. It is up to the
customer to pay this extra amount of traffic. This is something that should be told
to the customer. This might change the way in which they will send requests to
ITP. Another cost aspect to which the customer might have some influence is the
overall time that ITP is used. By splitting large batch jobs, there will be several
document processors that each require some start-up time. This means that not
splitting batch jobs can result in lower costs. Nevertheless, this isn’t always true,
so this should be done with caution. When large documents are being created, it
might be more advantageous to send smaller jobs because of heavy resource usage.
The definition of a large document depends on image format, image size, number
of pages, number of styles, etc. So when sending a request to ITP this is something
to which the customer has to pay attention. At some point, there will be moment
at which it will be more advantageous to cut a batch job into smaller parts again.
The ITP Document Platform is also capable of running batch tasks. This task is
not included in ITP Express but there are some issues that have to be handled.
Since batch tasks can need a lot of time to complete, there are some problems
when running batch jobs in a shared environment. Since interactive jobs need
user interaction and have a short time to completion, it is unacceptable that a
user has to wait for a batch job to complete. Therefore the batch jobs and the
interactive jobs should run in a separate instance. When this is done, not all the
problems are solved yet. There is still the risk that one customer creates so many
batch jobs that all document processors are being used. In this situation another
customer has to wait till new instances are started. For this problem there will be
several options. The first option is using the internal mechanism of ITP/Server
that reserves a specified number of document processors for interactive and on-
demand jobs only. Document processors that can handle batch jobs, can handle
interactive and on-demand jobs as well (the other way around is not possible).
When doing this, research should be done to the right division between document
processors for interactive/on-demand jobs and document processor that can handle
9.6 Implications 83
10 Proof of Concept
10.1 Testing limits
As already mentioned in chapter 2, cloud computing offers the possibility to use
hardware more efficiently. Because of this, Aia wants to put multiple customers
on the same hardware and in the same virtual machine. In order to find out
what the limits are, some tests were performed. In table 4 the memory usage of a
number of ITP/Server installations (including 1 DP each) is shown. The column
“after 1 run” indicates the total memory usage of the all installations after 1 doc
to pdf conversion. This conversion is done because it uses Microsoft Word. The
conversion consists of a Word document that was located on the hard disk which
was converted to a pdf file. After this conversion all document processor have their
own Word instance up and running which of course uses memory as well. Based
on the last column the conclusion can be that an ITP/Server installation with 1
document processor (including a running Word instance) uses approximately 26
MB of memory. One note to make is that in the set up with 290 installations,
the second run failed with a Word Automation Server error. Furthermore there
were some set ups with up to 500 ITP installations, but those installations failed
once a doc to pdf conversion was done because of the Word Automation Server
error. When only a simple model was created (this excludes the use of Word) by
the installations, no problems occurred. The column “All installations” contains
the memory usage of all installation together that are running (including a Word
instance per installation). This value is calculated by subtracting the value in
the column “Before” from the value in the column “After 1 run”. The value per
10.2 Minimal solution 87
path that will be followed in every situation. For interactive jobs this path will be
followed as well. After this run, a session id will be given back to the customer’s
application. Now it is possible to follow the green arrow to ITP/OnLine, by adding
the session id as a parameter to the URL. Different applications in ITP/OnLine
have different URLs in IIS (Internet Information Services). Based on those URLs
the requests will be routed to the different ITP/OnLine applications. Every cus-
tomer has its own ITP/Server installation, this ITP/Server installation has its own
web services interface which has the host and the port of ITP/Server configured
in a configuration file. Those web service interfaces are exposed as applications
in IIS with their own URL. Again the requests of a specific customer are send
to the corresponding URL. By using ITP/OnLine in combination with the web
services interface of ITP/Server, the only ports of the virtual machine that have
to be exposed are port 443 for SSL connections (HTTPS) and a port for remote
desktop (for ITP administrators only). In the proof of concept, authentication is
based on Windows Authentication and Basic Authentication of IIS. By doing this,
one customer cannot use the ITP installation of another customer. Once someone
tries to access an installation that doesn’t belong to him, there will an authenti-
cation error or there will be no response. Of course this is only secure when the
credentials are unknown for other people than the customer.
The authentication mechanism as implemented in the proof of concept is only used
to show that customers can be separated from each other. It is also undesirable
to use Windows Authentication in the final solution.
The requirements mentioned in chapter 9, are met as much as possible. The avail-
ability requirement is something that has to be discussed with the provider since
the provider manages the hardware on which the solution will run. The new code
is written in C# and Java in order to meet the requirements. Furthermore there
are no vendor specific elements implemented which prevents vendor lock-in. PDF
generation is implemented and tested by installing Word on the Windows Server
2008 virtual machine. Data leakage is prevented by giving every customer its own
installation and therefore its own ITP/Server work directory. By doing this, there
can be no accidental data leakage. Sentia furthermore offers persistent storage
within virtual machines so data loss will be prevented as well.
10.2.1 Security
As mentioned in previous chapters, security can be one of the biggest problems in
cloud computing. Therefore this aspect is also taken into account when designing
the proof of concept. As already mentioned, the authentication layer and contract
guard are both responsible for identity and access management. Since in the
proof of concept, the contract guard is integrated in ITP/OnLine, there had to
be a slightly different solution for the authentication. In the proof of concept, the
10.2 Minimal solution 89
own content.
In the situation when everything has to be put in a single database per customer,
the ITP/Server web services interface has to be extended with an organization
identifier (or the code has to be adapted that it can be extracted from another
part). This has to be done because in this situation the scripts will be in the
database as well, so when the organization is put in the script, it should already
have the knowledge about the database that has to be used. Therefore the iden-
tifier should be placed in the request as a first class citizen.
When an ITP/Server installation will be shared by multiple customers, it is un-
desirable that it has to be restarted once some changes in the configuration are
made. A solution for this problem is to create a new ITP/Server instance that
contains the changes in configuration. Once this instance is created, the customers
can be routed to the new instance. In this situation attention has to be paid to
the jobs that were already running on the “old” ITP/Server instance.
92 10 PROOF OF CONCEPT
93
94 11 CONCLUSION
11 Conclusion
People often ask how they should implement cloud computing. The answer to this
question is not that simple because it really depends from the business in which
an organization is operating. There are a lot of models for implementing cloud
computing but most often it is not enough to pick one. The best solution often
consists of a combination of different models. This is exactly what makes it difficult
to give an answer to the question how cloud computing should be implemented.
It really depends on the business, size and requirements of the organization. One
thing that is clear: an organization must have some arguments, other than because
everybody does it, why it would start to use or offer (or both) cloud services.
Another conclusion that can be derived is that an organization should not want
to have everything in the cloud. Not every application is suitable to run in the
cloud. Sometimes it is just better to run applications on-premise, close to the
other applications and databases. When a lot of interaction with other applica-
tions and databases in needed, it might be wise to stick to on-premise software.
The reason for this will be that when a lot of interaction with other applications
is needed, there is a high chance of getting too much latency. This means that the
components of the total system should be loosely coupled.
Since an application in the cloud is supposed to be scalable, the architecture of
the application must support this scalability. Based on the literature study and
the case study, it is found that existing applications often have to be changed
before they are suitable to be put in the cloud. One important aspect to get an
application scalable is by making it stateless. Once an application is stateless, the
advantages of the cloud will be present.
During the case study it appeared that licensing can be a real problem when
putting products in the cloud. So when an organization wants to put its products
in the cloud, it should really pay attention to the existing licenses that are neces-
sary for running the installed software in a hosted environment. Very often other
licenses are needed which has an impact on the costs. Most of the times it is not
allowed to use the regular licenses in a hosted environment.
For a small organization it can be more interesting to start using cloud services
because they often don’t have their own IT department. This means that a large
potential market exists of smaller organizations. This doesn’t mean that large
organizations aren’t interested in a cloud solution, but for small organization the
benefits might be even better. Large organizations often have to perform main-
tenance to their IT systems, but actually they don’t want to do this. By using a
cloud based solution, this problem will be solved.
When an application has to be able to handle peak loads, it will be a good idea to
put this application or a part of this application (hybrid cloud) in the cloud. By
95
doing this the hardware expenses for the customer/user can decrease dramatically.
96 12 FUTURE WORK
12 Future work
Since there are some changes coming in the legislation it will be interesting to see
how these changes will affect the world of cloud computing. The DPD as men-
tioned in chapter 4 is supposed to change in the near future. Furthermore different
countries have different legislation about this topic, so a specific implementation
can have different consequences in different countries. It will be interesting to find
out what these consequences are. It would also be interesting to find out what
happens in case of a conflict between Europe and the United States.
Existing cloud service providers are expanding their offerings rapidly. The result
of this is that these offerings of different providers start to be pretty much the
same. It will be interesting to follow this movement en keep track of the different
offerings. In combination with the legislation it will be interesting to see whether
there will be more and more European providers.
Since cloud computing is relatively new, it should be investigated whether the
advantages and disadvantages can be confirmed. Especially the availability and
security concerns should be removed. This doesn’t mean that the technology
is new, but cloud computing brings some new interesting challenges like multi-
tenancy and identity and access management. Another shift can be found in the
business models of an organization that starts to offer cloud services.
The biggest part of this thesis focuses on technology aspects and aspects that are
interesting for a cloud service provider. Of course customers should also be willing
to use a cloud service. So the customers should be prepared to use a cloud service.
This is something that is not investigated within this thesis. The concerns in this
thesis are based on literature only so it will be interesting to do some research
within the “real” world.
For Aia Software it will be really interesting to do some further research concerning
the liability in case something goes wrong. Once personal data will be acciden-
tally leaked out of the ITP Document Platform, it has to be crystal clear for which
damage Aia Software will be liable. When this is not the case it can turn into a
disaster because there will be a risk of having to pay a lot of claims.
The proof of concept shows that the design will work in practice but it is far from
a complete solution. The most important thing for Aia to start with, is imple-
menting a secure authentication mechanism instead of Windows Authentication.
The scripts that are created for the proof of concept, can be used by Aia when the
final version is created.
97
13 Academic Reflection
13.1 Process
The process of writing this thesis took approximately 6 months. This is exactly
the time that was planned for it. Going to the office every day really helped me
to stay on schedule because there is less distraction from other things.
Cloud computing is a very trendy topic, this results in the fact that there are a lot
of new articles written every week. It is very tempting to read all the new articles
but at some point it was necessary to continue with the rest of the project. The
same holds for the discussions, during the discussions a lot of new ideas and con-
cepts were born. Nevertheless it is important to keep the scope of the assignment
in mind because otherwise it will result in a never ending thesis since new tasks
will be added continuously.
During the process of writing the thesis I have learned a lot about cloud comput-
ing. Since the thesis was written at Aia Software, I have also learned a lot about
the questions that companies have when adopting cloud computing. It was really
interesting to hear the ideas and opinions of my supervisor and management at
Aia Software. These ideas and opinions really helped me to create a solution that
fitted into the scope of the project.
The monthly meetings with my supervisors at the university and the weekly meet-
ings with my supervisor at Aia Software were really useful for controlling the
progress. Because of this frequency, small misunderstandings were noticed in an
early stage. All this resulted in the fact that I didn’t have a lot of problems to
complete my thesis in time.
Furthermore it was interesting to see that there is not a simple solution for a single
organization. While designing a solution for Aia Software, I discovered that there
were a lot of solutions possible. The reason for choosing the one or the other is
often not based on technical decisions, but on business decisions.
The purpose of the proof of concept was to show that my solution for Aia Soft-
ware could really work. During the process of creating the proof of concept some
small changes were made to the solution. This was mostly done to avoid com-
plex programming. These changes only involved some shifts of functionality from
additional components into existing components.
13.2 Product
This research is intended to contribute to the process of choosing a cloud solution.
Once an organization has chosen to start using or offering a cloud solution, a lot
of questions have to be kept in mind. This thesis should help in getting answers
to these questions. Every organization has its own needs to which the solution has
98 13 ACADEMIC REFLECTION
References
Scientific
[1] Abdulaziz Aljabre. Cloud computing for increased business value. Interna-
tional Journal of Business and Social Science, 3:234–239, 2012.
[3] Wanlei Zhou Alessio Bonti Ashley Chonka, Yang Xiang. Cloud security de-
fence to protect cloud computing against http-dos and xml-dos attacks. Jour-
nal of Network and Computer Applications, 34:1097–1107, 2011.
[4] Unknown author. Being smart about cloud security. Technology Review,
114(6):75 – 76, 2011.
[6] Dave Durkee. Why cloud computing will never be free. Communications of
the ACM, 53:62–69, 2010.
[7] Zach Hill, Jie Li, Ming Mao, Arkaitz Ruiz-Alvarez, and Marty Humphrey.
Early observations on the performance of windows azure. In Proceedings of
the 19th ACM International Symposium on High Performance Distributed
Computing, pages 367–376. ACM, 2010.
[8] G. Kiewiet. Technische impact van hybride cloud computing op iam. Master’s
thesis, Open Universiteit Nederland, 2011.
[9] Qian Wang Kui Ren, Cong Wang. Security challenges for the public cloud.
Internet Computing, IEEE, 16:69 –73, 2012.
[10] Andrew McAfee. What every ceo needs to know about the cloud. Harvard
Business Review, 89:124–132, 2011.
[11] Rean Griffith Anthony D. Joseph Randy Katz Andy Konwinski Gunho Lee
David Patterson Ariel Rabkin Ion Stoica Matei Zaharia Michael Armbrust,
Armando Fox. A view of cloud computing. Communications of the ACM,
53:50–58, 2010.
[12] Siani Pearson. Taking account of privacy when designing cloud computing
services. Cloud ’09, May 2009.
100 REFERENCES
[13] Stefan Ried, Holger Kisker, and Pascal Matzke. The evolution of cloud com-
puting markets. Technical report, Forrester Research, 2010.
[14] Joep Ruiter. The relationship between privacy and information security in
cloud computing technologies, 2009.
[15] Joep Ruiter and Martijn Warnier. Privacy regulations for cloud comput-
ing: Compliance and implementation in theory and practice. In Computers,
Privacy and Data Protections: an Element of Choice. Springer Netherlands,
2011.
[16] Louis Jonker Ruud Leether, Elisabeth Thole. Usa patriot act haaks op pri-
vacywet eu. Automatiseringgids, 10:20–21, 2012.
[18] Christopher Millard W Kuan Hon. Data export in cloud computing - how
can personal data be transferred outside the eea?, October 2011.
[19] Christopher Millard W Kuan Hon, Julia Hörnle. Data protection jurisdiction
and cloud computing - when are cloud users and providers subject to eu data
protection law?, February 2012.
[20] Ian Walden W Kuan Hon, Christopher Millard. The problem of ‘personal
data’ in cloud computing - what information is regulated?, April 2011.
[21] Ian Walden W Kuan Hon, Christopher Millard. Who is responsible for ‘per-
sonal data’ in cloud computing?, March 2011.
[22] Lizhe Wang, Gregor von Laszewski, Andrew Younge, Xi He, Marcel Kunze, Jie
Tao, and Cheng Fu. Cloud computing: a perspective study. New Generation
Computing, 28:137–146, 2010.
[23] Randy H. Katz Yanpei Chen, Vern Paxson. What’s new about cloud comput-
ing security. Technical report, Electrical Engineering and Computer Sciences
- University of California, 2010.
[24] Dimitrios Zissis and Dimitrios Lekkas. Addressing cloud computing security
issues. Future Generation Computer Systems, 28(3):583 – 592, 2012.
REFERENCES 101
Books
[25] Tom Jenkins. Managing Content in the Cloud. Open Text Corporation, 2010.
[26] Erik van Ommeren and Martin van den Berg. Seize the Cloud. LINE UP
boek en media bv, 2011.
Non-scientific
[27] Cloud computing, fundament op orde, 2012.
[29] Ruud Alaerds. Groeistuipen van cloud computing. Technical report, Heliview
Consultancy, March 2012.
[31] David Chappell. The windows azure platform and isvs, July 2010.
[33] Cloud Security Alliance (CSA). Domain12: Guidance for identity and access
management v2.1, April 2010.
[34] Cloud Security Alliance (CSA). Top threats to cloud computing, March 2010.
[36] Brian Garvey. 2012 wordt echt het jaar van de cloud! Computable, 4, February
2012.
[37] Jonathan Gershater. Patriot act is not the first (nor likely) last law of its
kind, January 2012.
[40] Mark Nicolett Jay Heiser. Assessing the security risks of cloud computing,
2008.
102 REFERENCES
[41] Ellen Mesmer. Worries over patriot act drives ndp to cloud encryption,
September 2011.
[43] Aad Offerman. Google app engine: gevangen in de cloud, May 2011.
[44] Aad Offerman. Windows azure: huwelijk tussen desktop en cloud, July 2011.
[45] Hewlett Packard. Start small, grow tall: Why cloud now, May 2011.
[46] Ewald Roodenrijs. Private versus public cloud. Computable, March 2011.
[48] Marco van der Drift. Cloud computing verandert landschap voor ict-bedrijven,
January 2012.
[49] Maurice van der Woude. De cloud is blind voor eindgebruikers. Computable,
4, February 2012.
Websites
[51] Amazon. http://aws.amazon.com/ec2, March 2012.
105
106 A WINDOWS AZURE LOAD BALANCING
1. The traffic manager infrastructure runs tests to determine the round trip
times between different points in the world and the Windows Azure data
centers which run hosted services. These tests are run at the discretion of
the Windows Azure system.
3. Traffic Manager looks up the round trip time between the location of the
incoming request and the hosted services that are part of your policy using
the table created in step 1.
4. Traffic Manager determines the location of the hosted service with the best
time. In this example, that is HS-D.
5. Traffic manager returns the DNS name of hosted service D to the client
machine.
A.2 Failover load balancing 107
6. The client computer resolves the DNS name to the IP address and calls the
hosted service.
3. Traffic Manager returns the DNS entry to the client. The DNS entry points
to the IP address of HS-B.
3. The Traffic Manager sends the DNS entry that points the next hosted service
in the list back to the client computer. In this example, this is hosted service
C.
4. The Traffic Manager updates itself so that it knows the last traffic went to
hosted service C.
5. The client computer uses the DNS entry and calls hosted service C.
109
B Interviews/Conversations
• Mireille Hildebrandt
• Merel Koning
• Ronald Leenes
110 B INTERVIEWS/CONVERSATIONS
Furthermore Mireille has send me a paper about the legal framework for cloud
computing.
When a company is under suspicion they don’t have to hand over their data be-
cause someone does not have to cooperate at its own conviction. When a person
inside the company is being researched a company will have to hand over its data.
Once the Dutch government starts helping the US government, all Dutch compa-
nies will have to comply.
Remark
First a good thing to remember: we work as well with our own private cloud (the
112 B INTERVIEWS/CONVERSATIONS
Sentia Cloud) as well with the clouds of Amazon and Rackspace. Depending on
the specific requirements we select the one or the other. Most of our customers
run mission critical applications and therefore the choice will often be our private
cloud. We simply have much more control over the capacity and how other cus-
tomers can pull down the performance. Amazon and Rackspace have advantages
when it comes to global scaling, but when it comes to a problem (which can mean
completely down, or poor performance) it is very difficult to have some influence
on the solution. To prevent this, there has to be such a large infrastructure that
the costs will not be interesting anymore. Since as well the Amazon cloud as the
Rackspace cloud are in the news (because of failures) on a regularly basis, we are
a bit cautious to put everything there.
Load balancing will be offered by using a central solution. Auto scaling has to be
provided by the application/infrastructure that will be created for Aia.
114 B INTERVIEWS/CONVERSATIONS