ArticlePDF Available

The Monolith Strikes Back: Why Istio Migrated From Microservices to a Monolithic Architecture

Authors:

Abstract

Early evidence on the gains and pains of microservices has started to emerge in academic publications and industry forums. However, there are still relatively few industrial reports on microservice projects in which the pains outweigh the gains. This article reports on the design decisions, tradeoffs, and lessons learned from one such project---the Istio open-source service mesh---that adopted microservices early on and recently migrated to a monolithic architecture.
Editor: Cesare Pautasso
University of Luga no
c.pautasso@ieee.org
Editor: Olaf Zimmermann
Univer sity of App lied Scie nces
of Eas tern Swi tzerla nd, Rappe rswil
olaf.zimmermann@ost.ch
INSIGHTS
SEPTEMBER/OCTOBER 2021 | IEEE SOFTWARE 17
MICROSER VICES HAVE BECOME
an essential architectural enabler in
cloud-based software development and
delivery.1 Many organizations, from
large tech companies (e.g., Google,
Amazon, Netflix) to small start-ups,
have adopted microservices as a best
practice.2 This has served them well in
some cases and, as you will see here,
not so well in others.
Briefly, microservices constitute a
service-oriented architectural style in
which server-side applications are con-
structed by combining many single-
purpose, low-footprint distributed
services.3 This significantly impacts
the application’s agility because each
microservice becomes an independent
unit of development, deployment, ver-
sioning, scaling, and management.1 The
other touted benefits of microservices
include reduced testing effort, better
functional composition, environmen-
tal isolation, and development team
autonomy.4 The opposite is a more
monolithic architecture, where several
discrete functions are composed into a
single unit that is tested, deployed, and
scaled as a whole.
Despite their benefits, the adoption
of microservices poses several techni-
cal and organizational challenges, for
example, high operational complexity,
increased technological diversity, and
the need for better coordination among
teams.1,3,4 Early evidence on the practi-
cal gains and pains of microservices have
started to emerge in academic publica-
tions5–7 and industry forums.8 However,
there are still relatively few industrial re-
ports on microservice projects in which
the pains are assessed to outweigh the
The Monolith Strikes
Back: Why Istio Migrated
From Microservices to a
Monolithic Architecture
Nabor C. Mendonça, Craig Box, Costin Manolache, and Louis Ryan
This work is licensed under a Creative Commons Attribution 4.0
License. For more information, see https://creativecommons.org/
licenses/by/4.0/deed.ast.
Digit al Object Ide ntifie r 10.1109/M S.2021. 3080335
Date of c urren t version : 20 August 2 021
From the Editors
To break or not to break the monolith? This question of modularity is often answered
positively by microservice architects. In this issue’s “Insights” department, authors ar-
gue why the latest version of the popular Istio middleware—which provides the fabric
of many contemporary microservice architectures—has not been released as a set
of independently deployable components, but as a single unit that is tested, deployed,
and scaled as a whole. We learn that modularity affects the entire software lifecycle:
it is not only a development and maintenance concern but also a deployment-time
decision. The operator experience matters, just like user experience and developer
experience.
Cesare Pautasso and Olaf Zimmermann
INSIGHTS
18 IEEE SOFTWARE | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFT WARE
gains.9,10 In these situations, project de-
velopers may have to face the nontrivial
decision of abandoning microservices in
favor of a monolithic architecture.
This article reports on the de-
sign decisions, tradeoffs, and lessons
learned from one of those projects
the Istio open source service mesh.11
Istio adopted a microservice archi-
tecture in its control plane early on.
However, less than three years a fter
Istio was first released, the con-
trol plane microservices were con-
solidated into a monolith. You can
find more information on Istio’s
microservices-to-monolith journey in
the project’s online blog.12
Istio
Istio was released to the public in 2017
as a collaboration among Google, IBM,
and Lyft. The system provides a uni-
form way to connect, secure, manage,
and monitor cloud-native applications
deployed in Kubernetes, an open source
container orchestration platform that
has become the de facto standard for
managing containerized applications.13
Istio is logically split into a data plane
and a control plane from an architec-
tural perspective, similar to other ser-
vice mesh solutions.14 The data plane
is composed of a set of Envoy proxies15
deployed as application service sidecars.
These proxies mediate and control all
network communication between ap-
plication containers. They also collect
and report telemetry on all mesh traf-
fic. The control plane, in turn, manages
and configures the data plane proxies
to monitor and route application traffic
according to user-provided traffic man-
agement rules. A monitoring back end
running systems such as Prometheus,16
a metrics server, and Jaeger,17 a distrib-
uted tracer, is also typically deployed
alongside the control plane to col-
lect and store a variety of mesh- and
application-specific metrics (e.g., latency
and error rate per service).
Istio’s original control plane ar-
chitecture was composed of five in-
dependently deployable microservices
[see Figure 1(a)]:
Pilot—the core data plane con-
figuration service, which provides
service discovery for the Envoy
proxies, traffic management
capabilities for intelligent routing
(e.g., A/B tests, canary rollouts,
etc.), and resiliency (timeouts,
retries, circuit breakers, etc.)
• Citadel—service respon-
sible for enforcing strong
service-to-service and end-user
authentication with built-in iden-
tity and credential management
Galley—service responsible for
configuration validation, ingestion,
processing, and distribution of
configuration to the other services
FIGURE 1. The architectural evolution of Istio’s control plane: (a) microservices and (b) monolith.
INSIGHTS
SEPTEMBER/OCTOBER 2021 | IEEE SOFTWARE
19
Injector—service responsible
for auto-injecting the data plane
proxies in the application con-
tainers and setting up bootstrap
Mixer—service responsible for en-
forcing access control and usage
policies across the service mesh; it
also collects telemetry data from
the Envoy proxies and other ser-
vices and reports this data to the
monitoring back end.
Microservice Burdens
The Istio team thought microservices
were the right architectural approach
from the very beginning, as many of
the authors had developed and oper-
ated a similar system within Google
and ported what they knew. Thus, they
initially built the control plane as a set
of microservices, like a modern, cloud-
native application. As Istio adoption
increased and the team got feedback
from customers, they realized that
many of the benefits typically associ-
ated with microservices, that is, inde-
pendent rollout, independent scale, and
security isolation, did not apply to the
Istio control plane. In most Istio instal-
lations, all control plane components
are installed and operated by a single
team or individual. This means that
most Istio components are not deliv-
ered and managed independently from
one another. Consequently, Istio opera-
tors were paying the price of the greater
operational complexity inherent to a
microservice architecture without ben-
efiting from it. While the teams oper-
ating Istio may have the skills to offset
these challenges, they did not perceive
any value in performing that work.
From Microservices
toaMonolith
Once the team established that many
of the expected benefits of microser-
vices did not apply to the Istio con-
trol plane, they decided to consolidate
them into a single binary: istiod [see
Figure 1(b)]. This unified service com-
bines the use cases of Pilot, Citadel,
Galley, and Injector. The Mixer com-
ponent was removed in a concurrent
project. The Envoy proxies now di-
rectly enforce policy and report telem-
etry to the monitoring back end, which
had previously been performed using
the Mixer as a central intermediary.
The motivation for this change was
similar to that of istiod in that a design
pattern identified as necessary at mas-
sive operational scale was not justified
against the maintenance and perfor-
mance overheads for typical users.
Compared to Istio’s previous mi -
croservice architecture, this new
monolithic control plane offers several
benefits. Here are some examples. First,
installation is simplified, as fewer Ku-
bernetes deployments and associated
configurations are required. Second,
configuration becomes more straight-
forward, as many of the configuration
options that Istio had before were
ways to orchestrate the control plane
services and therefore are no longer
needed. Third, debugging becomes
less of a burden, as having fewer ser-
vices means less cross-service envi-
ronmental debugging. Scalability is
also simplified, as there is now only
one service to scale. Finally, the time
to start, upgrade, and remove Istio
goes down, as these no longer require
a complicated dance of version de-
pendencies and start-up orders.
Monolith Tradeoffs
Generally, when a team adopts microser-
vices and their inherent complexity, they
look for improvements in other areas
to justify the tradeoffs. After looking at
the Istio control plane through that lens,
the team concluded that the value of mi-
croservices was not greater than the cost
of having to orchestrate them during
setup and operation. For instance, at the
time of writing, computer resource costs
in the Istio control plane are dominated
by a single feature: serving the Envoy
dynamic resource discovery (i.e., xDS)
APIs that program the data plane. Every
other feature has a marginal cost. This
means there is very little value to hav-
ing those features in separately scalable
microservices. Also, full security isola-
tion is not attainable in the control plane
as well. This is because multiple control
plane services hold nearly equivalent
roles in securing behavior of the proxy
and are installed by default into the same
Kubernetes namespace. Thus, exploiting
any of these services would cause near
equal damage. Therefore, moving the
Istio control plane to a monolithic archi-
tecture turned out to be the right archi-
tectural decision.
We should note that internally Istio
still maintains the logical separation be-
tween some of its original control plane
components and that each capability is
exposed as a discrete API. This still en-
ables functions to be swapped and com-
bined with other implementations. This
feature can be particula rly useful in
some advanced use cases, such as in
multicluster deployments, where istiod
can be deployed as a single-purpose ser-
vice such as “injection,” “certification
provider,” or “validation.” This design
decision maintains many of the ben-
efits of microservices to more seasoned
Istio operators without the downsides
to those only interested in Istio’s most
common use cases.
Lessons Learned
According to Sam Newman, author of
a recent book on microservice migra-
tion patterns,18 developers should con-
template these three questions before
adopting a microservice architecture:
What are you hoping to achieve? Have
you considered alternatives to using
microservices? How will you know
if the transition is working? Here we
INSIGHTS
20 IEEE SOFTWARE | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE
report on the main lessons learned
from the Istio team’s decision to con-
solidate their microservices from the
perspectives of these three questions.
We also discuss whether this decision
aligns with industry best practices.
What Was the Team
Hoping toAchieve With
Microservices?
Initially, the Istio team expected to
benefit from microservices’ well-
known advantages, such as indepen-
dent rollout and independent scale.
However, as they regularly talked
to customers and teams running Is-
tio in the real world, they were told
that none of these were the case for
the Istio control plane. The first les-
son learned then is that good teams
should look back upon their design
choices and, with the benefit of hind-
sight, revisit them.19
Had the Team Considered
Alternatives to Using
Microservices?
In retrospect, the team admits that
they favored microservices because
they confused their operational ex-
perience for that of the end-user.
For Istio, they are not the operator.
Thus, the need for the control plane
services to communicate securely
and be observable provided oppor-
tunities for Istio to “eat its own dog
food.” To put it another way, be-
cause Istio was targeted explicitly
at securing and observing individ-
ual microservices, the team thought
implementing the Istio control plane
as secure and observable microser-
vices was a natural choice. As we
have seen, this wasn’t necessarily the
case. In summary, the team believes
honesty and courage are required
to undo a previous design, which is
facilitated when done in an open and
constructive “error culture.”
How Did the Team Know
Microservices Were Not
Working?
At first, the Istio team did not pay
much attention to the burden of
managing Istio’s control plane as
independently deployable microser-
vices. However, after the team
started receiving feedback from
other Istio users, they soon real-
ized that microservices were not
as beneficial as they initially had
thought. The main reason was that
all control plane services were be-
ing deployed and used together and
shared the same administrative and
security domains. Thus, moving the
Istio control plane to a monolithic
architecture was a welcome deci-
sion, as it greatly reduced Istio’s
operational complexity. While this
decision may seem like a significant
change, the Istio team is confident
that it has paid off and verifiably
made the lives of Istio users better.
Thus, the team thinks this change
shows a willingness to change based
on user feedback and a continued
focus on simplification for all users.
How Well Does the Decision to
Consolidate the Control Plane
Microservices Align With
Industry Best Practices?
To answer this question, we again re-
sort to Sam Newman’s microservice
recommendations, in particular, to his
list of four situations in which microser-
vices might be a bad idea.16 Tab le 1
briefly describes those four situations
and whether they apply to Istio. As
you can see, all of them apply to Istio,
either partially or in full. Notably, us-
ing microservices in customer-installed
and -managed software was the clear
reason that microservices were a bad
Table 1. Sam Newman’s recommendations on when not
to use microservices andwhether they apply to Istio.
Situation Why Microservices Are Bad Does It Apply to Istio?
Unclear
domain
Getting service boundaries wrong can
be expensive.
In part. From the perspective of fault
and security isolation, it can be argued
that splitting the Istio control plane into
multiple independent services was an
unnecessary decision.
Start-ups A star t-up needs to focus all its
attention on finding the right fit for its
product. Microservices primarily solve
the sorts of problems start-ups have
once they’ve found that fit with their
customer base.
In part. While Istio was initially designed
by mature organizations, it was run like
a start-up and did indeed need to focus
on finding the right fit. As it turned out,
microservices were solving a problem
Istio didn’t actually have.
Customer-
installed and
managed
software
Microservices push a lot of complexity
into the operational domain. Coping
with this complexity isn’t something
you can typically expect of your end
customers.
Yes. Negative user feedback on the
complexity of deploying and managing
Istio was the main reason for the team’s
decision to consolidate the control plane
microservices into a single binary.
Not having
a good
reason!
Do not adopt microservices if you
don’t have a clear idea of what exactly
it is that you’re trying to achieve.
In part. A lthough the Istio team had a
clear view of the benefits and cost of
microservices, they didn’t realize right
from the start that, in their case, the
costs would outweigh the benefits.
INSIGHTS
SEPTEMBER/OCTOBER 2021 | IEEE SOFTWARE 21
idea in Istio’s case. The others are par-
tial and might not be very convincing,
but this one has clear guidance rel-
evant to readers: if you ship customer-
installed software, be wary of shipping
a bunch of microservices. One final
lesson learned then is that although
the Istio team was aware of Sam New-
man’s microservice recommendations,
they didn’t give appropriate weight to
the guidance around operations. This
shows the importance of sharing real-
world microservice experiences with a
broader audience, especially those that
did not turn out as well as expected.
As microservices become in-
creasingly popular, they
are more likely to be used
in situations where the costs far out-
weigh the benefits. Istio’s recent deci-
sion to migrate its control plane from
microservices to a monolithic architec-
ture is a real-world example of some
of these situations. While the Istio
team recognizes that microservices
can work well in some systems and use
cases, their unmet expectations with
microservices are a timely reminder
that microservices are not, and never
will be, the right solution in all cases.
Microservices are a tool in a toolbox,
and they work best when reflected in
the organizational reality.
Acknowle dgment
Nabor C. Mendonça was partly sup-
ported by Brazil’s National Council for
Scientific and Technological Develop-
ment under grants 424160/2018-8
and 311344/2020-8.
References
1. P. Jamshidi, C. Pahl, N. C. Men-
donça, J. Lewis, and S. Tilkov,
“Microservices: The journey so
far and challenges ahead,” IEEE
Softw., vol.35, no. 3, pp. 24 –35,
May/June 2018. doi: 10.1109/
MS.2018.2141039.
2. C. Pautasso, O. Zimmermann, M.
Amundsen, J. Lewis, and N. Josuttis,
“Microservices in practice, part 1:
Reality check and service design,”
IEEE Softw., vol. 34, no. 1, pp.91–
98, Jan./Feb. 2017. doi: 10.1109/
MS.2017.24.
3. J. Lewis and M. Fowler. “Microser-
vices: A definition of this new
architectural term.” martinFowler,
Mar. 2014. https://martinfowler.com/
articles/microservices.html (accessed
May 28, 2021).
4. O. Zimmermann, “Microservices
tenets: Agile approach to service
development and deployment,” Com-
put. Sci.—Res. Develop., vol.32,
nos. 3–4, pp. 301–310, 2017. doi:
10.1007/s00450-016-0337-0.
5. J. Soldani, D. A. Tamburri, and
W. J. Van Den Heuvel, “The pains
and gains of microservices: A sys-
tematic grey literature review,” J.
Syst. Softw., vol. 146, pp. 215–
223, Dec. 2018. doi: 10.1016/j.
jss.2018.09.082.
6. H. Zhang, S. Li, Z . Jia, C. Zhong and
C. Zhang, “Microservice architec-
ture in reality: An industrial inquiry,”
Proc. IEEE Int. Conf. Sof tw. Archi-
tecture (ICSA 19), 2019, pp. 51–60.
doi: 10.1109/ICSA.2019.00014.
7. H. Knoche and W. Hasselbring,
“Drivers and barriers for microser-
vice adoption—A survey among pro-
fessionals in Germany,” Enterprise
Model. Inform. Syst. Architectures,
vol. 14, no. 1, pp. 1–35, 2019. doi:
10.18417/em isa.14.1.
ABOUT THE AUTHORS
NABOR C. MENDONÇA is a full professor
at the University of For taleza, Fortaleza, Ceará,
CEP 60811-905, Brazil. Contact him at nabor@
uni for.br.
C OSTIN MANOLACHE is a sof tware
engineer at Google. Contact him at costin@
google.com.
CRAIG BOX is a developer advocate at
Google. Contact him at craigbox@google.com.
L OUIS RYAN is a principal engineer at
Google. Contact him at lryan@google.com.
22 IEEE SOFTWARE | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE
INSIGHTS
8. “Panel: Microservices—A re they still
worth it?” InfoQ, Apr. 2020. https://
www.infoq.com/presentations/
microservices-panel-value/ (accessed
May 28, 2021).
9. A. Noonan. “Goodbye microser-
vices: From 100s of problem children
to 1 superstar.” Segment, July 2018.
https://segment.com/blog/goodbye\
-microservices/ (accessed May 28, 2021).
10. C. Posta. “Istio as an example of when
not to do microservices,” Jan. 2020.
https://blog.christianposta.com/
microservices/istio-as-an-example
-of-when-not-to-do-microservices/
(accessed May 28, 2021).
11. “Istio—Connect, secure, control, and
observe services.” Istio.io. https://
istio.io/ (accessed May 28,
2021).
12. C. Box. “Introducing istiod: Simplify-
ing the control plane.” Istio.io, Mar.
2020. https://istio.io/v1.5/blog /
2020/istiod/ (accessed May 28,
2021).
13. “Kubernetes—Production-grade con-
tainer orchestration.” Kubernetes.io.
https://kubernetes.io/ (accessed May
28, 2021).
14. L. Calcote, The Enterprise Path
to Ser vice Mesh Architectures.
O’Reilly, 2018. (accessed May 28,
2021).
15. “Envo yP roxy. io.” E nvoy. htt ps: //
www.envoyproxy.io/ (accessed
May 28, 2021).
16. “Prometheus—From metrics to
insight.” Prometheus.io. https://
prometheus.io/ (accessed May 28,
2021).
17. “Jaeger: Open source, end-to-end
distributed tracing.” JaegerTracing
.io. https://www.jaegertracing
.io/ (accessed May 28, 2021).
18. S. Newman, Monolith to Microser-
vices: Evolutionary Patterns to
Transform Your Monolith. Sebasto-
pol, CA: O’Reilly, 2020.
19. O. Zimmermann. “A definition of
done for architectural decisions.”
Medium, May 2020. https://medium
.com/olzzio/a-definition-of-done
-for-architectural-decisions-426cf5
a952b9 (accessed May 28, 2021).
IEEE TRANSACTIONS ON
BIG DATA
For more information on paper submission, featured articles, calls for
papers, and subscription links visit: www.computer.org/tbd
TBD is financially cosponsored by IEEE Computer Society, IEEE Communications Society, IEEE Computational Intelligence
Society, IEEE Sensors Council, IEEE Consumer Electronics Society, IEEE Signal Processing Society, IEEE Systems, Man &
Cybernetics Society, IEEE Systems Council, and IEEE Vehicular Technology Society
TBD is technically cosponsored by IEEE Control Systems Society, IEEE Photonics Society, IEEE Engineering in Medicine &
Biology Society, IEEE Power & Energy Society, and IEEE Biometrics Council
SUBSCRIBE AND SUBMIT
SUBMI T
TO DAY
Digital O bject Identifi er 10.1109/MS.20 21.30 99675
... In a microservices architecture, the application is divided into smaller, self-contained services that can be developed, deployed, and scaled independently. Each service focuses on a specific business function and communicates with others through APIs, usually over HTTP [3]. ...
Article
The shift from monolithic software architectures to microservices has become a key approach in contemporary software development, offering improvements in scalability, flexibility, and maintainability. This transformation addresses the limitations of tightly integrated systems, such as reduced agility and challenges in scaling individual components. In contrast, microservices advocate for a decentralized model, where independent services communicate via lightweight protocols, such as REST or message queues. This paper explores the key reasons for adopting microservices, including the ability to support rapid deployment cycles, enhance fault isolation, and optimize resource utilization. It delves into the core principles of microservices architecture, such as domain-driven design, bounded contexts, and continuous delivery. The paper also addresses the technical and organizational hurdles of migrating to microservices, including issues like data consistency, greater operational complexity, and the need for comprehensive monitoring and logging. It presents practical approaches for transitioning from a monolithic to a microservices-based system, such as incremental decomposition, implementing API gateways, and utilizing containerization technologies. The conclusion emphasizes the importance of aligning organizational structures with the new architectural approach, as highlighted by Conway’s Law, to fully realize the advantages of this transformation.
... Despite numerous benefits, however, microservice architectures come at a price; in particular, with respect to operational complexity and the required skills of the development and operations teams [2], [4]. In some cases, projects that have started using microservices have even moved to a monolithic architecture [5]. ...
Preprint
Full-text available
Improving agility and maintainability are common drivers for companies to adopt a microservice architecture for their existing software systems. However, the existing software often relies heavily on the fact that it is executed within a single process space. Therefore, decomposing existing software into out-of-process components like microservices can have a severe impact on non-functional properties, such as overall performance due to invocation overhead or data consistency. To minimize this impact, it is important to consider non-functional properties already as part of the design process of the service boundaries. A useful method for such considerations are what-if analyses, which allow to explore different scenarios and to develop the service boundaries in an iterative and incremental way. Experience from an industrial case study suggests that for these analyses, ease of use and speed tend to be more important than precision. In this paper, we present emerging results for an approach for what-if analyses based on trace rewriting that is (i) specifically designed for analyzing the impact on non-functional properties due to decomposition into out-of-process components and (ii) deliberately prefers ease of use and analysis speed over precision of the results.
... Historically, MA has been the cornerstone of software design, embodying a cohesive approach where all components of an application are tightly integrated into a singular unit [4] [5]. This traditional methodology, while offering simplicity and ease of initial development, encounters challenges as applications scale in complexity [6]. ...
Article
Full-text available
Over the past year, the software architecture field has been dominated by the contrast between microservices and monolithic architectures, driven by the demand for scalable solutions for modern applications. Microservices, with their focus on modularity and independence, have become popular for large-scale systems, offering benefits like enhanced scalability and simplified maintenance. Conversely, monolithic architectures, known for their cohesive design, have been a traditional choice, favored for their simplicity in development. However, they may struggle with scalability as applications grow in complexity. Amidst this, Modulith Architecture (MDA) has emerged in recent years as a solution to the complexities of microservices and the limitations of traditional monolithic architectures. Combining the structural integrity of monolithic systems with the modularity of microservices, MDA offers a holistic approach to software design and development. This study investigates the adoption of MDA through a comprehensive analysis of 32 practitioners' insights. Our objective is to explore the motivations, challenges, and trends surrounding MDA adoption. Employing a qualitative approach through in-depth interviews, we uncover nuanced adoption patterns and identify key factors influencing practitioners' choices. Results indicate a varied adoption spectrum, with motivations ranging from simplicity to cost-effectiveness advantages. Technical challenges, including module dependencies and communication overhead, highlight the intricacies of MDA integration. Emerging trends, such as dynamic module loading, underscore the evolving practices within the field. This study contributes to a deeper understanding of MDA adoption dynamics, offering insights for both researchers and practitioners.
... We aim to comprehend current technological trends and common implementation patterns related to the adoption of event management. We also seek to identify the functional and non-functional 1 Recent empirical studies have reported cases of companies moving from microservices back to monoliths [67,106]. ...
Preprint
Full-text available
Microservices emerged as a popular architectural style over the last decade. Although microservices are designed to be self-contained, they must communicate to realize business capabilities, creating dependencies among their data and functionalities. Developers then resort to asynchronous, event-based communication to fulfill such dependencies while reducing coupling. However, developers are often oblivious to the inherent challenges of the asynchronous and event-based paradigm, leading to frustrations and ultimately making them reconsider the adoption of microservices. To make matters worse, there is a scarcity of literature on the practices and challenges of designing, implementing, testing, monitoring, and troubleshooting event-based microservices. To fill this gap, this paper provides the first comprehensive characterization of event management practices and challenges in microservices based on a repository mining study of over 8000 Stack Overflow questions. Moreover, 628 relevant questions were randomly sampled for an in-depth manual investigation of challenges. We find that developers encounter many problems, including large event payloads, modeling event schemas, auditing event flows, and ordering constraints in processing events. This suggests that developers are not sufficiently served by state-of-the-practice technologies. We provide actionable implications to developers, technology providers, and researchers to advance event management in microservices.
... Although the migration of monolith systems to microservice architectures has become a common trend in the industry, there are also reports suggesting that the microservice architecture may not necessarily be the best solution [17]. Therefore, there are trade-offs that have to be evaluated when deciding to do the migration. ...
... Our analysis indicates that deviating from this approach could imperil the fulfillment of system quality requirements postmigration. This observation sheds light on a potential explanation for the trend of reverting to monolithic or modular monolithic architectures [38], [39]. The application of the quality-driven approach ensures not only superior microservice performance compared to the monolith but also results in reduced development time, costs, and effort when compared to alternative migration strategies that necessitate system refactoring to achieve quality goals. ...
Article
Full-text available
The use of AI in microservices (MSs) is an emerging field as indicated by a substantial number of surveys. However these surveys focus on a specific problem using specific AI techniques, therefore not fully capturing the growth of research and the rise and disappearance of trends. In our systematic mapping study, we take an exhaustive approach to reveal all possible connections between the use of AI techniques for improving any quality attribute (QA) of MSs during the DevOps phases. Our results include 16 research themes that connect to the intersection of particular QAs, AI domains and DevOps phases. Moreover by mapping identified future research challenges and relevant industry domains, we can show that many studies aim to deliver prototypes to be automated at a later stage, aiming at providing exploitable products in a number of key industry domains.
Article
Full-text available
Microservices are an architectural style for software which currently receives a lot of attention in both industry and academia. Several companies employ microservice architectures with great success, and there is a wealth of blog posts praising their advantages. Especially so-called Internet-scale systems use them to satisfy their enormous scalability requirements and to rapidly deliver new features to their users. But microservices are not only popular with large, Internet-scale systems. Many traditional companies are also considering whether microservices are a viable option for their applications. However, these companies may have other motivations to employ microservices, and see other barriers which could prevent them from adopting microservices. Furthermore, these drivers and barriers possibly differ among industry sectors. In this article, we present the results of a survey on drivers and barriers for microservice adoption among professionals in Germany. In addition to overall drivers and barriers, we particularly focus on the use of microservices to modernize existing software, with special emphasis on implications for runtime performance and transactionality. We observe interesting differences between early adopters who emphasize scalability of their Internet-scale systems, compared to traditional companies which emphasize maintainability of their IT systems.
Article
Full-text available
Microservices are an architectural approach emerging out of service-oriented architecture, emphasizing self-management and lightweightness as the means to improve software agility, scalability, and autonomy. This article examines microservice evolution from the technological and architectural perspectives and discusses key challenges facing future microservice developments.
Article
Full-text available
Some microservices proponents claim that microservices form a new architectural style; in contrast, advocates of service-oriented architecture (SOA) argue that microservices merely are an implementation approach to SOA. This overview and vision paper first reviews popular introductions to microservices to identify microservices tenets. It then compares two microservices definitions and contrasts them with SOA principles and patterns. This analysis confirms that microservices indeed can be seen as a development- and deployment-level variant of SOA; such microservices implementations have the potential to overcome the deficiencies of earlier approaches to SOA realizations by employing modern software engineering paradigms and Web technologies such as domain-driven design, RESTful HTTP, IDEAL cloud application architectures, polyglot persistence, lightweight containers, a continuous DevOps approach to service delivery, and comprehensive but lean fault management. However, these paradigms and technologies also cause a number of additional design choices to be made and create new options for many “distribution classics” type of architectural decisions. As a result, the cognitive load for (micro-)services architects increases, as well as the design, testing and maintenance efforts that are required to benefit from an adoption of microservices. To initiate and frame the buildup of architectural knowledge supporting microservices projects, this paper compiles related practitioner questions; it also derives research topics from these questions. The paper concludes with a summarizing position statement: microservices constitute one particular implementation approach to SOA (service development and deployment).
Article
Service-oriented architecture (SOA) and microservices insiders Mike Amundsen, James Lewis, and Nicolai Josuttis share their experiences and predictions with department editors Cesare Pautasso and Olaf Zimmermann.
Microservices: A definition of this new architectural term
  • J Lewis
  • M Fowler
J. Lewis and M. Fowler. "Microservices: A definition of this new architectural term." martinFowler, Mar. 2014. https://martinfowler.com/ articles/microservices.html (accessed May 28, 2021).
Panel: Microservices -Are They Still Worth It?
  • Infoq
InfoQ, Panel: Microservices -Are They Still Worth It?, Apr. 2020. [Online]. Available at: https://www.infoq.com/presentations/microservices-panel-value/
Goodbye microservices: From 100s of problem children to 1 superstar
  • A Noonan
A. Noonan. "Goodbye microservices: From 100s of problem children to 1 superstar." Segment, July 2018. https://segment.com/blog/goodbye\ -microservices/ (accessed May 28, 2021).
Istio as an example of when not to do microservices
  • C Posta
C. Posta. "Istio as an example of when not to do microservices," Jan. 2020. https://blog.christianposta.com/ microservices/istio-as-an-example -of-when-not-to-do-microservices/ (accessed May 28, 2021).