View
101
Download
0
Embed Size (px)
Citation preview
Cloud Computing Adoption: An Effective Tailoring Approach
by Mahdi Fahmideh
School of Information Systems, Technology and Management, UNSW Business School, [email protected]
December 2016
Australian Conference on Information Systems (ACIS 2016)
/322
Many enterprise systems supporting IT functions are characterised by the need for high computing capability, reducing the cost of maintenance and upgrading, efficient resource utilisation, less environmental impact and electrical energy consumption (Armbrust et al., 2010, Buyya et al., 2008, Koçak et al., 2013).
Cloud computing is a promising IT innovation to address such requirements through offering a wide range of service delivery models that are universally accessible, dynamically acquirable and releasable, and payable on the basis of service usage amount.
It is estimated that the global cloud computing market will grow from $40.7 billion in 2011 to $241 billion in 2020 (Ried S, 2011).
High computational capabilities
Reduced infrastructure cost
Efficient resource consumption
Low electrical energy consumption
Less environmental impact
/323
Advantages of cloud computing have motivated IT-based organisations to either move their existing legacy systems to the cloud, or build new systems using cloud services.
According to Gartner's account, by 2020, a corporate ‘No-Cloud’ policy will be as rare as a ‘No-Internet’ policy is today (Gartner 2016).
Legacy system are key assets of IT-based organisations They deliver everyday services of organisations and contain massive data over a long
period of time.
The multi-faceted nature of cloud computing technology introducing many potential (Armbrust et al. 2010) challenges such as
SecurityMigration costOrganisational change Incompatibility and interoperabilityLegislation and regulation rulesVendor lock-in
A poor cloud migration may cause failing business processes, raise security issues, incur excessive costs, and resulted in unwanted maintenance overhead (Babar and Chauhan 2011).
/324
Researches pinpoint that transition to the cloud needs to be organised, anticipated, and viewed from the methodological perspective, that specifies activities involved, techniques to support these activities, and definition of any required models and roles involved during the migration process (Andrikopoulos et al. 2013; Chauhan and Babar 2012; Jamshidi et al. 2013; Mohagheghi et al. 2010).
/325
Chauhan’s method (Chauhan and Babar 2012)
REMICS method (Mohagheghi 2011)
Cloud-RMM (Jamshidi, Ahmad et al. 2013)
Strauch’s method (S. Strauch 2014)
Zhang’s method (Zhang, Berre et al. 2009)
Oracle method (Laszewski and Nauduri 2011)
ARTIST method (Menychtas, Santzaridou et al. 2013)
Amazon (Varia 2010)
Legacy-to-Cloud Migration (Ahmad and Babar 2014)
Some existing methods for moving legacy systems to cloud environments
/326
Knowledge gaps in the current literature
/327
Lack of a support for method tailoring
Choice of a migration method is dependent on factors such as selected service delivery model, organisation characteristics, and requirements of legacy systems.
Example: Moving legacies to IaaS Moving legacies to SaaS Example
According to (Louridas 2010) there is a difference between the US and the EU in addressing the ultimate data protection in the cloud. In the US, a cloud provider is responsible for complete data protection whilst in the EU cloud consumer is responsible to ensure cloud provider satisfies data protection requirements. Any misunderstanding of this fact may affect the systems security, and will raise exposure to vulnerabilities.
The methods agree on and define a collection of fixed activities for planning, feasibility analysis, identifying candidate cloud services, re-engineering, testing, and monitoring legacy systems that are to utilise cloud services.
Each method differs in its focus, scope, and the application domain. Each method may have weaknesses in certain situations and strengths in others. A
method might be suitable for moving large and distributed workloads from legacy data centres to public IaaS whilst another method might be best suited for enabling legacy systems to work as a SaaS.
/328
Lack of a support for method tailoring
Methods need to be configurable and responsive towards the specific characteristics of a given cloud migration scenario.
“one solution can never fit all problems; there is a need of customised cloud for individual businesses” (Mahmood, 2013 ).
“there is no one-size-fits-all cloud, and it is up to each business to decide how much change is tolerable and to decide how far into the cloud to step” (Banerjee 2012).
Only methods REMICS (Mohagheghi et al. 2010) and ARTIST (Menychtas et al. 2013) consider the notion of method tailoring.
REMICS method is stored as a set of building blocks that can be selected and assembled to create a method that match characteristics of a project at hand. But there is not a support of method customization.
ARTIST method, on the other hand, provides a tool which allows the customisation and instantiation of the base method with respect to results of a cloud migration feasibility analysis. Nevertheless, this method is associated with common reengineering activities and there is no focus on defining activities relevant to different service delivery models.
Combining existing methods into a comprehensive migration method cannot be a proper solution since a set of locally-based activities in each method cannot be linearly integrated or sometimes they become irreconcilable and inconsistent.
/329
Research objective: To develop a framework which supports the creating, maintaining, and sharing of
customised methods for conducting cloud migration scenarios.
Research questions What are the important fundamental methodological constructs for incorporation
into the process of moving existing legacy systems to cloud environments?
How to create a customized method for a given cloud migration scenario?
This framework is viewed as a specific IS artefact.
Design science research (DSR) as a proper research methodology (Hevner et al. 2004; Peffers et al. 2006; von Alan et al. 2004).
DSR focuses on the problem solving aspects in IS by designing and prescribing artificial innovations (Gregor and Hevner 2013), (Peffers, Tuunanen et al. 2007).
/3210
DSR process specialized for this research
Problem Identificatio
n
Design
Iteratively refine the artefact
EvaluationObserver the efficacy of the
artefact(Iterate back to
design and refine the artefact)Artefact
Cloud computing literature Existing IS or SE
Theories
analytics, case studies, experiments,
simulations, or naturalistic evaluations
Method engineering
approach
(Situational) Method engineering. The method engineering is a discipline to design, construct, and adapt methods, techniques, and tools for the development of information systems (Brinkkemper, 1996).
It proposes constructing a customized methods or tailoring existing ones through the notion of method fragments (atomic and reusable piece of methods) (Brinkkemper, 1996).
(Peffers, Tuunanen et al. 2007)
/3211
Design Phase
/3212
A conceptual framework for method tailoring
/3213
Step 1: Developing a consolidated repository of method fragments Common method fragments for incorporation into the cloud migration process was
developed. A systematic literature review based on guidelines in (Kitchenham et al. 2009). Identifying all studies related to the cloud migration and then extracting method
fragments, harmonising their definitions and reconciliation of differences, and organising them into generic migration steps.
Sufficiently generic to and platform independent. Forty-six distinct method fragments were identified from the literature.
Design phase (Task 1)
A conceptual framework for situational method construction
Cloud computing literature
/3214
Output of Task 1
/3215
Representation of the method fragments (a generic process model for cloud migration)
Output of Task 1 (Continue)
/3216
Output of Task 1 (Continue)
/3217
A conceptual framework for situational method construction
Step 2: Developing a procedure for constructing, configuring, maintaining, and publishing situational methods for a given cloud adoption scenario.
The proposed tailoring procedure is viewed as a class of the paradigm-based method engineering (Ralyté et al. 2003).
A new method is configured by instantiation from an existing method or metamodel, herein the repository, related to a particular domain or abstraction of an existing method
Specifying the parameters of a cloud migration scenario and then identifying relevant method fragments, commencing with a high-level method and recursively configuring it to meet requirements expected by a migration scenario.
Design phase (Task 2)
/3218
Output of Task 2
/3219
Evaluation:Prototype System
/32
Prototype The prototype semi-automates using the process model. Helps IS managers (or cloud strategists) to create, configure, standardise, and share
customised cloud migration methods through reusing the proposed process model. Implementation
Microsoft .NET Framework 2015 C# programming language Microsoft Access Database
20
MLSAC (Migrating Legacy Software Applications to the Cloud)
/3221
User can brows the process model and learn about the typical cloud migration process.
/32
Configuration of the process model
22
/3223
Created Method
Method product (e.g. XML)
Software DevelopersIS Manager (or Cloud Strategist)
Enacted by software developers
Migration scenario Moving a legacy system to Amazon EC2 Migration type: IaaS Enablement Phase
Cloud Migration scenario
Example:Designing and Sharing a
Customised Method for a Cloud Enablement Scenario
/3224
Step 1
Step 2
/3225
Step 3
Step 4
Instantiation a new method from the generic process model
/3226
/3227
/32
Configuration of the process model
28
/3229
Created Method
Method product (e.g. XML)
Software DevelopersIS Manager (or Cloud Strategist)
Enacted by software developers
Exporting the created method
/3230
Research contributions
Extending the method engineering approach to the cloud computing field.
Applying method engineering theory for the effective adoption of cloud computing technology
A knowledge sharing platform to assist consistent communication between scholars and practitioners.
a standard reference model allowing effective knowledge transfer across the community
Facilitating the understanding of cloud migration process. A unified and distilled representation of cumulated knowledge of the legacy system migration to
the cloud.
Underpinning a substrate for designing situation-specific methods for moving legacy systems to the cloud in a systematic manner.
As a framework for comparing existing cloud migration methods.
/32
Thank You
31
Appendix
Step 1— Preparing Knowledge Sources for Metamodel Creation
Systematic literature review (Kitchenham, Pearl Brereton et al. 2009) A well-recognized procedure to identify, analyse, and interpret all relevant studies
regarding a particular topic of interest.
Search Strings: The main terms “Cloud”, “Cloud Computing”, “Service Computing”, “Legacy”, “Methodology”, “Process Model”, “Reference Model”, and “Migration”
Selected Study Sources: IEEE Explore, ACM Digital Library, SpringerLink, ScienceDirect, Wiley InterScience, ISI Web of Knowledge, Google scholar.
Inclusion criteria: validated using example application, simulation, empirical study
(case study, controlled experiment), or experience from real examples.
Step 1— Preparing Knowledge Sources for Metamodel Creation (Continue)
78 Studies Identified existing methodologies, general approaches/frameworks, industrial experiences, patterns, decision
making framework .
Step 1— Preparing Knowledge Sources for Metamodel Creation (Continue)
Collected Demographic Data
Step 1— Preparing Knowledge Sources for Metamodel Creation (Continue)
Extracting Constructs (e.g. tasks, work-products)— An example
Step 1— Preparing Knowledge Sources for Metamodel Creation (Continue)
Construct selection criteria: Relevant to challenges in cloud
application developmentSufficiently generic
The extraction of constructs from Chauhan and Babar’s Methodology
Extracting Constructs- An example
In total 511 constructs were identified.
Step 1— Preparing Knowledge Sources for Metamodel Creation (Continue)
Step 2— Creating an Initial Metamodel
Step 2— Creating an Initial Metamodel
The gradual formation of metamodelGuidelines introduced in (Beydoun, Low et al. 2009; Othman, Beydoun et al. 2014)
Step 2— Creating an Initial Metamodel (Continue)
Choose Cloud Provider
Step 2.1 Grouping Similar Constructs— an iterative approach An example: 35 studies refers to the notion of cloud provider selection
Step 2.1 Grouping Similar Constructs— an iterative approachIteration 1:
Generic software development lifecycles (Pressman 1992; Sommerville 2004)Generic reengineering lifecycles including Butterfly (Wu, Lawless et al. 1997),
Renaissance (Warren and Avallone 1999), Sneed’s approach (Sneed 1995), and Architecture-Driven Modernization horseshoe (Khusidman and Ulrich 2007)
Challenges in cloud application development, [S10], and [S68]Iteration 2:
Work-productsGeneric software development introduced, generic reengineering lifecycles
Iteration 3:Restructuring and perfecting
Tuning granularity of constructs (Henderson-Sellers and Gonzalez-Perez 2010)An example of decomposition: Enable Multi-Tenancy - > Isolate Tenant Data,
Isolate Tenant Performance, Isolate Tenants Availability, Enable Application Customisation [S35], [S65] and (Bezemer and Zaidman 2010)
Output: 72 common constructs, i.e. 65 tasks and 7 work-products.
Step 2— Creating an Initial Metamodel (Continue)
Step 2.2 Harmonising the Constructs’ DefinitionsThere is a link between different definitions Reconciliation of the various definitionsAn Example: Choose Cloud Provider
Step 2— Creating an Initial Metamodel (Continue)
Defining Relationships between the constructs Association, , Specialisation and Aggregation An Example
An application is analysed to assess its compatibility with the potential cloud computing
environments. For example, it may be the case that a target PaaS cloud does not support
frameworks or specific technologies being used by an application. If such issues are
identified, then these need to be resolved first” Chauhan’s methodology (denoted by [S9])
Step 2— Creating an Initial Metamodel (Continue)
Cloud Migration Lifecycle(Resultant Metamodel)
Resultant MetamodelPlan Phase class of constructs
Resultant MetamodelDesign Phase class of constructs
Resultant MetamodelEnable Phase class of constructs
Resultant MetamodelMaintain Phase classes of constructs
Conducting case studies (continue) New added constructs to the metamodel after the validation
Use Logging
Purpose: To assess evaluate whether the process model constructs were perceived as important by experts
Survey Design Pilot test: a sequential review process
A panel of four cloud experts Expert 1: 8 years of experience in using Amazon services Expert 2: 7 years of experience in IBM Expert 3: 3 years of experience in developing cloud applications for Bank sector Expert 4: An academic reviewer (editor chief in a cloud-related journal )
Data collection LinkedIn, Twitter, and Facebook
Each profile was screened to assure he/she had sufficient experience in application migration to cloud
144 responded 104 usable responses (response rate of 20%)
The null and alternative hypothesises were defined
H0: the mean of the importance of each construct is = 5 (Somewhat Important) vs. H1: the mean of the importance of each construct is significantly > 5
One Sample T-Test Normality assumption N = 104
Tenant Isolation (t-test statistic of= -1.499, p-value of=0.06) and Virtual Machine Specification (t-test statistic of=0.513, p-value of =0.30)
Suggestions by respondents for improving the process model
Publications Journal Articles
M. Fahmideh, F. Daneshgar, G. Low, G. Beydoun, Cloud migration process—A survey, evaluation
framework, and open challenges, Published in Journal Systems and Software (JSS) M. Fahmideh, F. Daneshgar, F. Rabhi, A Consolidate Understanding of Cloud Migration Process,
Under review in journal of Information and Management (I&M) M. Fahmideh, F. Daneshgar, F. Rabhi, A Generic and Tailorable Cloud Migration Process, Under
preparation for submission to European Journal of Information Systems (EJIS)
Conference Papers M. Fahmideh, G. Low, G. Beydoun, Conceptualising Cloud Migration Process, 25th European
Conference on Information Systems (ECIS), İstanbul, Turkey, 2016 M. Fahmideh, F. Daneshgar, F. Rabhi, Cloud Computing Adoption: An Effective Tailoring Approach,
27th Australasian Conference on Information Systems (ACIS), Wollongong, Australia, 2016 M. Fahmideh, F. Daneshgar, F. Rabhi, Cloud Migration Methodologies: Preliminary Findings, 2th
International Workshop on Cloud Adoption and Migration, Vienna, Austria
Related work
Scope Authors title Focus Developed metamodel (artefact) Unit of analysis Key ContributionsCloud
architecture(Hamdaqa, 2011) Demystifying cloud computing vocabularies, relations
between them, and design elementsMetamodel of cloud computing applications Cloud application A metamodel as cloud modelling language aiding developers to better understanding cloud application architectures.
(Liu et al., 2011) Conceptualization the of cloud computing architecture Metamodel of cloud computing enterprise architecture Enterprise architecture Demystifying the main constructs are incorporated in cloud migration including actors, architectural components, interactions between actors, and activities.
(Lenk et al., 2009) A hierarchical model of cloud computing technologies Integrated cloud computing stack Enterprise architecture Facilitating interoperability of cloud services, providing a reference point for mash-ups, and guidance on how to combine and interchange cloud services.
(Tsai et al., 2010) Combining the notions of cloud computing and service computing
Four layer cloud service computing architecture style Enterprise architecture Proposing an open architecture for cloud service computing open which standards and ontology are embraced.
(Zimmermann et al., 2013)
An overall architecture building blocks of big data cloud computing applications
Metamodel of big data application architecture Big data cloud applications Supporting semantic analysis and program comprehension of service-oriented big data applications.
(Zhang and Zhou, 2009) Standardization of a configurable and extensible cloud computing architecture model
Metamodel of principles of cloud computing architecture
Enterprise architecture Isolating the enterprise architecture from infrastructure enablement during cloud architecture design process by formulating architectural principles and modules.
Green Cloud (Procaccianti et al., 2014)
Distilling knowledge of green practice for designing cloud infrastructures
Green cloud metamodel cloud infrastructure A metamodel formulating recurrent and reusable architectural tactics and goals and addressing the problem of reducing energy footprint in green cloud architectures. The metamodel can be used for the refactoring of existing applications for cloud enablement.
(Nowak et al., 2014) Distilling knowledge of green practice for IaaS-based business processes
Green cloud metamodel Business processes A catalogue of green practice for designing green business processes. It aids developers to design virtual machines for execution of cloud-based business processes.
(Dougherty et al., 2012) Capturing common features/requirements of virtual machines performed in cloud
Metamodel-based auto-scaling resource management approach
IaaS-based virtual machine Developers can express requirements such as energy consumption per hour and cost attribute for VM instances using an instantiable metamodel of common features of virtual machines. The metamodel optimizes energy consumption of cloud auto-scaling infrastructure to create greener computing environments that reduce emissions resulting from superfluous idle resources.
Cloud Services
(Nunez et al., 2013) A language for describing and measuring accountability attributes of cloud service and providers
Metamodel of cloud services accountability Cloud service A language for describing none-functional properties of cloud services in terms of entities, evidence and actions. The language facilitates defining meaningful measures for accountability properties of cloud provider including transparency, verifiability, observability, liability, responsibility, attributability, and remediation.
(Cimato et al., 2013) A language to express domain concepts of cloud service certification process
Metamodel of cloud services certification process Cloud service A unified metamodel for the defining of the security properties to be certified, the types of evidence underlying them, and the phases of the certificate lifecycle, as well as all mechanisms for instantiating supporting evidence.
Cloud application
interoperability and
portability
(Ardagna et al., 2012) Portability and interoperability of applications in multiple clouds
Using model transformation techniques Cloud application Allowing developers to design application in a cloud-agnostic way and instantiate it for different cloud environments. This way provides closed-loop between the run-time and design-time environments of application and triggers the dynamic deployment of the application.
(Caballer et al., 2014) Execution of scientific applications in cloud infrastructures Using the concept of container to encapsulate programming model logic and the infrastructure needed to execute it in the cloud.
Scientific Cloud applications Developer can adapt, deploy and execute parallel applications covering different programming models (such as Master/Slave, Parallel/MPI, MapReduce and Workflows) to the cloud backend.
(Maximilien et al., 2009) Managing application deployment and cross-cloud interoperation
Cloud-agnostic APIs Middleware architecture A meta-model to model cloud platforms at an abstraction level to support application deployment and redeployment in the cloud.
(Kopp et al., 2012) Business process interoperability and portability on multiple clouds
Extending BPMN with specific elements for transformation of business process to a specific platform
Business Process Providing automated modelling and transformation for planning, tailoring and deploying composite business processes on different IaaS providers and workflow engines. Modeller defines abstractly what kind of service should be invoked without concrete references to services. Instantiation information such as virtual machines is then added by Plan Portability APIs.
(Wettinger et al., 2013) Model-driven configuration management
High-level configurative metamodel Cloud application A model-driven support for specifying configuration templates in a higher level of abstraction including topology template, node types, and relationship types in application configuration.
Cloud architecture design best practices
(Fehling et al., 2012) Formalizing best practice design of cloud-based application architecture
A pattern language Cloud application A language to describe common design patterns for cloud computing architecture design.
Domain specific
language
(Sledziewski et al., 2010)
Increasing productivity of application development for Cloud DSL for describing cloud application
Cloud application A domain language allowing developers to generate high-level representation of an application and to generate application codes to be deployed in the cloud.
(La and Kim, 2009) Maximizing the reusability and customizability of SaaS applications
Model-driven SaaS development process SaaS application Defining a lifecycle including guidelines to model a high-level architecture of SaaS including features, communalities, variation points and scope of variations. Cloud platform specific information is added to application models when application is to be deployed in a specific cloud platform.
(Zech et al., 2012) A central model from which risks related to the cloud deployment can be deviated and analysed.
DSL for generating deployment model of application in the cloud
Cloud application Allowing developers to describe cloud deployment model by their functional and none-functional security-related properties. The defined model then is enriched by a vulnerability knowledge based to do security analysis. The language facilitates expressing the variety of deployment models.
(Brandic et al., 2010) Simple and flexible compliance information management
DSL for specifying compliance requirements of cloud consumers
Cloud application A language to express user requirements and compliance level agreements such as, security restrictions, privacy, trust, and compliance level agreements. It supports semi-automatic deployment of applications in the cloud.
Related work on metamodeling in cloud computing literature
Source Migration Task Aim Availability Migration Type
[S7] Analyse Context
Supporting decision making during the suitability analysis of migration in terms of operational cost, organisational change, energy consumption, and stakeholder analysis. Not-specified V
[S10] Resolve Incompatibilities
Supporting the data tier migrating to the public cloud and the refactoring of the application components. Available IV
[S12] Design Cloud SolutionAllowing developers to model application components and define relevant criteria for the splitting components in the cloud. Not-specified V
[S33]
Recover Legacy Application Knowledge Discovering legacy application components.
AvailableII
Resolve Incompatibilities Resolving interoperability problem between legacy components and third-party cloud services.
Design Cloud Solution Generating a platform specific implementation model from the cloud architecture model.
Test Application Creating test cases and test scenarios.
Configure Network
Generating a platform specific implementation model from the architecture model by taking into account the constraints relevant to the deployment of applications in the cloud.
[S59] Recover Legacy Application Knowledge Extracting the ontology of source code, data, and architecture of the legacy application. Available All
[S64]
Analyse Context Analysing business and technical migration feasibility.
Available
II
Recover Legacy Application Knowledge Representing high-level and platform-specific models of the legacy application.
Resolve Incompatibilities Transforming legacy codes to the cloud target platform.
Test Application Supporting functional and non-functional testing.
Configure Network Deploying application components in the cloud.
[S71]
Enable Elasticity Configuring amazon services (e.g. storage, resource).
Available VResolve Incompatibilities Integration legacy components with amazon cloud services.
Configure NetworkConfiguring network and dynamic resource provisioning (e.g. elasticity, virtualization, auto-scaling).
Related work on cloud migration
Overview of key concerns in cloud migration process# Concern Definition
C1 Analysing Organisational Context Assessing the feasibility and business value of the cloud to empower legacy applications in terms of in terms of user resistance, loss of governance, dependency on legacy application, risk of unauthorised access, legal restriction, physical location of IT resources, energy consumption, variation on responsibilities, technical suitability, impact on organisational and daily activities, type of legacy application , required efforts and migration cost , scalability (workload fluctuation), and financial suitability.
C2 Understanding Cloud Migration Objectives and Requirements
Analysing cloud migration goals and application requirements that should be satisfied by cloud services.
C3 Proper Cloud Migration Planning Defining a plan to guide the migration process and roll-back plan.C4 Understanding Legacy
Application Identifying the characteristics of legacy application that may influence cloud migration such different types of dependencies to other applications, interaction points and message follows between application components, as well as the quality of code blocks for reuse and adaptation.
C5 Target Cloud Platform/Service Selection
Analysing available cloud services, their offered model, and their influence on platforms on the required effort for the rest of migration process. Also, training developers on new programming concepts such as asynchronous interaction, distributed state and session management, caching, scale out across data centers and providers (scalability), multi-tenancy.
C6
Re-Architecting Legacy Applications
C6.1. Defining Cloud Architecture Model Identifying suitable legacy application components for migration and their deployment (topology) in the cloud with respect to data privacy, expected workload profile, acceptable network latency and performance variability, availability zone of cloud providers, the affinity of components in the cloud, and the geographical location of cloud servers.
C6.2 Enabling Application Elasticity Defining elasticity rules and mechanisms in the application in order to support dynamic scale up/down and acquire and release cloud resources in a adequately manner.
C6.3 Enabling Multi-Tenancy C6.3.1 Security Isolation Addressing tenant isolation with respect to the security (i.e. assuring each tenant can only access to its data and to be protected from unauthorised access by other tenants which are running in the same cloud), customisability (adding configuration points, in the form of application template, in the code blocks of the application so that each tenant can customise the sequence of application workflow and code customisation on basis of his/her requirements), fault (monitoring the application state to detect the faults, preventing their propagation, and repairing them in a timely manner), and performance (guaranteeing the performance of one tenant from the negatively being affected by the performance usage of other tenants in unforeseen behaviours).
C6.3.2 Tenant-Based Application CustomisationC6.3.3 Fault IsolationC6.3.4 Performance Isolation
C6.4 Addressing Interoperability and Incompatibility C6.4.1 Code refactoring Modifying legacy codes so that they can interact with the cloud services.
C6.4.2 Developing Integrators/Adaptors Wrapping incompatibilities between legacy and cloud services by using adaptors.
C6.4.3 Data Adaptation Resolving incompatibilities between legacy data base and cloud solution database through data type conversions, query transformation, database schema transformation, and developing runtime emulators for stored procedure, views or triggers.
C6.5 Applying Architecture Design Principles
C6.5.1 Application Decoupling Re-architecting a legacy application to target cloud architecture with respect to design principles such as application decoupling, stateless programming, handling transient faults, and availability. C6.5.2 Stateless Programming
C6.5.3 Handling the Unpredictability of Cloud EnvironmentsC6.5.4 Replicating and Synchronising
C7 Environment Configuration Reconfiguring organisation network setting such as ports, devices, firewalls, and anti-virus, reachability policies, and connection strings to the database so that legacy components can invoke cloud services, giving privileges to application tenants/users to assure the security of application is satisfied in the cloud environment, creating installation scripts and setup different third-party libraries and tools that may be used for monitoring and reporting runtime application behaviour.
C8 Testing Ensuring that the migrated application satisfies cloud migration objectives/requirements.
Examples: respondents’ comments about the importance of constructs (activity/work-product) for inclusion in the process model
Analyse Context“Cloud migrations will almost always result in significant change to (often longstanding) business processes. Many employees will begin to worry about job security - similar to outsourcing projects. Be prepared to deal with resistance in equal quantities from business users, as well as engineers and developers”
A system analyst with 4 years experience in cloud computing
Identify Incompatibilities “Provider selection may produce additional requirements in terms of implementation. This refers to the fact that based
on what provider (e.g. Google App engine or Azure), specific requirements may be posed on the technical implementation. For example, if you go for PaaS, then providers usually support only a subset of the available Java frameworks. If the migration is from an SQL-based DB for example to a SQL based service DB, then migration is easy. If migration involves the alteration of the data model (e.g. to a NoSQL solution), then significant modifications must be performed and more importantly to check the constraints of the new used paradigm. Thus you must take that under consideration, especially when you want to reutilize existing code, which is the case in application migration. Checking which frameworks are supported against which frameworks have been used for your initial application gives you an indication of how complex it would be to migrate to that specific provider”
A software developer with 4 years experience in cloud computing