Multi Cloud Analysis
Multi Cloud Analysis
Multi Cloud Analysis
1 Introduction
Cloud migration [1] benefits from the cloud promise of converting capital expenditure
to operational cost [2]. Mixing cloud architecture with private data centers adds
operational efficiency for workload bursts while legacy systems [3] on-premise still
support core business services. Instead of re-architecting applications, they can be
re-hosted from on-premise to possibly multiple cloud architectures, either private or
public ones. We are concerned with the migration of legacy on-premise software to
multi-cloud architectures. Multi-cloud deployment [4] is particularly effective in
dealing with the following challenges:
• Users are widely distributed where they are located around multiple data centers.
• Country regulations limit options for storing data in specific data centers, e.g., EU.
• Circumstances where public clouds are used jointly with on-premises resources.
• Cloud-based application must be resilient to the loss of a single data center.
2 Background
3 Research Methodology
The first step to identify migration patterns was to identify the concerns of organiza-
tions moving on-premise applications to the cloud. We have identified four categories
based on feedback from industry partners in our IC4 research centre [5]:
• Availability. Cloud environments typically guarantee a minimum availability.
• Management. Use runtime information to monitor and support on-the-fly changes.
• Scalability. Scale out to meet bursts in demand and scale in when demand
decreases.
• Resiliency. Provide ability for systems to gracefully handle and recover from
failure.
Some applications are integrated and support core business processes and services, but
many of them support utility needs, are certainly non-core applications and are inde-
pendent. The latter category may be obvious candidates for direct re-deployment. For
the former integrated core ones, refactoring (re-architecting or redesigning) is more
appropriate. Our migration patterns are sequences of architectural changes in the
application deployment setting, through which the current application is gradually
modernized.
To obtain unambiguous pattern descriptions and to ground pattern-based migration
planning, we provide a template-based definition of migration patterns. This definition
is based on the semantics of architectural schemas before and after migration. In some
migration patterns, it may only be possible to deploy application components in a
public cloud. However, for those patterns that consider re-architecting, the application
can be deployed in hybrid public/private platforms. Due to space limitations, we do not
describe all patterns fully, for more details refer to [11]. We use a template-based
description of patterns. The usability of the patterns in migration planning will be
shown through a method engineering process in Sect. 5 and through a case study in
Sect. 6.
For space reasons, only the core patterns are presented. The patterns missing from
this list are variants of some core patterns (which will be summarized afterwards). The
core patterns highlight the different construction principles for the cloud architecture:
re-deployment, cloudification, relocation, refactoring, rebinding, replacement and
modernization.
Definition: Application hosted on-premise as-is but use public cloud services for added capabilities instead of on-premise ones.
Problem: Need to improve reusability, extensibility, Avoid redundancy by consuming existing publicly accessible cloud services
Solution: Extend the on-premise application by integrating with existing public cloud services.
Benefits: Improved time to market.
Challenges: Integration may introduce greater complexity.
Cloud Migration Patterns: A Multi-cloud Service Architecture 11
Definition: Component re-deployed (relocated) on cloud platform is cloudified but without evolution in the application architecture.
Problem: Enhance performance without significant architecture change, without capital expenditure for on-premise hardware.
Solution: Use cloud services to improve throughput by leveraging Queues, Database partitioning/sharding, NoSQL, Cache
Benefits: As component re-hosting in cloud and optimized performance.
Challenges: The type of application requests changes over time for example proportion of read only calls reduces, Cloud provider
does not provide the necessary services to wrap the optimizations around the application without re-architecting.
Migration Pattern MP5: Multi-Cloud Refactoring [see variants MP6, MP7, MP8, MP9]
Definition: An on-premise application is re-architected for deployment on cloud platform to provide better QoS.
Problem: Coarse-grained applications are not agile enough to respond to requirement changes or variations in workload, and cannot
take full advantage of the performance improvements that can be offered by cloud platforms.
Solution: Application re-architected into fine-grained components; deployment of high-usage comp. optimized independently of
low-usage ones; parallel design for better throughput to multi-cloud platforms; components as independent integrity units.
Benefits: Optimal scalability/performance, range of multi-cloud deployment options, agility to respond to business/IT change.
Challenges: On-premise application is modernized in isolation; Modernization is performed primarily for technical reasons, Com-
ponent architecture is only determined bottom-up may need to be re-evaluated because of multi-cloud environment.
Definition: A re-architected application is deployed partially on multiple cloud environments and enables the application to contin-
ue to function using secondary deployment when there is a failure with the primary platform.
Problem: Failure such as a bug or configuration error that impacts cloud services may cause a failure to a cloud platform.
Solution: Architecture for resilient systems ( routes users to closest data center) used for failover: monitor services, if unavailable,
traffic is routed to healthy instances. On-premise adapter (bus or load balancer) provides integration of components
Benefits: As unhealthy services become healthy again, traffic can be delivered, returning system responsiveness to maximum.
12 P. Jamshidi et al.
Definition: Individual capabilities in a re-architected solution are re-provisioned rather than re-engineered.
Problem: Some existing components provided by current application are not the best alternative to meet business requirements.
Solution: Analyze and identify capabilities to be replaced by cloud services (capabilities that can be supported by re-architected
system), identify alternative cloud services with benefit over re-engineering of current capability to replace components
Benefits: The solution is improved though best-in-class cloud services, Re-engineering costs and effort are saved.
Challenges: Cloud services presume specific communication protocol that make the replacement a challenging tasks.
Definition: Different on-premise applications A1/A2, C1 are re-architected as a portfolio and deployed on cloud environment.
Problem: The re-architecting of on-premise applications in isolation does not remove inconsistencies in data or duplicated func-
tionalities, nor reduce the cost of their combined operation or maintenance.
Solution: Current applications are analyzed jointly to identify opportunities for consolidation/sharing. Separation of service and
solution architecture enables the identification of components (capabilities) that are shared by more than one solution.
Benefits: Consistent information / rules in shared components, Reduced operation / maintenance costs for shared components,
Challenges: Lack of business commitment to shared capabilities.
The usability of the migration patterns shall be evaluated through a case study. We use
a sample migration project based on our work with Microsoft Azure as a PaaS cloud for
illustration and validation. This project acts as a representative for a range of migrations
we examined (and for the latter two categories also implemented). These include
several CRM systems (e.g., larger configurations based on commercial products),
online retail solutions and services utilizing cloud storage solutions. Usability refers to
the suitability of the pattern set to provide options and facilitate staged migration plans.
Thus, we need to demonstrate the utility of all patterns, but also that the set is suffi-
ciently complete to model a range of cases.
Context. A financial services company decides to migrate in-house applications to the
cloud. It uses Microsoft technologies, but it also has legacy systems deployed on
UNIX. Some applications have external ports, while others are exclusively for internal
use. The importance of the applications ranges from marginal to critical. A significant
portion of the IT budget is spent on maintaining applications with marginal importance.
Challenges. New applications take long for deployment, causing problems with
adapting to changes. For any application, requirements must be analyzed, procurement
processes must be initiated and networks must be configured. The infrastructure is used
inefficiently. The majority of servers are underutilized. It is difficult to deploy new
applications with the required SLA to the existing hardware. Applications in a public
cloud platform can take advantage of economies of scale and have automated processes
for managing.
Concerns. An objective is to improve the user experience. Some applications vary in
usage (e.g., used once every two weeks, like salary-wages, but rarely at other times).
They would benefit from the cloud-based increased responsiveness during peak times.
A second objective is to expand ways to access applications. Applications located in
the public cloud are available over the Internet, but authentication concerns exist.
A third goal is portability, i.e., it can be moved between a cloud and a private data
Cloud Migration Patterns: A Multi-cloud Service Architecture 15
selected. Since the user profiles were to be kept on-premise. Pattern MP6 was
selected because there was no need for any interface adaptation (as in
MP7-MP9) or multi-cloud deployment (as in MP10 and MP11).
Step 3. Abandon the own payment application and rent a typically more generic cloud
service, which needs to be evaluated regarding security, performance, and
usability. MP12, MP13, MP14 suit, but a need to integrate Expense with a
Payment service, favors MP13.
Step 4. For an external hosting decision, data storage facilities offered by cloud
platforms are required. Expense requires a relational database system and
NoSQL storage to store receipt images. MP12 was selected as Azure SQL and
Storage offerings meet requirements.
Step 5. Remote applications need to be integrated with other cloud services and
on-premise for data access and monitoring. A systems operation or authenti-
cation tool could be used for monitoring, requiring remote services to be
integrated. MP7, MP8, MP9, MP12, MP13, MP14 can be selected. Due to a
need for some adaptations, MP14 was selected.
Step 6. Although only employees use Expense, the payment sub-system also used by
other applications must always be available. MP10, MP11 can be selected, but
if the development of failover rebinding is to be avoided, a broker as in MP11
is utilized (e.g., to deploy the payment system on Amazon and keep a mirror
on Azure to route requests in case of failure).
Step 7. Value-added services from the cloud such as caching can maximize perfor-
mance when retrieving data or can cache output, session state and profile
information MP3 was selected to accommodate these environmental services
of the cloud provider.
Migration Path. A possible migration path is presented below. The result is the
architecture in Fig. 3. The migration steps are illustratively represented in [11].
Depending on the concerns of an organization, different combinations of hosting, data
Cloud Migration Patterns: A Multi-cloud Service Architecture 17
store and cloud services are possible. For example, MP1 step 1 follows a gradual
migration by adopting the hosting approach, but uses SQL Server hosted in a VM
before moving to an Azure SQL Database. Using MP3 instead would take advantage of
storage capabilities (table/blob storage) and caching instead of relational databases to
improve performance early rather than late.
Discussion. For the migration plan we had different requirements, but were able to find
a satisfactory patterns solution. Thus, the requirement satisfaction in this case is
achieved and met by the proposed patterns [8]. Technically, we can only conclude that
the migration patterns are complete and useful for all situations arising from the use
case. However, we have analyzed and considered other migration, e.g., different
IaaS/PaaS/SaaS migration processes [5]. The storage refactoring options relating to
relational, table and blob storage, particularly addressed by patterns MP1 and MP3, are
specifically addressed in [12]. This paper highlights the re-architecting options that
advanced PaaS clouds offer, but also shows that while in this paper quality concerns
such as scalability or availability are covered, their quantification and a trade-off
analysis with cost aspects is not covered. Often, which specific paths are chosen is
driven by more in-depth quality concerns. Our solution focuses on functional archi-
tecture aspects and only includes quality and cost concerns qualitatively.
7 Related Work
learned in between. Decision making for cloud adoption (e.g., [14]) is inherently
complex and influenced by multiple factors such as cost and benefits through migration
[15]. In contrast, some approaches enable the actual migration of legacy software in
terms of procedures and model transformation (e.g., [16]). Some other work reports on
lessons learned and best practices [17] – providing empirical evidence for migration
research.
A number of migration strategies and best practices have been suggested in terms of
patterns in [18–20]. These are rather informal and do not consider a multi-cloud setting.
The objective there was mainly classification of existing best practice into migration
strategies. The key advantage and novelty of our work, more than a set of patterns, is
the notion of assembly-based situational migration at the architecture level, specifically
towards pattern-based migration planning for multi-cloud deployment. It enhances the
state-of-the-art by a tractable planning approach based on composable patterns.
Acknowledgments. The research work described in this paper was supported by the Irish
Centre for Cloud Computing and Commerce (an Irish national Technology Centre funded by
Enterprise Ireland and the Irish Industrial Development Authority) and the Royal Irish
Academy/Royal Society International Cost Share Grant IE131105.
References
1. Jamshidi, P., Ahmad, A., Pahl, C.: Cloud migration research: a systematic review. IEEE
Trans. Cloud Comput. 1(2), 142–157 (2013)
2. Armbrust, M.: Above the clouds: a Berkeley view of cloud computing (2009)
3. Khadka, R., Saeidi, A., Idu, A.: Legacy to SOA evolution: a systematic literature review. In:
Migrating Legacy Applications (2012)
Cloud Migration Patterns: A Multi-cloud Service Architecture 19