Accepted Manuscript
Understanding Cloud-native Applications after 10 Years of Cloud Computing - A Systematic Mapping Study Nane Kratzke, Peter-Christian Quint PII: DOI: Reference:
S0164-1212(17)30001-8 10.1016/j.jss.2017.01.001 JSS 9905
To appear in:
The Journal of Systems & Software
Received date: Revised date: Accepted date:
23 September 2016 30 November 2016 4 January 2017
Please cite this article as: Nane Kratzke, Peter-Christian Quint, Understanding Cloud-native Applications after 10 Years of Cloud Computing - A Systematic Mapping Study, The Journal of Systems & Software (2017), doi: 10.1016/j.jss.2017.01.001
This is a PDF file of an unedited manuscript that has been accepted for publication. As a service to our customers we are providing this early version of the manuscript. The manuscript will undergo copyediting, typesetting, and review of the resulting proof before it is published in its final form. Please note that during the production process errors may be discovered which could affect the content, and all legal disclaimers that apply to the journal pertain.
ACCEPTED MANUSCRIPT
Highlights • The outcomes of a systematic mapping study on cloud-native applications
CR IP T
(CNA) are presented. • Identified principles, architectures, and methodologies for CNA are explained.
• Existing engineering trends for cloud-native applications are summarized. • Research implications of existing CNA studies are discussed.
AC
CE
PT
ED
M
AN US
• Promising future research directions for CNA engineering are proposed.
1
ACCEPTED MANUSCRIPT
Understanding Cloud-native Applications after 10 Years of Cloud Computing - A Systematic Mapping Study
CR IP T
Nane Kratzke1 , Peter-Christian Quint eMail:{nane.kratzke,peter-christian.quint}@fh-luebeck.de L¨ ubeck University of Applied Sciences Center of Excellence for Communcation, Systems and Applications M¨ onkhofer Weg 239 23562 L¨ ubeck, Germany
AN US
Abstract
It is common sense that cloud-native applications (CNA) are intentionally designed for the cloud. Although this understanding can be broadly used it does not guide and explain what a cloud-native application exactly is. The term ”cloud-native” was used quite frequently in birthday times of cloud computing
M
(2006) which seems somehow obvious nowadays. But the term disappeared almost completely. Suddenly and in the last years the term is used again more
ED
and more frequently and shows increasing momentum. This paper summarizes the outcomes of a systematic mapping study analyzing research papers covering ”cloud-native” topics, research questions and engineering methodologies.
PT
We summarize research focuses and trends dealing with cloud-native application engineering approaches. Furthermore, we provide a definition for the term ”cloud-native application” which takes all findings, insights of analyzed publi-
CE
cations and already existing and well-defined terminology into account. Keywords: Cloud-native application, CNA, systematic mapping study, elastic
AC
platform, microservice, self service, pattern, softwareization 2016 MSC: 00-01, 99-00
1 Corresponding
author.
Preprint submitted to Journal of Systems and Software
January 5, 2017
ACCEPTED MANUSCRIPT
1. Introduction The birthday of the cloud can be dated into the year 2006 – the first launch of a general purpose public cloud service (Simple Storage Service, S3 at 13th March
5
CR IP T
20062 ) by the currently most prominent public cloud service provider Amazon Web Services (AWS). Therefore, this study has not considered any papers dated
before 2006. Meanwhile other providers and further services followed. All these
cloud providers and their services forming nowadays our understanding of the term cloud computing. Although terms like public/private/hybrid cloud com-
puting and acronyms like IaaS (Infrastructure as a Service), PaaS (Platform as
a Service) or SaaS (Software as a Service) are frequently used, these terms are
AN US
10
often understood in differing ways. Gladfully, the mentioned terms are defined precisely by the NIST definition of cloud computing [1]. But there remains confusion with more specific topics in cloud computing like cloud-native applications (CNA). This contribution investigates a more precise understanding of the term ”cloud-native”.
M
15
According to Figure 1 and Google trends the term ”cloud-native” has an unusual diffusion rate over time. In birthday times of cloud computing – so about
ED
10 years ago – it was used quite frequently. To label something as cloud-native at the starting days of cloud computing seems somehow obvious today. However, the usage of the term ”cloud-native” decreased over following years according to
PT
20
Google. But since 2015, the term is more and more frequently used again and gained momentum (see Figure 1). We have to admit that Google trends is not
CE
a very reliable source for research – it is known to be prone for ”industrial buzzwords”. But, our literature review will show a very similar usage of the term ”cloud-native” in research studies (the reader might want to compare Figure 1 and Figure 5a). Furthermore, our data indicates that the current understand-
AC
25
ing of the term ”cloud-native” seems to have its origin in research and not in industry. It was used and characterized since 2012 in research. And yes, it gets 2 https://aws.amazon.com/releasenotes/122
3
(last access 5th July 2016)
CR IP T
ACCEPTED MANUSCRIPT
Figure 1: Google trends (01.01.2006 until 22.05.2016) of the term ”cloud-native”
suddenly popular in industry, but not before 2015 (according to Google trends, see Figure 1). We assume this sudden rise in industry has to do with the cur-
AN US
30
rent popularity of microservice and container-based approaches. Cloud-native applications may be a logical continuation of microservice and container-based approaches from an industry point of view. However, the reader will see, that ”cloud-native” concepts are reflected for a while in research. So, although the 35
term seems to be new, it is not. It simply never has been wide spread. How-
M
ever, some contributions providing valuable insights what additional properties an application must fulfill to be called ”cloud-native” compared with classical
ED
legacy distributed applications. But there are although ”white areas” on the map. So we think – after 10 years of cloud computing – it is time to be a bit 40
more precise with regard to the term ”cloud-native”.
PT
Therefore this contribution is outlined as follows: In Section 2 we will explain our systematic mapping and adaptive reading steps. Furthermore, we
CE
introduce our research questions and present our data. We make a comparative analysis of the data (main outcome of our systematic mapping study) regarding
45
our research questions in Section 3. We discuss existing strengths and weak-
AC
nesses of state of the art research and engineering in Section 4 (main outcome of our adaptive reading steps) to deduce some interesting research implications, existing engineering trends and valuable future research directions. Because we identified enough studies dealing with cloud-native application specifics, we were
50
able to propose a definition for the term ”cloud-native” in Section 5 taking all
4
CR IP T
ACCEPTED MANUSCRIPT
Figure 2: Research process (a combination of the process for performing systematic mapping studies and systematic literature reviews.
in Section 6.
2. Research Methodology
AN US
identified literature into consideration systematically. We conclude our findings
We aligned our research according to general guidelines for systematic map55
ping studies in software engineering [2, 3] and for systematic literature reviews
M
[4]. Additionally, we took updates and critical reflections [5] on these guidelines into consideration. Systematic mapping studies and systematic literature
ED
reviews are analyzing primary studies. A primary study is ”an empirical study investigating a specific research question” [4]. Reviews and mapping studies 60
are so called secondary studies. A secondary ”study [...] reviews all the pri-
PT
mary studies relating to a specific research question with the aim of integrating/synthesizing evidence related to a specific research question” [4]. A system-
CE
atic literature review ”uses a well-defined methodology to identify, analyze and interpret all available evidence related to a specific research question in a way
65
that is unbiased and (to a degree) repeatable” [4]. Other than that, a scoping or
AC
mapping study performs ”a broad review of primary studies in a specific topic area that aims to identify what evidence is available on the topic” [4]. According to guidelines for systematic maps and reviews in software engi-
neering, we used both approaches complementary [3]. Due to the insight that
70
”systematic maps can summarize and help transfer results to practitioners” [3] better, we decided to keep the focus on the systematic mapping process and used 5
ACCEPTED MANUSCRIPT
Table 1: Results (Papers might be listed in two or more sources) Oldest
Youngest
Latest access
IEEExplore
11
2010
2016
15.09.2016
ACM Digital Library
8
2014
2016
15.09.2016
Google Scholar
23
2015
2016
15.09.2016
Citeseer
10
2010
2014
15.09.2016
ScienceDirect
8
2010
2016
15.09.2016
SpringerLink
41
2006
2016
15.09.2016
Semantic Scholar
63
2011
2016
15.09.2016
CR IP T
Papers
AN US
Electronic Source
the mapping approach to scan ”cloud-native” literature in a broad way. These mapping outcomes are mainly presented in Section 3. However, in adapting reading depth steps we followed principles of systematic reviews. These out75
comes are mainly discussed in Section 4. The same is true for selecting relevant
M
papers to derive a definition proposal for cloud-native applications (see Section 5). This process combination is visualized in Figure 2 and explained in the following paragraphs. The second author of the study performed detailed quality
80
ED
control checks on each of these presented steps and intermediate outcomes. 2.1. Research Scope and Research Questions
PT
Cloud computing emerged 10 years ago. It is obvious that in a first adoption phase existing IT systems simply had been transferred to cloud environments.
CE
But cloud environments are elastic. Elasticity is understood as the degree to which a system adapts to workload changes by provisioning and de-provisioning
85
resources automatically. Over the time system engineers understand the elastic-
AC
ity options of modern cloud environments better and they intentionally designed systems for such elastic cloud infrastructures. This intention is often expressed using the term ”cloud-native”. Therefore, our literature review has been guided by the following research questions defining our research scope:
90
• [RQ1] Where does the term ”cloud-native” come from? 6
ACCEPTED MANUSCRIPT
Table 2: Inclusion and exclusion criteria Inclusion
application design, engineering or operation in broadest sense.
Exclusion
CR IP T
(1) Keynotes, conference papers, journal papers, books and book chapters dealing with cloud-native
(1) The abstract made obvious that a contribution lies outside the cloud computing domain (e.g. weather, climate papers often use ”cloud” terms, the same is true for some astrophysical papers)
AN US
(2) The content of the paper showed that the term ”cloud-native” has been used only occasionally without
focusing it explicitly (e.g. that a methodology can be used for a cloud-native application as well beside a lot of other use cases). We only checked this if the term ”cloud-native” is not explicitly mentioned in title or abstract. (3) The contribution was only available in the form of abstracts or powerpoint presentations (this rule was not applied for keynotes).
(4) Type of publication could not be determined (technical report, conference, journal, book chapter, book,
M
keynote) (5) Publication language was not English.
ED
• [RQ2] Is there a common understanding of the term ”cloud-native”? • [RQ3] What are existing trends in cloud-native application engineering?
PT
• [RQ4] What promising trends for future cloud-native research and engi-
CE
neering can be deduced?
95
2.2. Conduct Search for Primary Studies So far, the terms ”cloud-native” or ”native cloud” are not very intensively
AC
used in literature. However, they show increasing momentum and are emerging from an evolutionary process starting with the service-oriented architecture approach, system virtualization, cloud computing, operating system virtualization
100
(aka container) and ending in a recently most popular approach: microservices. We conducted our search for studies in the electronic sources listed in Table 1 (according to recommendations for performing literature reviews in software 7
ACCEPTED MANUSCRIPT
engineering [2, 5]). We searched for contributions published in or after 2006 having the term ”cloud-native” or ”cloud native” in their title, abstract or key105
words. However, we did not perform a full text search. We argue, that the
CR IP T
cloud-native aspect should be intentionally taken so much into consideration by authors that they should explicitly mention it in title, abstract or as a keyword. However, in case of book chapters or books we searched for the search terms
in the content as well. For these kind of publications sometimes abstracts and 110
keywords are not provided via electronic sources. In these cases we scanned for the search terms in introduction and conclusion or summary sections by hand
AN US
to include relevant publications like [6]. These kind of publications would have otherwise fallen through our search filters. This would have become problematic especially in case of [6], which turned out to be one of the most valuable sources 115
in understanding cloud-native applications.
2.3. Screening of Papers for Inclusion and Exclusion
M
Table 3 shows the selected studies. We selected these studies by applying inclusion and exclusion criteria shown in Table 2 to exclude studies that are not
ED
relevant to answer our research questions.
Experience
Opinion
Survey
Solution
Evaluation
Title (shortened)
Year
Type
Cloud Computing Patterns
2014
Book
x
x
CE
[6]
Validation
ID
PT
Table 3: Included and categorized papers (unsorted to avoid any bias)
[7]
Cloud Computing Design Patterns
2015
Book
x
x
[8]
Migrating to Cloud-Native Application
2015
Book
x
x
2016
Journal
2016
Journal
2012
Conf.
AC
Architectures
[9]
[10]
On Service Resilience in Cloud-Native 5G
x
x
Mobile Systems Microservices Architecture Enables DevOps:
x
Migration to a Cloud-native Architecture [11]
Designing for CAP
8
x
ACCEPTED MANUSCRIPT
2014
Conf.
and Deployment of Cloud Applications [13]
Migrating to Cloud-Native Architectures
2016
Chapter
[14]
Scalability and Robustness of Time-series
2014
Conf.
Databases for Cloud-native Monitoring of
[15]
CAP-Oriented Design for Cloud-Native Applications
2013
Chapter
[16]
Docker Cluster Management for the Cloud
2016
Journal
[17]
Touchless and always-on cloud analytics as
2016
Journal
a service
x
x
x
AN US
Industrial Processes.
Experience
Madcat: A Methodology for Architecture
Opinion
[12]
Survey
Type
Solution
Year
Evaluation
Title (shortened)
CR IP T
ID
Validation
Continuation of Table 3: Included and categorized papers
x
x
x
x
x
Forensic analysis of cloud-native artifacts
2016
Journal
[19]
Forensic Acquisition of Cloud Drives
2016
Journal
x
x
[20]
Towards a Cloud-Native Radio Access
2016
Chapter
x
x
2015
Chapter
x
x
Microservices Migration Pattern
2016
Journal
x
x
Migrating to Cloud-native Architectures
2015
Conf.
[21]
Building Go Web Applications on Google
[23]
PT
Cloud [22]
ED
M
[18]
Network
x
x
x
x
x
CE
Using Microservices: An Experience Report Service Fabric
2015
Chapter
[25]
Processing Radio Access Network Functions
2015
Conf.
2015
Book
AC
[24]
[26]
[27]
x x
x
in the Cloud: Critical Issues and Modeling Cloud Migration Patterns: A Multi-cloud Service Architecture Perspective
x
x
Chapter
Era of Cloud Computing: A New Insight to
2015
Hybrid Cloud
9
Journal
x
x
ACCEPTED MANUSCRIPT
2016
Journal
with auto-scaling resources for executing bioinformatics andbiomedical workflows [29]
Cloud Native Cost Optimization
2015
Keynote
[30]
Energy Cloud: Real-Time Cloud-Native
2014
Conf.
x
x
x
x
x
x
x
AN US
Energy Management System to Monitor and
Experience
Building an open source cloud environment
Opinion
[28]
Survey
Type
Solution
Year
Evaluation
Title (shortened)
CR IP T
ID
Validation
Continuation of Table 3: Included and categorized papers
Analyze Energy Consumption in Multiple Industrial Sites
Kubernetes and the Path to Cloud Native
2015
Keynote
x
[32]
Microservices for Scalability: Keynote Talk
2016
Keynote
x
[33]
Acceleration of Cloud Computing
2014
Conf.
[34]
Handling Performance Sensitive Native
2013
Conf.
x
2012
Conf.
x
2010
Conf.
QUELLE - A Framework for Elastic Systems
2014
Chapter
Toward an Anti-fragile e-Government
2016
Chapter
2013
Chapter
M
[31]
x
x
Cloud Applications with Distributed Cloud
[35]
ED
Computing and SLA Management
4CaaSt: Comprehensive Management of Cloud Services through a PaaS
[37] [38]
Cloud Database-as-a-Service (DaaS) - ROI
PT
[36]
x x x
CE
System
[39]
Cloud Services Composition Support by
x
x
AC
Using Semantic Annotation and Linked Data
[40]
The Hybrid Cloud
2016
Chapter
[41]
MobiCloUP!: a PaaS for cloud
2014
Journal
services-based mobile applications
10
x x
x
ACCEPTED MANUSCRIPT
2014
Chapter
A Case Study [43]
Opportunities to Innovate Today
2013
Chapter
[44]
Critical analysis of vendor lock-in and its
2016
Journal
impact on cloud computing migration: a
[45]
x
x
Cloud Detours: A Non-intrusive Approach
x
x
x
AN US
business perspective 2015
Conf.
x
x
2015
Conf.
x
x
2014
Journal
2015
Conf.
2014
Conf.
x
2016
Conf.
x
2016
Conf.
x
2016
Keynote
for Automatic Software Adaptation to the Cloud [46]
CPFirewall: A Novel Parallel Firewall
Environment [47]
Portability in Clouds: Approaches and
ED
Research Opportunities [48]
M
Scheme for FWaaS in the Cloud
Experimental Evaluation of the
x
x
Cloud-Native Application Design
Deployment Aggregates - A Generic
PT
[49]
Deployment Automation Approach for Applications Operated in the Cloud Cloud-native Event-based Programming for
CE
[50]
Mobile Appls
AC
[51]
[52]
QoE-aware elasticity support in cloud-native 5G systems Native Cloud Applications: Why Virtual Machines, Images and Containers Miss the Point!
11
Experience
A Hybrid Grid/Cloud Distributed Platform:
Opinion
[42]
Survey
Type
Solution
Year
Evaluation
Title (shortened)
CR IP T
ID
Validation
Continuation of Table 3: Included and categorized papers
x
x
ACCEPTED MANUSCRIPT
2016
Chapter
2016
Conf.
Cloud-native Application Provisioning for SMEs by Integrating Already Available Container Technologies [54]
ClouNS - A Cloud-native Application
120
x
x
AN US
Reference Model for Enterprise Architects
Experience
Project Cloud TRANSIT - Or to Simplify
Opinion
[53]
Survey
Type
Solution
Year
Evaluation
Title (shortened)
CR IP T
ID
Validation
Continuation of Table 3: Included and categorized papers
2.4. Categorization of Papers (Keywording of Abstracts)
According to [2] and if possible, existing classification schemes should be used for topic specific classification of papers. We checked IEEE, ISO/IEC as well as Swebok standards [55] but found no appropriate classification system.
125
M
So, like a majority of mapping studies [2] we were forced to derive our own toic specific classification scheme. We did this using the process shown in Figure
ED
3. We took the authors’ keywords as a starting point. If keywords of authors were not provided we did some adaptive reading (as recommended by [3]) and derived meaningful keywords on our own based on the title and the abstract.
130
PT
For some contribution types like book Chapters or books and in rare cases for conference papers and conference keynotes there were no abstracts provided (or the abstracts were not helpful at all). In these cases we decided to do even more
CE
adaptive reading and evaluated introduction and conclusion sections as well to derive meaningful keywords.
AC
In further steps we unified author provided keywords into a unified keyword
135
scheme by aggregating similar keywords into a unified keyword category. All selected papers dealt with 21 detailed research topics of cloud-native applications. We decided to group these detailed research topics into the following major CNA research topics (see Table 4): CNA principles describe recurring principles how CNA properties are 12
AN US
CR IP T
ACCEPTED MANUSCRIPT
Figure 3: Keywording of selected papers
achieved and how transferability of a CNA can be realized. According to selected
M
140
papers, CNAs should be operated on automation platforms. Softwarization of infrastructures should be strived for to support DevOps principles more conse-
ED
quently. Operation of CNAs in multi- and hybrid clouds should by supported by applying migration and interoperability principles. CNA architecture include general CNA design aspects like service-oriented
PT
145
architecture approaches (particular the microservice architecture approach) as well as accompanying service composition principles of self-contained deploy-
CE
ment units (containers). CNA methods include patterns and design methodologies to create effec-
tive CNA architectures and DevOps to automate the process of delivery and
AC
150
infrastructure changes. These methods are applied frequently in CNA context. CNA properties describe characteristics of CNA. Such characteristics deal-
ing with consistency models, availability, partition tolerance (all strongly related to Brewer’s CAP theorem [56]), elasticity, resilience and service levels (SLA).
155
This property combination seems to be very characteristic for CNA according
13
ACCEPTED MANUSCRIPT
Table 4: Topic specific categories Detailed Research Topic
CNA Principles
Automation Platform, Migration, Softwareization, Interoperability
CNA Architecture
CNA Design, Microservices, Service Composition, Deployment Unit
CNA Methods
Patterns, Design Methodology, DevOps
CNA Properties
Scalability, Resilience, Elasticity, CAP Properties, SLA for CNA
Use Cases
telecommunication, industrial processes, bioinformatics,videostreaming service
CR IP T
Research Topic
providers, energy management and experiences with public cloud services (likely
Other
AN US
incomplete)
forensics, cloud-native artifacts, costs,decision making (likely incomplete)
to selected papers.
Further keywords dealt with use cases. These use cases can be categorized into the following domains: telecommunication, industrial processes, bioinfor-
160
M
matics, videostreaming service providers, energy management and experiences with public cloud services. However, it is likely that there are a lot of other applicable use cases which did not turn up in our literature screening due to
ED
our focus on cloud-native application literature (we did not search for use cases relevant for cloud applications in general). Other keywords dealt with special
165
PT
aspects like forensics of cloud-native artifacts and cloud costs and accompanying decision making models. However, it seems that there is no clear focus on these
CE
aspects associated with the term ”cloud-native” (so far). 2.5. Data Extraction and Mapping of Studies We extracted data from the papers for several aspects and to systematically
AC
answer our research questions (see Section 2.1). First of all, each paper is
170
evaluated according to its publication year. This is documented in Table 3 and visualized in Figure 5a. Due to the fact, that we could only consider publications until September of 2016, we extrapolated (linearly) the estimated publications for the complete year 2016. We use this to search for the origin of
14
ACCEPTED MANUSCRIPT
Book 8%
Book Chapter (2 peer review rounds) 26%
Validation/ Evaluation 19%
Journal (1 peer review round) 24%
Experience Report 27%
Solution Proposal 35%
(a) Contribution types
AN US
Keynote 8%
Survey 10%
CR IP T
Conference (1 peer review round) 34%
Opinion 9%
(b) Research approaches
Figure 4: Distribution of selected papers
the term ”cloud-native”. This will be discussed in Section 3.1.
Each paper is assigned a contribution type (book, book chapter, journal
M
175
paper, conference paper, keynote) which is used to evaluate the overall quality assessment of found papers (see Section 2.6). It is quite uncommon in map-
ED
ping studies to cover keynotes. We decided to do so. Mainly, because some of the keynotes like [31] by E. Brewer are highly influential in the cloud-native domain. According to the best of our knowledge all keynotes we selected are
PT
180
published/listed in the proceedings of the respective conferences. This is documented in Table 3 and the distribution across contribution types is visualized
CE
in Figure 4a.
We decided to classify selected papers by their research type according to
an existing classification of research approaches (proposed by [57] and summa-
AC
185
rized in Table 5). However, we did not classify philosophical papers (because they are quite rare in software engineering) and replaced philosophical papers by survey papers. And due to insights by [5] that there arise a lot of discussions whether a study is a validation or evaluation study, we decided to group both re-
190
search types as equal. This is documented in Table 3 and the distribution across
15
Table 5: Research approaches
CR IP T
ACCEPTED MANUSCRIPT
Description
Evaluation/
Evaluation means that techniques are implemented in practice and an evaluation of the
Validation
technique is conducted. It is shown how the technique is implemented in practice (solution
Research
implementation) and what are the consequences of the implementation in terms of benefits
AN US
Category
and drawbacks (implementation evaluation). A validation is done for techniques that might be novel or have not yet been implemented in practice. These techniques are validated using experiments, i.e., work done in the lab.
A solution for a problem is proposed, the solution can be either novel or a significant extension
Proposal
of an existing technique. The potential benefits and the applicability of the solution is shown
M
Solution
Survey Papers
ED
by a small example or a good line of argumentation. A survey reviews other primary or secondary studies relating to a specific research question with the aim of integrating/synthesizing evidence related to a specific research question. These papers express the personal opinion of somebody whether a certain technique is good or
PT
Opinion Papers
bad, or how things should been done. They do not rely on related work and research methodologies. Experience papers explain on what and how something has been done in practice. It has to be
Reports
the personal experience of the author.
AC
CE
Experience
16
ACCEPTED MANUSCRIPT
contribution types is visualized in Figure 4b. We use this data supportively to discuss and reflect most investigated research topics in Section 3.3. The research topics were derived from keywords of selected papers using
195
CR IP T
the methodology being described in Figure 3. The distribution of the main and detailed research topics in selected papers is visualized in Figure 5b and Figure
5c. Additionally, we mapped research main topics to research approaches to
visualize and investigate what research approaches are applied mainly for what research topics. Therefore, we aggregated all publications by their research approach, their research detail topics and their main topic. Then we counted
how many papers of a specific research approach dealt with a specific research
AN US
200
main topic. Papers were counted more than once if they had been assigned to two or more research approaches or dealt with two or more main research topics. The resulting mapping is presented in Figure 6 and will be used in Section 3.3 to discuss most investigated cloud-native topics. The scope of the research topics 205
are explained in Table 4.
M
Most selected papers could not assigned to only one detail research topic. So, we were interested how detail research topics are correlated to each other.
ED
Therefore, we counted how many papers dealt with two research topics in the same paper. We did this to investigate what detail research topics seem to be 210
more correlated than others. The resulting mapping of correlated detail research
PT
terms is presented in Figure 7. However, the reader should be aware that we did this detail research only for the identified main research topics and not for
CE
mentioned use cases (not the focus of our research and therefore likely insufficient data) and other topics like cloud forensics or cost aspects (not enough data).
215
Both mappings are used in Section 3.3 to discuss and reflect most investigated
AC
cloud-native research topics. 2.6. Study Quality Assessment The quality assessment of a study is a challenging and tricky task. Due to
the nature of things there exist little objective criteria to apply [2, 5]. Because 220
of selected electronic sources (see Table 1) and selection criteria (see Table 2) 17
ACCEPTED MANUSCRIPT
25
CNA Principles
20
CNA Architecture
15
CNA Properties
10
Use cases
5
CNA Methods 0 2007
2008
2009
2010
Published Papers
2011
2012
2013
2014
30% 25%
30%
40%
50%
60%
Other aspects
(b) Main research topics
M
20%
(c) Detailed research topics (without use cases) Figure 5: Distribution of research topics of selected papers
18
SLA for CNA
CAP Properties
DevOps
Design Methodology
Elasticity
Service Composition
Deployment Units
Resilience
Patterns
Scalability
Softwareization
Migration
PT Microservices
CNA Design
Automation Platform
CE
Interoperability
ED
15% 10% 5% 0%
2016
Extrapolation (for 2016)
(a) Publications over years
AC
2015
20%
AN US
2006
10%
70%
CR IP T
0%
30
AN US
CR IP T
ACCEPTED MANUSCRIPT
Figure 6: Mapping of research topics to research approaches
mainly academic and mostly peer-reviewed contributions should turn up. So, in
M
accordance to electronic sources and selection criteria, we decided to estimate quality of a selected research paper by their degree of peer reviewing. Contributions are rated as higher quality as more peer reviewing is incorporated in them. Furthermore, we look at a typical research contribution evolution process and
ED
225
how much peer reviewing is accumulated along this process. A lot of research
PT
contributions start as a conference paper. Outstanding conference papers are invited as extended papers to journals or as selected papers as book chapters in books. This involves very often a second peer review round. So, books integrate a lot of multiple peer reviewed research contributions. Even if books
CE
230
are (only) written without formal peer reviewing involved, these books rely on
AC
a lot of previous peer reviewed research most of the times. A special contribution type regarding quality are keynotes. Most of the times, keynotes are not formally peer reviewed. But, keynote speakers are selected and invited due
235
to their former (peer reviewed) research contributions or practical relevance of their industrial work. So it is likely, that keynotes rely on valuable research contributions or practical relevance and often show interesting (research) opinions
19
ACCEPTED MANUSCRIPT
in a specific field of research. According to Figure 4a 78% of selected papers are from sources where it 240
is likely that there has been involved at least one peer review round. 54% of
CR IP T
selected papers are from sources where it is likely that there has been involved two or even more review rounds (journals or book chapters). And 9% of selected
contributions (keynotes and books) are contributions likely without a formal peer reviewing process. But these contributions rely on a lot of peer reviewed 245
research worth to be considered. Taking all together, we think that Table 3 provides a reliable selection to do a profound definition proposal in Section 5.
AN US
Section 5 will additionally include the outcomes of data extraction and synthesis steps of the systematic literature review shown in Figure 2 and discussed in Section 4. 250
2.7. Threats of Validity
According to [2] there are common validity threats for systematic mapping
M
studies. Therefore, we reflect on possible threats which might arise from this study.
255
ED
The theoretical validity might be incomplete due to not published new and controversial views on cloud-native applications. CNAs looking back on 10 years of cloud computing history. However, the term ”cloud-native” just re-
PT
cently gained momentum in academics as well as in industry. So it is likely that this study could not take all relevant contributions into account which might rise up in the near future or we might not took considerations into account which are not intentionally associated with the term ”cloud-native”. Further-
CE 260
more, there are controversial discussions dealing with microservices and service
AC
oriented architectures (SOA) [52]. And we got the intention that some papers dealing with microservices might be handled ”with care” by established SOA researchers. However, there is no objective data to the best of our knowledge
265
to harden this fact. The descriptive validity might be insufficient for specific aspects. Ac-
cording to Figure 6 there are less evaluating or validating studies than solution 20
ACCEPTED MANUSCRIPT
proposals. That might indicate that our search filters omitted evaluating and validating studies. However, we think, this just describes the current state of 270
research. We had a broad view on CNA and searched not intentionally for spe-
CR IP T
cific aspects like cloud forensics, security, business applicability and so on. Our study should not be taken to draw any conclusions on these specific aspects.
A potential researcher bias might be given for Section 4. However, one (personal) intent of this study was to objectify authors’ point of view on CNA 275
engineering state of the art to overcome this possible bias. And we have done
the best to handle each contribution from an objective point of view. Never-
AN US
theless, the reader should be aware that one of the authors is deeply involved in application design for cloud computing contexts and therefore might have constructed a very specific point of view. One of the authors’ studies [54] relies 280
partly on action research. We are aware, that action research is seen by some researchers as a non-objective research method (or not a research method at all). Therefore, the reader should take especially [54] into additional considera-
M
tion to get a full view and draw its conclusions on Section 4. We assure, that action research has not been applied for this study. Furthermore and according to recommendations for conducting systematic mapping studies in software en-
ED
285
gineering [2], the second author responsible for quality assurance steps was not involved intentionally in [54] research to minimize such kind of researcher bias
PT
for this mapping study.
CE
3. Discussion of Research Questions We will discuss our research questions in this Section mainly on a quan-
290
titative and comparative basis. To avoid any bias we avoid any unnecessary
AC
interpretation or rating of identified studies and rely mainly on quantitative mapping outcomes. Of course, a qualitative discussion of identified papers is interesting and will be done in Section 4 summarizing outcomes of our adaptive
295
reading steps.
21
ACCEPTED MANUSCRIPT
3.1. Origin of the term ”cloud-native” [RQ1] According to Figure 5a the first contributions using the term ”cloud-native” have been published in 2012 [11, 35]. Both conference papers proposed solu-
300
CR IP T
tions for cloud-native application engineering. [11] proposes a pattern-based solution for a cloud-native application design methodology based on systemat-
ically identifying consistency, availability and network partitionability requirements (according to the CAP theorem presented by Brewer et al. [58, 59, 60]).
The authors of this contribution are all from the research group headed by Frank Leymann (Institute of Architecture and Application Systems, University
of Stuttgart, Germany). The paper itself references several other papers dealing
AN US
305
with pattern-based approaches. But none of these papers use the term ”cloudnative” until [11]. Several further papers of this research group focus similar topics, often model- and pattern-based approaches. Our study selection contains at least three papers by this research group. E.g. the TOSCA standard is 310
heavily influenced by the work of this research group.
M
The second paper [35] is about 4CaaSt, a ”PaaS framework that enables flexible definition, marketing, deployment and management of Cloud-based ser-
ED
vices and applications. The major innovations proposed [...] are [...] lifecycle management, a one stop shop for Cloud services and a PaaS level resource 315
management featuring elasticity, [...] a portfolio of ready to use cloud-native
PT
services and Cloud-aware immigrant technologies”. The 4CaaST project was an EU funded project and the authors of the publication are from various aca-
CE
demic and industrial research institutions: Telefonica, Tilburg University, SAP Research Centre, University of St. Gallen, University of Madrid, Nokia Siemens
320
Networks, Orange Labs and Ericsson Research Center. However, the already
AC
mentioned Institute of Architecture and Application Systems was involved in additional publications covering the 4CaaSt project as well. The publications [11, 61] were – according to the acknowledgement – at least partly funded by the 4CaaSt project.
325
It is interesting to see, that both publications focus aspects like pattern based approaches [11] and automation platforms [35] which are intensively reflected in 22
ACCEPTED MANUSCRIPT
several other selected papers as well. Figure 7 shows the correlation on research topics. The reader sees that the research topic automation platform is intensively correlated to cloud-native architecture topics and cloud-native application properties like scalability, re-
CR IP T
330
silience and elasticity. The same is true for patterns which are intensively correlated to cloud-native application design topics. So, both papers can be seen as one of the first research papers dealing with and introduced cloud-native topics. In fact, we found Fehling et al. [6] as one of the most helpful and complete 335
sources systematizing a lot of cloud-native application aspects. This contri-
AN US
bution is derived by and integrates several other publications (beginning with [11]) of the Leymann research group. So, we are willing to say that the research
project 4CaaSt and the research group around Leymann et al. might be the origin of the term ”cloud-native” in research. Even if not, the authors provided 340
major contributions to a better understanding of the term ”cloud-native”.
M
3.2. Meaning of the term ”cloud-native” [RQ2]
Although there exist no precise definition what a cloud-native application
ED
exactly is, we can conclude that there is a common but unconscious understanding across all analyzed papers. According to Section 2.4 and Figure 7, 345
cloud-native applications (CNA) should be build according to corresponding
PT
CNA principles (being operated on automation platforms; using softwarization of infrastructure and network; having migration and interoperability across different cloud infrastructures and platforms in mind). Following these princi-
CE
ples enable to build CNA architectures (mainly service-based and often with
350
self-contained deployment units involved) with specific and wishful CNA prop-
AC
erties (horizontal scalability, elasticity, resiliency, isolated strict consistent or eventual consistent state) of resulting applications. To realize CNAs, there exist accompanying CNA methods which are often pattern based. Furthermore, DevOps principles are taken more and more into consideration as well. Each of
355
these CNA topics (principles, architecture, methods and resulting properties) are influencing each other. However, some topics and their interdependencies 23
ED
M
AN US
CR IP T
ACCEPTED MANUSCRIPT
Figure 7: Correlation of research topics
PT
are reflected more intensively than other topics. We will discuss this in following Section 3.3. Additionally, we will propose a definition which takes all identified literature into consideration systematically and relate it to already existing and well defined terms (see Section 5).
CE
360
AC
3.3. Existing trends in cloud-native engineering [RQ3] According to Figure 5b, most research focus lays on principles how to
design cloud-native applications. The most focused detail topic is to operate cloud-native applications on top of automation platforms. These kind of plat-
365
forms are named elastic platforms by Fehling et al. [6]. In industry we see this trend as well. There is currently a lot of interest in platforms like Apache Mesos,
24
ACCEPTED MANUSCRIPT
Kubernetes, Docker Swarm and so on. Another important focus can be seen in appropriate architectures of cloudnative applications. An intensively focused detail topic is how to create an appropriate design of a cloud-native application. Most authors focus service-
CR IP T
370
based approaches in this context. Especially microservice based approaches are
mentioned more and more often. There exist very interesting papers dealing with the trend to use microservice based approaches in cloud-native application engineering [62, 23]. However, the question remains whether microservices are 375
something new or just a specific (maybe more pragmatic) approach of the service
AN US
oriented architecture approach (SOA). This contribution can only state that the term microservice is correlated to the term ”cloud-native”. SOA is almost not mentioned explicitly in ”cloud-native” papers. It is to mention that Leymann et al. use the term SOA (and seem to avoid the term microservices). The authors’ 380
opinion is, that service-based approaches are vital for cloud-native approaches. It might be of minor relevance whether a service is ”micro” or not. However,
M
accompanying the term microservice there is an increasing focus on container technologies as well in industry. The interest is mainly due to the opportunity
ED
to create self-contained deployment units in a standardized form. The correlation of research topics is interesting as well (see Figure 7). CNA
385
design seems to be highly correlated with patterns. The same is true for mi-
PT
croservices and deployment units. Automation platforms are often mentioned beside architectural topics like microservices, service composition, and deploy-
CE
ment units. Furthermore, CNA properties like scalability, resiliency and elas390
ticity are mentioned very often in the same papers. So, automation platforms are seen by a lot of authors as an enabler to realize sustainable CNA archi-
AC
tectures. The design of sustainable CNA architectures seems to be influenced
deeply by pattern based approaches and relies on microservices being build on
self-contained deployment units (containers). Furthermore, microservices and
395
CNA properties like scalability, resiliency and elasticity are mentioned very often in the same papers. So, automation platforms, microservices and pattern based approaches seem to be seen as key enablers for cloud-native applications. 25
ACCEPTED MANUSCRIPT
3.4. Promising research directions [RQ4] Figure 6 shows, that there is a clear focus on solution proposals in research 400
dealing with cloud-native application engineering. The proposals cover mainly
CR IP T
principles and architectures how to build cloud-native applications. A mature research domain would be based on a lot of systematic validations/evaluations
and concrete experiences leading to solution proposals. Solution proposals would be reflected by a lot of validation/evaluation studies. The complete research 405
would be reflected by a lot of survey studies which might end in new insights.
Looking at Figure 6, we see that this maturity seems not to be reached so
AN US
far in cloud-native application research. Insights in shortcomings of existing approaches are derived mainly from experience reports focusing CNA principles
and architectures. Methods and properties of CNA applications seem a bit un410
derrepresented by solution proposals. Systematic evaluation and validation research seems to be underrepresented so far and focused on CNA principles and use cases. Most papers present solution proposals focusing CNA
M
principles or architectures. So, solution proposals are very often derived from concrete use cases or experience reports but not from systematic evaluations or validations. Architecture, methods and properties are almost not covered by
ED
415
validation studies. The same is true for survey studies. So, from authors’ point of view, there is room for research in these underrepresented fields (see
PT
Figure 6). However, we will cover this aspect in Section 4 in more details.
CE
4. Engineering Trends and Possible Future Directions [RQ4] So far, we mainly have done a quantitative and comparative analysis on
420
AC
the identified paper population. In this Section we investigate identified cloudnative research on a qualitative (so with regards to content) basis. We do this by discussing research implications of identified CNA principles, CNA architectures, CNA methods, and CNA properties. That enables us to identify some
425
open research topics (denoted as (TOPIC.NR) in text) which are listed in Table 6 and will be discussed in following sections.
26
CR IP T
ACCEPTED MANUSCRIPT
Table 6: Open research topics (without claim to be complete) Id
Valuable research directions
CNA Prin-
PRINC.1
Design of elastic intermediary platforms for multi-cloud sce-
PRINC.2
Transferability of CNA for hybrid or multi-cloud scenarios
METH.1
Long term implications of DevOps/microservice based engi-
METH.2
CNA specific engineering methodologies (intentionally cover-
METH.3
Compositional programming languages for CNA.
ARCH.1
Reference models for CNA.
ciples
narios.
AN US
Topic
(deeply related to ARCH-1/2). CNA Methods
neering methodologies.
Ar-
chitecture
ARCH.2
Standardization of elastic intermediary platforms.
ARCH.3
Integration of isolated trends (service, ).
PROP.1
Elasticity of stateful CNA components.
PROP.2
Synchronizing platform and application elasticity.
PROP.3
Security engineering for (multi-cloud) CNA.
PT
CNA Prop-
ED
CNA
M
ing elasticity).
AC
CE
erties
27
ACCEPTED MANUSCRIPT
4.1. Research Implications of CNA Principles We identified a trend to operate CNA not directly on IaaS infrastructures but on intermediary elastic platforms [6, 54]. This simplifies engineering, deploying and operating of CNAs and leverages softwareization of infrastructure
CR IP T
430
and networks. It even contributes to more economic operation of CNAs [29]. This has been done in past research often via specialized PaaS platforms [35, 41]
but these platforms have the tendency to create platform lock-ins [44]. So, in recent years there is a trend to encapsulate arbitrary software in standardized 435
and self-contained deployment units (containers) and to operate these units on
AN US
container clusters like Apache Mesos, Kubernetes, Docker Swarm [31, 16]. However, we found little studies focusing how to design and build such kind
of intermediary elastic platforms (PRINC-1). We will cover this aspect in Section 4.3 in more details.
Another often mentioned principle is the migrateability of CNAs. A lot of
440
fruitful research has been done for the question how existing legacy applications
M
can be migrated to cloud environments and how these applications must be transformed to be ”cloud-native” [23, 26, 10]. However, this obviously focus no
445
ED
systems intentionally designed for the cloud. Other interesting approaches focus how to design applications to be deployable to arbitrary environments often including but not limited to cloud-environments [45, 49]. But interoperability
PT
or portability in hybrid or multi-cloud scenarios (PRINC-2) seems to be only considered by single case or survey studies so far [42, 47]. But
CE
exactly this would be necessary to overcome vendor lock-in vulnerabilities of 450
CNAs [44].
AC
4.2. Research Implications of CNA Methodologies A lot of studies report about trends to use microservices [8, 23, 26, 48, 63, 32],
to use DevOps [24, 63] or to make use of softwareization [9, 25, 28, 33, 37, 46] to realize and operate CNAs pragmatically. These trends seem to be widely ac-
455
cepted and preferred. However, microservices, DevOps and softwarization shift more realizing autonomy to small development and operation teams. Especially 28
ACCEPTED MANUSCRIPT
the microservices approach motivates this intentionally [8]. But we found no study that dealt with the consequences. Microservice followers often cite Conways Law3 . However, according to this law the organizational (two pizza4 ) structures coming along with microservices and DevOps principles should lead
CR IP T
460
to more heterogeneous service realizations which only focus singular problems.
The microservice intent is to solve these singular problems well and in a massively horizontal scalable and elastic way. Large scale systems are composed of
these independently replaceable components. But according to Conway [64] this 465
should result in increased heterogeneity (which most other approaches would like
AN US
to restrict). One may even ask if microservices and DevOps are ”eating” top down engineering methodologies? It would be interesting to investigate what the long term implications of these autonomous engineering approaches are (METH.1). It seems likely that resulting systems might have 470
the tendency to become hardly maintainable on the long term. Most existing microservice based systems are still very young systems nowadays. So, the long
M
term effects of these engineering methodologies might not be observed so far. A lot of CNA methodologies are pattern based [6, 7, 8, 10, 11]. Patterns are
475
ED
a well accepted and proven engineering methodology in software engineering. This insight has been transfered to CNA engineering as well. It is better not to reinvent the wheel but to rely on proven solutions that have been working in
PT
past. So, existing engineering methodologies are taken and combined with cloud specific patterns. This seems obvious. However, systems of the past were seldom
CE
elastic systems. So, there might be the need for some CNA specific engi480
neering methodologies (METH.2) covering CNA specific problems (namely
AC
elasticity).
3 ”Organizations
which design systems [...] are constrained to produce designs which are
copies of the communication structures of these organizations.” [64] 4 According to rumors, Amazon has a rule that a software engineering team should not be larger than its hunger can be satisfied by two pizzas. This ”two pizza rule” is often mentioned by practitioners.
29
ACCEPTED MANUSCRIPT
4.3. Research Implications of CNA Architectures Components of CNAs are often realized as containers [16].
These self-
contained deployment units are operated on elastic platforms. Popular elastic container platforms are Google’s Kubernetes, Apache Mesos, Docker Swarm,
CR IP T
485
to name a few. These platforms can be deployed across different cloud service
providers [54] and therefore reducing vendor lock-in effects (see [44]). However, a
CNA developed for Kubernetes is not deployable on Mesos or on Swarm without
further engineering efforts. There exist standardization initiatives for contain-
ers and there should be standardization initiatives for elastic container platforms (ARCH-2) as well.
AN US
490
Furthermore, CNA engineers use these elastic platforms to encapsulate deployment unit heterogeneity. To handle this heterogeneity of CNA components, we see some dominating major requirements. 495
1. The necessity to standardize packaging these components into standard-
M
ized self-contained deployment units is mentioned by a lot of studies [8, 12, 23, 16, 31, 48]. Technically this is solved using containers and operating system virtualization. Notably Docker has established here a de
500
ED
facto standard.
2. There is the necessity to interface these heterogeneous but standardized
PT
deployable services with scalable and simple communication means. This is often done via REST-based APIs transferring arbitrary but JSONserialized data. This seems to exploit existing internet infrastructures in a
CE
very pragmatic way to build distributed, large scale, massively (horizontal)
505
scalable and elastic cloud systems. In fact it seems that this is the main
AC
CNA component composition approach [8, 16, 10, 34, 39].
510
3. These services shall be loosely coupled by events or by data. Event coupling is often realized via messaging solutions (e.g. AQMP standard). Data coupling is realized using various scalable but (mostly) eventual consistent storage solutions (which are often subsumed as NoSQL databases). These storage solutions are used to isolate states to simplify scalable sys30
ACCEPTED MANUSCRIPT
tem designs of (large parts of) these systems [6, 7, 15]. All trends (see Table 7) can be seen as isolated trends. However, according to practitioners they fit very well together and support in a ”natural way” to build massively scalable and large scale systems which are more and more often
CR IP T
515
called ”cloud-native applications”. But we found almost no studies focusing the integration aspects of these isolated trends (ARCH-3).
Furthermore, although these trends are identifiable, they do not seem to be
accompanied by systematic evaluation or validation research and they are hardly covered by integrated concepts or reference models (ARCH-1).
AN US
520
4.4. Research Implications of CNA Properties
According to our survery, a CNA shall have wishful CNA property combination of horizontal scalability [29, 14], elasticity [37, 12], and resiliency [9, 14, 38, 42]. A lot of research about cloud-native applications is reported as solution proposals and experience reports. However, systematic evaluation and
M
525
validation of postulated effects seems to be rare. Elasticity is often aligned to microservice based approaches. And microser-
ED
vices are relying heavily on stateless services. But stateless services can be scaled up and down easily from a distributed systems conceptual point of view. 530
We found only little research dealing with the elasticity of stateful CNA
PT
components (PROP.1) which is the much harder problem. Although, we did not investigate elasticity research in details, we got the
CE
impression that elasticity should be investigated on two layers. A platform (e.g. Kubernetes) can be elastic, and a CNA being operated on a platform
535
(e.g. on Kubernetes) can be elastic as well. But most of the times, elasticity
AC
seems to be investigated on an application level only. And to the best of our knowledge we do not know any study dealing the synchronization of both
levels (PROP-2).
540
Finally, we did not identify at least one study covering security aspects of
CNA as major object of investigation. This might have to do with our search
31
ACCEPTED MANUSCRIPT
CR IP T
Table 7: Identified isolated engineering trends for CNA Trend
Rationale
Microservices
Microservices can be seen as a ”pragmatic” interpretation of SOA. In addition to SOA microservice architectures intentionally focus and
compose small and independently replaceable horizontal scalable services that are ”doing one thing well”. DevOps
DevOps is a practice that emphasizes the collaboration of software de-
velopers and IT operators. It aims to build, test, and release software
for software delivery. Softwareization
AN US
more rapidly, frequently, and more reliably using automated processes
Softwareization of infrastructure and network enables to automate the process of software delivery and infrastructure changes more rapidly.
Standardized
Deployment units wrap a piece of software in a complete filesystem
Deployment
that contains everything needed to run: code, runtime, system tools,
Units
system libraries. This guarantees that the software will always run
Elastic
Plat-
forms
M
the same, regardless of its environment.
Elastic platforms like Kubernetes, Mesos, Docker Swarm can be seen as a middleware for the execution of custom but standardized deploy-
ED
ment units. Elastic platforms extend resource sharing and increase the utilization of underlying compute, network and storage resources.
State Isolation
Stateless components are easier to scale up/down horizontally than
stateful components.
Of course, stateful components can not be
PT
avoided, but stateful components should be reduced to a minimum and realized by intentional horizontal scalable storage systems (often eventual consistent NoSQL databases). REST-based APIs provide scalable and pragmatic communication
REST APIs
means relying mainly on already existing internet infrastructure and
CE
Versioned
AC
Loose coupling
well defined and widespread standards. Service composition is done by events or by data. Event coupling relies on messaging solutions (e.g. AQMP standard). Data coupling relies often on scalable but (mostly) eventual consistent storage solutions (which are often subsumed as NoSQL databases).
32
ACCEPTED MANUSCRIPT
filters. However, we think this should be a relevant aspect for ongoing research as well (PROP-3).
CR IP T
5. Definition Proposal for CNA [RQ2] Previous Section 4 showed that there are open questions regarding CNA 545
engineering and research. Furthermore, our literature review did not turn up
a common definition that explains what a cloud-native application exactly is5 .
Nevertheless, our survery identified enough studies which can be used to derive a definition proposal for CNA because there is a common but unconscious
AN US
understanding across several relevant studies.
Fehling et al. propose that a cloud-native application should be IDEAL, so it
550
should have an [i]solated state, is [d]istributed in its nature, is [e]lastic in a horizontal scaling way, operated via an [a]utomated management system and its components should be [l]oosely coupled [6]. According to Stine [8] there
555
M
are common motivations for cloud-native application architectures like to deliver software-based solutions more quickly (speed), in a more fault isolating, fault tolerating, and automatic recovering way (safety), to enable horizontal (instead
ED
of vertical) application scaling (scale), and finally to handle a huge diversity of (mobile) platforms and legacy systems (client diversity). These common
560
PT
motivations are addressed by several application architecture and infrastructure approaches [22]:
CE
• Microservices represent the decomposition of monolithic (business) systems into independently deployable services that do ”one thing well”
AC
[65, 66].
565
• The main mode of interaction between services in a cloud-native application architecture is via published and versioned APIs (API-based collaboration). These APIs are often HTTP based and follow a REST-style
5 Except
our own contribution [54] which relies partly on this mapping study. The reader
might want to consider [54] to get a complete picture.
33
ACCEPTED MANUSCRIPT
with JSON serialization, but other protocols and serialization formats can be used as well. • Single deployment units of the architecture are designed and intercon-
CR IP T
nected according to a collection of cloud-focused patterns like the
570
twelve-factor app collection [67], the circuit breaker pattern [68] or cloud computing patterns [6, 7].
• And finally, self-service agile infrastructure platforms are used to deploy and operate these microservices via self-contained deployment units
(containers). These platforms provide additional operational capabilities
AN US
575
on top of IaaS infrastructures like automated and on-demand scaling of application instances, application health management, dynamic routing, load balancing and aggregation of logs and metrics. These aspects lead us to the following definition:
M
A cloud-native application (CNA) is a distributed, elastic and horizontal scalable system composed of (micro)services which isolates state in a
ED
minimum of stateful components. The application and each self-contained deployment unit of that application is designed according to cloud-focused
580
PT
design patterns and operated on a self-service elastic platform.
Of course this definition can only be understood in a context of further terms
CE
already defined or characterized by other authors and standardizing initiatives: • Elasticity is ”the degree to which a system is able to adapt to workload
AC
changes by provisioning and de-provisioning resources in an autonomic
585
manner, such that at each point in time the available resources match the current demand as closely as possible” and has been already defined by [69]. • Scalability can be differentiated to ”structural scalability and load scalability. Structural scalability is the ability of a system to expand in a chosen 34
ACCEPTED MANUSCRIPT
dimension 6 without major modifications to its architecture. Load scalabil590
ity is the ability of a system to perform gracefully as the offered traffic increases” [70].
CR IP T
• Microservices are understood as an architectural style to develop ”a single application as a suite of small services, each running in its own
process and communicating with lightweight mechanisms, often an HTTP 595
resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which
storage technologies” [71]. 600
AN US
may be written in different programming languages and use different data
• Self-contained Deployment Unit is understood as ”a part of the application’s deployment topology for realizing a specific technical unit” [12]. More and more often a deployment unit is understood as ”a standard
M
container. The goal of a standard container is to encapsulate a software component and all its dependencies in a format that is self-describing and portable, so that any compliant runtime can run it without extra depen-
ED
605
dencies, regardless of the underlying machine and the contents of the container”. This is the understanding of the Open Container Initiative (OCI)
PT
which is explained in the 5 principles of standard containers [72].
• Stateful components are used for ”multiple instances of a scaled-out application component [to] synchronize their internal state to provide a
CE
610
AC
unified behavior” [6].
• Elastic platform is understood as a ”middleware for the execution of custom applications, their communication, and data storage is offered via a self-service interface over a network” [6].
6 horizontally
in case of CNA
35
ACCEPTED MANUSCRIPT
615
6. Conclusion Although the first considerations on cloud-native applications originate from research, the term ”cloud-native” seems to be more and more accepted and
CR IP T
used – maybe even dominated – by software and cloud industry nowadays. We
identified interesting but isolated trends in cloud systems engineering (see Table 620
7). If several of these trends are applied in parallel resulting software systems are rated more and more often as ”cloud-native applications”. Such cloud-native
applications are not just distributed systems. They are ”very” distributed, horizontal scalable, resilient and load adaptive (elastic) systems coming along
AN US
with specific challenges.
Our critical discussion of identified research showed, that there is room and
625
need for ongoing research. We identified some promising future research directions (see Table 6) as well as open questions. Applied microservice and DevOps engineering methodologies are mainly bottom-up approaches shifting software
630
M
design autonomy to plenty of small teams. All this result in more heterogeneity of components. This is astonishing, because most engineering methodologies are used to reduce heterogeneity for a better manageability. The long term
ED
effects of these autonomous engineering approaches are hardly investigated so far. Even the existing systems are quite young and the long term effects might
PT
not be even observed.
However, our literature survey showed that there is a common but uncon-
635
scious understanding of cloud-native applications. A CNA should be build ac-
CE
cording to corresponding CNA principles (being operated on automation platforms, enabling softwareization of infrastructure and network, having migration and interoperability aspects in mind). CNA architectures are more and more often microservice based. Proposed CNA development methodologies are of-
AC 640
ten pattern-based (relying on comprehensive cloud computing pattern catalogs [6, 7]) and take DevOps principles into consideration. We could even derive a definition proposal for the term ”cloud-native application” and we explained its relationship to well established terms in the context of distributed systems.
36
ACCEPTED MANUSCRIPT
645
We think our proposal contributes to a more precise understanding of the term ”cloud-native”. Especially if this definition proposal is compared with the often heard but vacuous sentence: ”Cloud-native applications are intentionally
CR IP T
designed for the cloud.” Acknowledgements
This study was funded by German Federal Ministry of Education and Re-
650
search (Project Cloud TRANSIT, 03FH021PX4). We would like to thank our reviewers who contributed valuable and very constructive feedback. Further-
AN US
more, we thank Dr. Adersberger from QAWARE GmbH. He inspired us with
his MEKUNS approach (Mesos, Kubernetes Cloud-native Stack) and his consid655
erations about cloud-native applications from a practitioner point of view. And we thank Ren´e Peinl for his valuable contributions accompanying our research.
M
References
[1] P. Mell, T. Grance, The NIST Definition of Cloud Computing, National
ED
Institute of Standards and Technology (2011). doi:http://dx.doi.org/ 10.6028/NIST.SP.800-145.
660
[2] K. Petersen, S. Vakkalanka, L. Kuzniarz, Guidelines for conducting system-
PT
atic mapping studies in software engineering: An update, Information and Software Technology 64 (2015) 1–18. doi:http://dx.doi.org/10.1016/
CE
j.infsof.2015.03.007. 665
[3] K. Petersen, R. Feldt, S. Mujtaba, M. Mattsson, Systematic mapping stud-
AC
ies in software engineering, in: Proceedings of the 12th International Conference on Evaluation and Assessment in Software Engineering, EASE’08, British Computer Society, Swinton, UK, UK, 2008, pp. 68–77.
[4] B. Kitchenham, S. Charters, Guidelines for performing Systematic Litera-
670
ture Reviews in Software Engineering, Tech. Rep. EBSE 2007-001, Keele University and Durham University Joint Report (2007). 37
ACCEPTED MANUSCRIPT
[5] C. Wohlin, P. Runeson, P. A. da Mota Silveira Neto, E. Engstrm, I. do Carmo Machado, E. S. de Almeida, On the reliability of mapping studies in software engineering, Journal of Systems and Software 86 (10) (2013)
CR IP T
2594–2610. doi:http://dx.doi.org/10.1016/j.jss.2013.04.076.
675
[6] C. Fehling, F. Leymann, R. Retter, W. Schupeck, P. Arbitter, Cloud Computing Patterns, Springer, 2014.
[7] T. Erl, R. Cope, A. Naserpour, Cloud Computing Design Patterns, Springer, 2015.
[8] M. Stine, Migrating to Cloud-Native Application Architectures, O’Reilly,
AN US
680
2015.
[9] T. Taleb, A. Ksentini, B. Sericola, On Service Resilience in Cloud-Native 5G Mobile Systems, IEEE Journal on Selected Areas in Communications 34 (3) (2016) 483–496. doi:10.1109/JSAC.2016.2525342.
[10] A. Balalaie, A. Heydarnoori, P. Jamshidi, Advances in Service-Oriented and
M
685
Cloud Computing: Workshops of ESOCC 2015, Taormina, Italy, September
ED
15-17, 2015, Revised Selected Papers, Springer International Publishing, 2016, Ch. Migrating to Cloud-Native Architectures Using Microservices: An Experience Report, pp. 201–215. doi:10.1007/978-3-319-33313-7_ 15.
PT
690
[11] V. Andrikopoulos, C. Fehling, F. Leymann, DESIGNING FOR CAP -
CE
The Effect of Design Decisions on the CAP Properties of Cloud-native Applications, in: Proceedings of the 2nd International Conference on
AC
Cloud Computing and Services Science, 2012, pp. 365–374. doi:10.5220/
695
0003931503650374.
[12] C. Inzinger, S. Nastic, S. Sehic, M. V¨ ogler, F. Li, S. Dustdar, Madcat: A methodology for architecture and deployment of cloud application topologies, in: Service Oriented System Engineering (SOSE), 2014 IEEE 8th International Symposium on, 2014, pp. 13–22. doi:10.1109/SOSE.2014.9. 38
ACCEPTED MANUSCRIPT
700
[13] A. Balalaie, A. Heydarnoori, P. Jamshidi, Advances in Service-Oriented and Cloud Computing: Workshops of ESOCC 2015, Taormina, Italy, September 15-17, 2015, Revised Selected Papers, Springer International Publishing,
CR IP T
2016, Ch. Migrating to Cloud-Native Architectures Using Microservices: An Experience Report, pp. 201–215. doi:10.1007/978-3-319-33313-7_ 15.
705
[14] T. Goldschmidt, A. Jansen, H. Koziolek, J. Doppelhamer, H. P. Breivold,
Scalability and robustness of time-series databases for cloud-native monitoring of industrial processes, in: 2014 IEEE 7th International Conference
710
AN US
on Cloud Computing, 2014, pp. 602–609. doi:10.1109/CLOUD.2014.86.
[15] V. Andrikopoulos, S. Strauch, C. Fehling, F. Leymann, 2nd Int. Conf. on Cloud Computing and Services Science, CLOSER 2012, Springer International Publishing, 2013, Ch. CAP-Oriented Design for Cloud-Native
M
Applications, pp. 215–229. doi:10.1007/978-3-319-04519-1_14. [16] R. Peinl, F. Holzschuher, F. Pfitzer, Docker cluster management for the cloud - survey results and own solution, Journal of Grid Computing (2016)
715
ED
1–18doi:10.1007/s10723-016-9366-y. [17] S. Suneja, C. Isci, R. Koller, E. de Lara, Touchless and always-on cloud
PT
analytics as a service, IBM Journal of Research and Development 60 (2-3) (2016) 11:1–11:10. doi:10.1147/JRD.2016.2518438. [18] V. Roussev, S. McCulley, Forensic analysis of cloud-native artifacts, Dig-
CE
720
ital Investigation 16, Supplement (2016) 104–113, {DFRWS} 2016 Eu-
AC
ropeProceedings of the Third Annual {DFRWS} Europe.
doi:http:
//dx.doi.org/10.1016/j.diin.2016.01.013.
[19] V. Roussev, A. Barreto, I. Ahmed, Forensic acquisition of cloud drives,
725
CoRR (Computing Research Repository) abs/1603.06542. URL http://arxiv.org/abs/1603.06542
39
ACCEPTED MANUSCRIPT
[20] N. Nikaein, E. Schiller, R. Favraud, R. Knopp, I. Alyafawi, T. Braun, Studies in Big Data, Springer, 2016, 2016, Ch. Towards a Cloud-native Radio Access Network, pp. 171–202. [21] S. Varghese, Web Development with Go: Building Scalable Web Apps
CR IP T
730
and RESTful Services, Apress, Berkeley, CA, 2015, Ch. Building Go Web Applications on Google Cloud, pp. 251–283. 978-1-4842-1052-9_11.
doi:10.1007/
URL http://dx.doi.org/10.1007/978-1-4842-1052-9_11
[22] A. Balalaie, A. Heydarnoori, P. Jamshidi, Microservices architecture en-
AN US
735
ables devops: Migration to a cloud-native architecture, IEEE Software 33 (2016) 42–52.
[23] A. Balalaie, A. Heydarnoori, P. Jamshidi, Migrating to Cloud-native Architectures Using Microservices: An Experience Report, in: Europ. Conf. on Service-Oriented and Cloud Computing, Springer, 2015, pp. 201–215.
M
740
[24] B. Familiar, Microservices, IoT, and Azure: Leveraging DevOps and
ED
Microservice Architecture to Deliver SaaS Solutions, Apress, Berkeley, CA, 2015, Ch. Service Fabric, pp. 165–182.
doi:10.1007/
978-1-4842-1275-2_8.
URL http://dx.doi.org/10.1007/978-1-4842-1275-2_8
PT
745
[25] N. Nikaein, Processing radio access network functions in the cloud: Critical
CE
issues and modeling, in: Proceedings of the 6th International Workshop on Mobile Cloud Computing and Services, MCS ’15, ACM, New York, NY, USA, 2015, pp. 36–43. doi:10.1145/2802130.2802136.
AC
750
URL http://doi.acm.org/10.1145/2802130.2802136
[26] P. Jamshidi, C. Pahl, S. Chinenyeze, X. Liu, Service-Oriented Computing - ICSOC 2014 Workshops: WESOA; SeMaPS, RMSOC, KASA, ISC, FOR-MOVES, CCSA and Satellite Events, Paris, France, November 3-6, 2014, Revised Selected Papers, Springer International Publishing, 2015, Ch.
40
ACCEPTED MANUSCRIPT
Cloud Migration Patterns: A Multi-cloud Service Architecture Perspective,
755
pp. 6–19. doi:10.1007/978-3-319-22885-3_2. [27] A. Srinivasan, M. A. Quadir, V. Vijayakumar, Era of cloud computing: A
CR IP T
new insight to hybrid cloud, Procedia Computer Science 50 (2015) 42 – 51, big Data, Cloud and Computing Challenges. doi:http://dx.doi.org/ 10.1016/j.procs.2015.04.059.
760
[28] M. T. Krieger, O. Torreno, O. Trelles, D. Kranzlm¨ uller, Building an open
source cloud environment with auto-scaling resources for executing bioin-
AN US
formatics and biomedical workflows, Future Generation Computer Systemsdoi:http://dx.doi.org/10.1016/j.future.2016.02.008. 765
[29] A. Cockcroft, Cloud Native Cost Optimization, in: Proc. of the 6th ACM/SPEC Int. Conf. on Perf. Eng., ICPE ’15, ACM, New York, NY, USA, 2015, pp. 109–109. doi:10.1145/2668930.2693197.
M
[30] H. Sequeira, P. Carreira, T. Goldschmidt, P. Vorst, Energy Cloud: RealTime Cloud-Native Energy Management System to Monitor and Analyze Energy Consumption in Multiple Industrial Sites, in: Proceedings of the
ED
770
2014 IEEE/ACM 7th International Conference on Utility and Cloud Computing, UCC ’14, IEEE Computer Society, Washington, DC, USA, 2014,
PT
pp. 529–534. doi:10.1109/UCC.2014.79. [31] E. A. Brewer, Kubernetes and the path to cloud native, in: Proceedings of the Sixth ACM Symposium on Cloud Computing, SoCC ’15, ACM, New
CE
775
York, NY, USA, 2015, pp. 167–167. doi:10.1145/2806777.2809955.
AC
[32] W. Hasselbring, Microservices for scalability: Keynote talk abstract, in:
780
Proceedings of the 7th ACM/SPEC on International Conference on Performance Engineering, ICPE ’16, ACM, New York, NY, USA, 2016, pp. 133–134. doi:10.1145/2851553.2858659.
[33] A. S. Housfater, M. S. Aslam, D. Gupta, S. Meraji, R. Bennis, Acceleration of cloud computing, in: Proceedings of 24th Annual International Confer41
ACCEPTED MANUSCRIPT
ence on Computer Science and Software Engineering, CASCON ’14, IBM Corp., Riverton, NJ, USA, 2014, pp. 297–298. 785
[34] D. Mazmanov, C. Curescu, H. Olsson, A. Ton, J. Kempf, Handling per-
CR IP T
formance sensitive native cloud applications with distributed cloud com-
puting and sla management, in: Utility and Cloud Computing (UCC),
2013 IEEE/ACM 6th International Conference on, 2013, pp. 470–475. doi:10.1109/UCC.2013.92. 790
[35] S. Garca-Gmez, M. Escriche-Vicente, P. Arozarena-Llopis, F. Lelli,
AN US
Y. Taher, C. Momm, A. Spriestersbach, J. Vogel, A. Giessmann, F. Junker,
M. Jimnez-Ga’n, J. Biro, G. L. Jeune, M. Dao, S. P. Carrie, J. Niemoller, D. Mazmanov, 4caast:
Comprehensive management of cloud services
through a paas, in: 2012 IEEE 10th International Symposium on Parallel and Distributed Processing with Applications, 2012, pp. 494–499.
795
M
doi:10.1109/ISPA.2012.72.
[36] V. Mateljan, D. Cisic, D. Ogrizovic, Cloud database-as-a-service (daas) roi, in: MIPRO, 2010 Proceedings of the 33rd International Convention,
800
ED
2010, pp. 1185–1188.
[37] D. Moldovan, G. Copil, H.-L. Truong, S. Dustdar, Service-Oriented and
PT
Cloud Computing: Third European Conference, ESOCC 2014, Manchester, UK, September 2-4, 2014. Proceedings, Springer Berlin Heidelberg, Berlin, Heidelberg, 2014, Ch. QUELLE – A Framework for Accel-
CE
erating the Development of Elastic Systems, pp. 93–107. doi:10.1007/ 978-3-662-44879-3_7.
805
AC
[38] K. J. Hole, Anti-fragile ICT Systems, Springer International Publishing, 2016, Ch. Toward an Anti-fragile e-Government System, pp. 57–65. doi: 10.1007/978-3-319-30070-2_6.
´ Foghl´ [39] M. Serrano, L. Shi, M. O. u, W. Donnelly, Knowledge Discovery, 810
Knowledge Engineering and Knowledge Management: Third International
42
ACCEPTED MANUSCRIPT
Joint Conference, IC3K 2011, Paris, France, October 26-29, 2011. Revised Selected Papers, Springer Berlin Heidelberg, Berlin, Heidelberg, 2013, Ch. Cloud Services Composition Support by Using Semantic Annotation and
815
CR IP T
Linked Data, pp. 278–293. doi:10.1007/978-3-642-37186-8_18. [40] M. Missbach, T. Staerk, C. Gardiner, J. McCloud, R. Madl, M. Tempes, G. Anderson, SAP on the Cloud, Springer Berlin Heidelberg, Berlin,
Heidelberg, 2016, Ch. The Hybrid Cloud, pp. 153–164. doi:10.1007/ 978-3-662-47418-1_7.
AN US
[41] L. O. Colombo-Mendoza, G. Alor-Hern´ andez, A. Rodr´ıguez-gonz´ alez, R. Valencia-garc´ıa, Mobicloup!: a paas for cloud services-based mobile
820
applications, Automated Software Engineering 21 (3) (2014) 391–437. doi:10.1007/s10515-014-0143-5.
[42] M. Ben Belgacem, H. Hafsi, N. Abdennadher, Grid and Pervasive Comput-
M
ing: 8th International Conference, GPC 2013 and Colocated Workshops, Seoul, Korea, May 9-11, 2013. Proceedings, Springer Berlin Heidelberg,
825
Berlin, Heidelberg, 2013, Ch. A Hybrid Grid/Cloud Distributed Platform:
ED
A Case Study, pp. 162–169. doi:10.1007/978-3-642-38027-3_17. [43] A. Mann, G. Watt, P. Matthews, The Innovative CIO: How IT Leaders Can
PT
Drive Business Transformation, Apress, Berkeley, CA, 2013, Ch. Opportunities to Innovate Today, pp. 103–125. doi:10.1007/978-1-4302-4411-0_
830
CE
6.
[44] J. Opara-Martins, R. Sahandi, F. Tian, Critical analysis of vendor lock-
AC
in and its impact on cloud computing migration: a business perspec-
835
tive, Journal of Cloud Computing 5 (1) (2016) 1–18.
doi:10.1186/
s13677-016-0054-z.
[45] M. Vasconcelos, N. C. Mendon¸ca, P. H. M. Maia, Service Oriented and Cloud Computing: 4th European Conference, ESOCC 2015, Taormina,
43
ACCEPTED MANUSCRIPT
Italy, September 15-17, 2015, Proceedings, Springer International Publishing, Cham, 2015, Ch. Cloud Detours: A Non-intrusive Approach for Automatic Software Adaptation to the Cloud, pp. 181–195. doi:10.1007/
840
CR IP T
978-3-319-24072-5_13. [46] Z. Wang, Z. Lu, J. Wu, K. Fan, Advances in Services Computing: 9th Asia-Pacific Services Computing Conference, APSCC 2015, Bangkok, Thai-
land, December 7-9, 2015, Proceedings, Springer International Publishing, Cham, 2015, Ch. CPFirewall: A Novel Parallel Firewall Scheme
845
978-3-319-26979-5_9.
doi:10.1007/
AN US
for FWaaS in the Cloud Environment, pp. 121–136.
[47] D. Petcu, A. V. Vasilakos, Portability in clouds: approaches and research opportunities, Scalable Computing: Practice and Experience 15. 850
[48] S. Brunner, M. Bl¨ ochlinger, G. Toffetti, J. Spillner, T. M. Bohnert,
M
Experimental evaluation of the cloud-native application design, in: 8th IEEE/ACM International Conference on Utility and Cloud Computing, UCC 2015, Limassol, Cyprus, December 7-10, 2015, 2015, pp. 488–493.
855
ED
doi:10.1109/UCC.2015.87. [49] J. Wettinger, K. G¨ orlach, F. Leymann, Deployment aggregates - a generic
PT
deployment automation approach for applications operated in the cloud, in: Proceedings of the 18th International Enterprise Distributed Object Computing Conference Workshops and Demonstrations, IEEE Computer
CE
Society, 2014, pp. 173–180.
[50] I. Baldini, P. Castro, P. Cheng, S. Fink, V. Ishakian, N. Mitchell,
AC
860
865
V. Muthusamy, R. Rabbah, P. Suter, Cloud-native, Event-based Programming for Mobile Applications, in: Proceedings of the International Conf. on Mobile Software Engineering and Systems, MOBILESoft ’16, ACM, New York, NY, USA, 2016, pp. 287–288. doi:10.1145/2897073.2897713.
[51] S. Dutta, T. Taleb, A. Ksentini, QoE-aware elasticity support in cloud-
44
ACCEPTED MANUSCRIPT
native 5G systems, in: 2016 IEEE Int. Conf. on Communications (ICC), 2016, pp. 1–6. doi:10.1109/ICC.2016.7511377. [52] F. Leymann, C. Fehling, S. Wagner, J. Wettinger, Native Cloud Appli-
CR IP T
cations: Why Virtual Machines, Images and Containers Miss the Point!,
in: Proc. of the 6th Int. Conf. on Cloud Computing and Service Science
870
(CLOSER 2016), SciTePress, 2016, pp. 7– 15.
[53] N. Kratzke, P.-C. Quint, D. Palme, D. Reimers, Project Cloud TRANSIT - Or to Simplify Cloud-native Application Provisioning for SMEs by Inte-
AN US
grating Already Available Container Technologies, in: V. Kantere, B. Koch (Eds.), European Project Space on Smart Systems, Big Data, Future In-
875
ternet - Towards Serving the Grand Societal Challenges, SCITEPRESS, 2016, in print.
[54] N. Kratzke, R. Peinl, ClouNS - A Cloud-Native Application Reference
M
Model for Enterprise Architects, in: 2016 IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW), 2016, pp.
880
ED
1–10. doi:10.1109/EDOCW.2016.7584353. [55] P. Bourque, R. E. Fairley (Eds.), SWEBOK: Guide to the Software Engineering Body of Knowledge, version 3.0 Edition, IEEE Computer Society,
PT
Los Alamitos, CA, 2014.
URL http://www.swebok.org/
885
CE
[56] E. Brewer, CAP twelve years later: How the ”rules” have changed, Computer 45 (2) (2012) 23–29. doi:10.1109/MC.2012.37.
AC
[57] R. Wieringa, N. Maiden, N. Mead, C. Rolland, Requirements engineering
890
paper classification and evaluation criteria: A proposal and a discussion, Requir. Eng. 11 (1) (2005) 102–107. doi:10.1007/s00766-005-0021-6.
[58] A. Fox, S. D. Gribble, Y. Chawathe, E. A. Brewer, P. Gauthier, Clusterbased Scalable Network Services, SIGOPS Oper. Syst. Rev. 31 (5) (1997) 78–91. doi:10.1145/269005.266662. 45
ACCEPTED MANUSCRIPT
[59] A. Fox, E. A. Brewer, Harvest, Yield, and Scalable Tolerant Systems, in: Proc. of the The 7th Workshop on Hot Topics in Operating Systems (HO-
895
TOS99), IEEE Computer Society, Washington, DC, USA, 1999, pp. 174–
CR IP T
179. [60] E. A. Brewer, Towards Robust Distributed Systems (Keynote), in: Proc. of the 19th Annual ACM Symp. on Princ. of Dist. Comp. (PODC ’00), ACM, New York, NY, USA, 2000, p. 7. doi:10.1145/343477.343502.
900
[61] S. Garcia-Gomez, M. Jimenez-Ganan, Y. Taher, C. Momm, F. Junker,
AN US
J. Biro, A. Menychtas, V. Andrikopoulos, S. Strauch, Challenges for the
Comprehensive Management of Cloud Services in a PaaS Framework, Scalable Computing: Practice and Experience (SCPE) 13 (3) (2012) 201–213. 905
[62] C. Pahl, P. Jamshidi, Microservices: A systematic mapping study, in: Proceedings of the 6th International Conference on Cloud Computing and Ser-
M
vices Science, 2016, pp. 137–146. doi:10.5220/0005785501370146. [63] A. Balalaie, A. Heydarnoori, P. Jamshidi, Microservices Architecture En-
ED
ables DevOps Migration to a Cloud-Native Architecture, IEEE SOFTWARE 33 (3) (2016) 42–52.
910
[64] Conway, Melvin E., How do Committees Invent?, Datamation 14 (5) (1968)
PT
28–31.
CE
[65] S. Newman, Building Microservices, O’Reilly Media, Incorporated, 2015. [66] D. Namiot, M. Sneps-Sneppe, On micro-services architecture, Int. Journal of Open Information Technologies 2 (9).
AC
915
[67] Adam Wiggins, The Twelve-Factor App, last access 2016-02-14 (2014). URL http://12factor.net/
[68] Martin Fowler, Circuit Breaker, last access 2016-05-27 (2014). URL http://martinfowler.com/bliki/CircuitBreaker.html
46
ACCEPTED MANUSCRIPT
920
[69] N. R. Herbst, S. Kounev, R. Reussner, Elasticity in cloud computing: What it is, and what it is not, in: Proceedings of the 10th International Conference on Autonomic Computing (ICAC 13), USENIX, San Jose, CA, 2013,
CR IP T
pp. 23–27. [70] A. B. Bondi, Characteristics of scalability and their impact on performance,
in: Proceedings of the 2nd International Workshop on Software and Per-
925
formance, WOSP ’00, ACM, New York, NY, USA, 2000, pp. 195–203. doi:10.1145/350391.350432.
last access 2016-05-27 (2014).
AN US
[71] Martin Fowler, Microservices - A Definition of this new Architectural Term,
URL http://martinfowler.com/articles/microservices.html
930
[72] Open Container Initiative, Open Container Runtime Specification, last access 2016-05-27 (2015).
M
URL https://github.com/opencontainers/runtime-spec
Appendix A. Unification of keywords
AC
CE
PT
935
ED
Appendices (Just for review, not intended for final publication)
47
applications,
engineering, Go,
Google Cloud platform,
Cloud-native
applications
development
bioinformatics,
biomedicine,
workflows, cloud
SaaS, Galaxy,
ED
computing, IaaS,PaaS,
PT
auto-scaling, GridFTP,
data transfer
[34]
Internet of Things,
x
x
x
CE
cloud SLA
management, cloud
AC
orchestration,
distributed cloud
computing, public
safety, service level
agreements, utility
demand response
48
x
x
Cloud costs (2)
Cloud artifacts (2)
Use Cases (15)
SLA for CNA (2)
x
Cloud Forensics (2)
CAP Properties (2)
Other
CNA Properties Elasticity (7)
Resilience (8)
DevOps (3)
Scalability (8)
x
M
[28]
Design Methodology (6)
AN US
application
Patterns (8)
CNA Methods
x
Deployment Unit (8)
Service Composition (7)
Microservices (11)
x
CNA Design (11)
x
Interoperability (8)
x
Softwarization (8)
x
Migration (8)
(*) Scalable
CR IP T
[21]
Keywords by Authors
Automation Platform (12)
Paper
CNA Principles
CNA Architecture
ACCEPTED MANUSCRIPT
Container
x
x
deployment, service
management,
x
x
x
x
x
x
x
x
construction, service
composition, cloud
[20]
(*) Microservice
x
PT
architecture,
ED
platform, container
application containers,
elastic scale, fault
CE
tolerance, automation
[24]
(*) Microservice
x
AC
architecture,
application containers,
elastic scale, fault
tolerance, automation
49
Cloud costs (2)
Other
x
x
M
application
x
Cloud artifacts (2)
Use Cases (15)
SLA for CNA (2)
Elasticity (7)
x
AN US
integration, Docker,
Cloud Forensics (2)
CAP Properties (2)
Resilience (8)
x
DevOps (3)
x
Patterns (8)
x
Microservices, System
(*) Kubernetes, service
Scalability (8)
x
CR IP T
x
Management tools,
[31]
CNA Properties
CNA Methods Deployment Unit (8)
x
Design Methodology (6)
Service Composition (7)
CNA Design (11)
Interoperability (8)
Softwarization (8)
x
Migration (8)
Cloud computing,
Microservices (11)
[16]
Keywords by Authors
Automation Platform (12)
Paper
CNA Principles
CNA Architecture
ACCEPTED MANUSCRIPT
native, microservices,
development,
resilience, elasticity,
scalability,
self-management
[35]
Cloud, Platform as a
x
Automation, Cloud
x
Cloud costs (2)
Cloud artifacts (2)
Use Cases (15)
Elasticity (7)
SLA for CNA (2)
Resilience (8)
DevOps (3)
Cloud Forensics (2)
Other
CNA Properties CAP Properties (2)
Design Methodology (6)
x
M
[17]
x
x
Service, Service
Composition
x
AN US
cloud computing, cloud
Scalability (8)
x
Patterns (8)
CNA Methods
x
Deployment Unit (8)
Service Composition (7)
Microservices (11)
CNA Design (11)
Interoperability (8)
Softwarization (8)
x
Migration (8)
Monitoring, cloud
CR IP T
[48]
Keywords by Authors
Automation Platform (12)
Paper
CNA Principles
CNA Architecture
ACCEPTED MANUSCRIPT
x
modeling, Data
PT
mining, Data
ED
computing, Context
structures, Runtime,
Virtual machine
CE
monitoring, Virtual
machine monitors
AC
[29]
autoscaling, aws, cloud
x
x
native, consolidated
billing, cost
optimization, netflix,
reservations
50
x
x
Internet Applications,
Web 2.0 services
x
x
x
Microservices,
Cloud-native
modernization
Cloud migration,
x
x
x
x
x
ED
Cloud architecture,
x
M
architectures, Software
[26]
Migration pattern,
[44]
PT
Multi-cloud
Cloud computing,
x
x
x
Vendor lock-in,
CE
Enterprise migration,
Cloud adoption, Cloud
API’s, Interoperability,
AC
Portability, Standards,
DevOps
51
Cloud costs (2)
Other Cloud artifacts (2)
Use Cases (15)
SLA for CNA (2)
Cloud Forensics (2)
CAP Properties (2)
Elasticity (7)
Resilience (8)
Scalability (8)
DevOps (3)
AN US
as a Service, Rich
Cloud migration,
CNA Properties
CNA Methods
x
Computing, Platform
[13]
Design Methodology (6)
Patterns (8)
Deployment Unit (8)
Service Composition (7)
Microservices (11)
CNA Design (11)
Interoperability (8)
Softwarization (8)
x
Migration (8)
Mobile Cloud
CR IP T
[41]
Keywords by Authors
Automation Platform (12)
Paper
CNA Principles
CNA Architecture
ACCEPTED MANUSCRIPT
AC service, software
development, software
engineering
[22]
ED
(*) Microservices, CNA
Cloud-native
architecture
DevOps, architectural
(*) Cloud-native
x
refactoring, cloud
computing,
microservices,
migration pattern,
mobile backend as a
x
Microservices (11) Service Composition (7) Deployment Unit (8) Patterns (8) Design Methodology (6)
Interoperability (8)
Softwarization (8)
Migration (8)
CNA Design (11)
x x x x x x x
Design, Recipes,
Migration,
x
x
architecture,
Microservices, Service
Decomposition,
Situational Method
Engineering (SME),
Migration, Pattern
52 x x
x
x
x
Cloud costs (2)
Cloud artifacts (2)
Cloud Forensics (2)
Use Cases (15)
SLA for CNA (2)
CAP Properties (2)
Elasticity (7)
Resilience (8)
Scalability (8)
DevOps (3)
CR IP T
AN US
[8] Automation Platform (12)
Paper Keywords by Authors
M
[10]
PT
CE
Other
CNA Properties
CNA Methods
CNA Architecture
CNA Principles
ACCEPTED MANUSCRIPT
AC PT
CE [49]
[33] (*) cloud native
programming
Deployment,
x
aggregate, topology,
provisioning, operation,
unification,
orchestration,
transformation,
meta-model, Cloud
x x
code transformation,
aspect-oriented
computing, DevOps
x
x
requirements, software
defined networking,
software defined
environments
53
Design Methodology (6)
Patterns (8)
Deployment Unit (8)
Service Composition (7)
Microservices (11)
CNA Design (11)
Interoperability (8)
Softwarization (8)
x
Cloud costs (2)
Cloud artifacts (2)
Cloud Forensics (2)
Use Cases (15)
SLA for CNA (2)
CAP Properties (2)
Elasticity (7)
Resilience (8)
Scalability (8)
DevOps (3)
CR IP T
AN US
(*) cloud migration, Migration (8)
Automation Platform (12)
Keywords by Authors
M
[45]
ED
Paper
Other
CNA Properties
CNA Methods
CNA Architecture
CNA Principles
ACCEPTED MANUSCRIPT
AC PT
CE 5G, Markov process,
virtualization (NFV),
network softwarization,
network virtualization,
resilience, social
network
[37]
[46] BBU, LTE, cloud
computing, cloud-ran,
open air interface,
RANnaaS,
Virtualization
cloud service,
Cloud computing,
x
x x
carrier, cloud, cloud
network function
x
software-defined,
elasticity capability,
elasticity quantification
x
FWaaS, Parallel
firewall, NFV
54
Design Methodology (6)
Patterns (8)
Deployment Unit (8)
Service Composition (7)
Microservices (11)
CNA Design (11)
Interoperability (8)
Softwarization (8)
Migration (8)
x
x
x
Cloud costs (2)
Cloud artifacts (2)
Cloud Forensics (2)
Use Cases (15)
SLA for CNA (2)
CAP Properties (2)
Elasticity (7)
Resilience (8)
Scalability (8)
DevOps (3)
CR IP T
AN US
[9] Automation Platform (12)
Keywords by Authors
M
[25]
ED
Paper
Other
CNA Properties
CNA Methods
CNA Architecture
CNA Principles
ACCEPTED MANUSCRIPT
AC [27]
Drive, models
[40]
[42]
[47] (*) hybrid cloud,
workload movement,
ED
Computing, Service
Composition,
Elasticity,
Multi-tenancy, Linked
Data, Knowledge
Management
SkyDrive, hybrid,
DropBox, Google
distributed
Cloud computing,
Information Modelling,
x x
Semantic Annotation,
Interoperability, Cloud
x
x
computation, grid
computing, cloud
computing, MetaPIGA
x
Portability,
Multi-Clouds
55
x
Design Methodology (6)
Patterns (8)
Deployment Unit (8)
Service Composition (7)
Microservices (11)
CNA Design (11)
Interoperability (8)
Softwarization (8)
Migration (8)
Automation Platform (12)
x
x
x x
x
x
SLA
x
Cloud costs (2)
Cloud artifacts (2)
Cloud Forensics (2)
Use Cases (15)
SLA for CNA (2)
CAP Properties (2)
Elasticity (7)
Resilience (8)
Scalability (8)
DevOps (3)
CR IP T
AN US
Paper Keywords by Authors
M
[39]
PT
CE
Other
CNA Properties
CNA Methods
CNA Architecture
CNA Principles
ACCEPTED MANUSCRIPT
design methodology,
cloud architectural
pattern, CAP
properties
(*) Patterns, CNA
ED
[7]
x
x
x
x
x
x
x
x
[11]
PT
architecture
CAP Theorem, Cloud
Patterns, Cloud-native
CE
Applications Design
[12]
cloud computing,
x
x
AC
cloud-native
applications, software
development,
methodology
56
x
Cloud costs (2)
Use Cases (15)
Cloud artifacts (2)
Other
x
SLA for CNA (2)
Elasticity (7)
Resilience (8)
Scalability (8)
DevOps (3)
Design, Cloud-native
Cloud Forensics (2)
CAP Properties (2)
x
M
(*) Patterns, CNA
architecture
x
AN US
(*) CAP theorem,
Design, Cloud-native
CR IP T
anti-fragility
[6]
CNA Properties
CNA Methods
x
microservices,
[15]
Design Methodology (6)
Patterns (8)
x
Deployment Unit (8)
Microservices (11)
x
Service Composition (7)
CNA Design (11)
Interoperability (8)
(*) weakly connected,
Softwarization (8)
[38]
Migration (8)
Keywords by Authors
Automation Platform (12)
Paper
CNA Principles
CNA Architecture
ACCEPTED MANUSCRIPT
web-scale, patterns,
microservices
x
(*) microservices,
monitoring, scalability
[14]
linear scalability,
resiliency, read/write
independence, support
[36]
(*) ROI, DBaaS,
x
x
x
x
outsourcing, decision
[30]
PT
making
x
Energy efficiency, big
data, cloud computing,
CE
energy management
systems
AC
[43]
[18]
Cloud costs (2)
Cloud artifacts (2)
Use Cases (15)
SLA for CNA (2)
Elasticity (7)
Resilience (8)
Scalability (8)
DevOps (3)
Cloud Forensics (2)
Other
CNA Properties CAP Properties (2)
Design Methodology (6)
Patterns (8)
Deployment Unit (8)
CNA Methods
x
x
ED
independence
x
M
for industrial
workloads, workload
x
AN US
[32]
Service Composition (7)
Microservices (11)
CNA Design (11)
Interoperability (8)
Softwarization (8)
Migration (8)
x
(*) anti-fragility,
CR IP T
[? ]
Keywords by Authors
Automation Platform (12)
Paper
CNA Principles
CNA Architecture
ACCEPTED MANUSCRIPT
x
Innovation, Business
x
Cloud forensics,
Cloud-native artifacts,
Google docs format,
Reverse engineering,
kumodd, kumodocs
57
x
AC Paper
PT
CE Research
ED
[28]
Validation
x
[20]
Validation
x
[41]
Validation
x
[45]
Validation
[25]
Validation
[19]
Validation x
x
x
x
x
58 x
x
x
x x
x
x
x
x
CNA Properties
x
x Cloud costs (2)
Cloud artifacts (2)
Approach Cloud Forensics (2)
Use Cases (14)
SLA for CNA (2)
CAP Properties (2)
CNA Methods
Elasticity (5)
Cloud artifacts (2)
x x
Appendix B. Mapping of keywords to research approaches
Other
Cloud costs (2)
Cloud Forensics (2)
Use Cases (15)
SLA for CNA (2)
CAP Properties (2)
Elasticity (7)
Resilience (8)
Scalability (8)
DevOps (3)
Design Methodology (6)
Patterns (8)
Deployment Unit (8)
Service Composition (7)
Microservices (11)
CNA Design (11)
Interoperability (8)
Softwarization (8)
Migration (8)
CR IP T
kumodd, API-based
Resilience (7)
storage forensics,
Scalability (8)
DevOps (3)
CNA Architecture
Design Methodology (6)
CNA Principles
Patterns (7)
Box
AN US
Dropbox, OneDrive,
Deployment Unit (4)
Google Drive,
Service Composition (7)
M
evidence acquisition,
Microservices (10)
CNA Design (12)
Interoperability (8)
Cloud forensics, cloud Automation Platform (12)
[19]
Softwarization (8)
Keywords by Authors
Migration (10)
Automation Platform (12)
Paper
Other
CNA Properties
CNA Methods
CNA Architecture
CNA Principles
ACCEPTED MANUSCRIPT
ACCEPTED MANUSCRIPT
[36]
Evaluation
[21]
Solution
x
x
[28]
Solution
x
x
[34]
Solution
x
[16]
Solution
x
[20]
Solution
x
[24]
Solution
x
[35]
Solution
[17]
Solution
[41]
Solution
AC
x
x
x
x
x
AN US
x
x
x
x
x
x
x
M
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
ED
x
x
x
x
x
x
x
Solution
x
Solution
x
CE
[45]
x
PT
[8]
x
x
x
x
x
x
x
[22]
Solution
x
[49]
Solution
x
[9]
Solution
x
[25]
Solution
x
[37]
Solution
x
[46]
Solution
x
[39]
Solution
x
[15]
Solution
x
x
x
x
x
x
x
x
x
Cloud costs (2)
Evaluation
Cloud artifacts (2)
[26]
Cloud Forensics (2)
Evaluation
x
Use Cases (14)
[14]
x
x
SLA for CNA (2)
Evaluation
x
CAP Properties (2)
[9]
x
Elasticity (5)
x
Resilience (7)
x
Other
CR IP T
Evaluation
Approach
CNA Properties
Scalability (8)
[48]
DevOps (3)
x
Design Methodology (6)
x
Patterns (7)
x
CNA Design (12)
x
Interoperability (8)
Evaluation
Research
Softwarization (8)
[16]
Paper
Migration (10)
Deployment Unit (4)
CNA Methods
Service Composition (7)
CNA Architecture
Microservices (10)
Automation Platform (12)
CNA Principles
x
x
x
x
59
x
x
x
x
ACCEPTED MANUSCRIPT
x
x
[11]
Solution
x
x
[12]
Solution
x
[30]
Solution
[18]
Solution
[19]
Solution
[16]
Survey
[26]
Survey
x
x
[44]
Survey
x
x
[33]
Survey
[27]
Survey
[47]
Survey
[43]
Survey
[31]
Opinion
[29]
Opinion
AC
x
x
x
x
Cloud costs (2)
Use Cases (14)
SLA for CNA (2)
CAP Properties (2)
Elasticity (5)
Resilience (7)
AN US
x
x
x
x
x
x
x
x
M
x
x
x
ED
x
x
x
x
x
x
Opinion
x
x
x
x
x
Opinion
CE
[32]
x
x
x
PT
[33]
x
Cloud artifacts (2)
Solution
Cloud Forensics (2)
[7]
Other
CR IP T
Approach
CNA Properties
Scalability (8)
DevOps (3)
Design Methodology (6)
Patterns (7)
CNA Methods
Deployment Unit (4)
Service Composition (7)
Microservices (10)
CNA Design (12)
CNA Architecture
Interoperability (8)
Softwarization (8)
Research
Migration (10)
Paper
Automation Platform (12)
CNA Principles
x
[43]
Opinion
[28]
Experience
x
[29]
Experience
x
[13]
Experience
x
[26]
Experience
x
[8]
Experience
x
x
x
[10]
Experience
x
x
x
[22]
Experience
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
60
x
x
x
x
x
x
x
x
AC PT
CE ED
[39] Experience x
[40] Experience x
[42] Experience x
[38] Experience x
[6] Experience x
[7] Experience x
[? ] Experience
[14] Experience
[43] Experience
[18] Experience x
61
x
x x
x
x
x
x
x
x
x
x
x
x
x
x
CNA Properties
x x
Cloud costs (2)
Cloud artifacts (2)
x
Cloud Forensics (2)
Use Cases (14)
SLA for CNA (2)
CAP Properties (2)
Elasticity (5)
CNA Methods
Resilience (7)
Scalability (8)
CR IP T
Approach DevOps (3)
Design Methodology (6)
CNA Architecture
Patterns (7)
Deployment Unit (4)
Service Composition (7)
Microservices (10)
CNA Design (12)
Interoperability (8)
Softwarization (8)
Migration (10)
CNA Principles
AN US
Research
M
Paper Automation Platform (12)
ACCEPTED MANUSCRIPT
Other
ACCEPTED MANUSCRIPT
Nane Kratzke is Professor for Computer Science and Business Informa940
tion Systems at Lbeck University of Applied Sciences (Germany) and head of the cloud computing research group at the Center of Excellence for Commu-
CR IP T
nication, Systems and Applications (CoSA). His main research is about cloud computing, cloud-native applications and elastic container platforms. In his former industrial career he executed functions as enterprise architect for mission 945
critical information systems and functions as project-leader, software-architect and software engineer for military distributed real-time systems.
Peter-Christian Quint is research assistant for the cloud computing re-
AN US
search group at the Center of Excellence for Communication, Systems and Ap-
plications (CoSA, Lbeck University of Applied Sciences, Germany). His main 950
research is about pragmatic cloud adaption focusing small and medium sized enterprises. He investigates tools and techniques to optimize the integration of large scale distributed and cloud-deployed systems. In his former industrial
AC
CE
PT
ED
M
career he was a software and quality engineer for medical information systems.
62