Microservices Essentials For Executives R4-2
Microservices Essentials For Executives R4-2
Microservices Essentials For Executives R4-2
microservices
So!ware is eating the world
MARC ANDREESEN
microservices.
and reliability?
What are
microservices?
Traditionally, cloud applications were built as single large application (popularly known as the
monolith). Some describe microservices as a splintering of monolithic so!ware applications
into smaller pieces.
2 of 11
What are
microservices?
(continued)
of smaller microservices.
of cloud applications.
3 of 11
Why
microservices?
Increased Agility
Microservices empower development organizations to respond much more quickly to market and
customer feedback. Whether its a game-changing feature or a tweak to make an existing feature
eminently more usable, no longer will its release be delayed by the schedule of the single release
train. Instead, each microservice can be released independently.
Long Iteration
Cycle of
Monolithic
Apps
Faster Iteration Cycle
of Microservices
Organizational scale
With a monolith, the risk of breaking each others code rises dramatically with each additional
developer. This slows development, as additional testing, debugging, and integration is required
to prevent inadvertent errors. In a microservices architecture, each team works on an independent
code base, so bugs are isolated to a single microservice.
4 of 11
Why
microservices?
(continued)
Development eiciency
Monolith development teams are constrained to a common technology stack and process.
Microservices architecture enables independent teams to choose the right processes and
technology for a given service. For example, the PCI standard requires that any code base that
handles credit card data be subject to compliance audits. With payment processing handled by a
single or a set of microservices, the amount of code that is in scope is substantially reduced. Or a
recommendation engine might be written in Python to use the TensorFlow machine learning
library, while other services are written in Java.
In a traditional monolith, the entire application must be scaled when it reaches its limits. For
example, if the application is not performing, new servers must be added that are capable of
running additional instances of the monolith. In a microservices architecture, each
microservice can be individually scaled. Thus, new servers are only added for a given
microservice that is a bottleneck. This more granular approach to scaling enables a more cost
eicient compute model.
Faster onboarding
With microservices, new engineers can safely start coding on a small microservice. Theres no
need for an engineer to learn a monolithic code base just to fix a bug.
5 of 11
Why
microservices?
(continued)
Microservices enables you to incrementally adopt and test new technologies and good
engineers want to work with the latest technology.
6 of 11
The impacts of
adopting a
microservices
architecture
Adopting a microservices architecture yields significant benefits, but also drives some
change. There are three types of changes to anticipate: culture, deployment infrastructure,
and developer infrastructure.
team needs.
skills.
7 of 11
The impacts of
adopting a
microservices
architecture
(continued)
Continuous Delivery.
Elastic scaling
infrastructure is essential.
source code,
8 of 11
The impacts of
adopting a
microservices
architecture
(continued)
include:
available microservices.
engineers.
multiple files.
9 of 11
Eat or be eaten.
Given that the benefits of microservices require new investment and trigger changes, you may ask, as a VP Engineering was recently asked Why are
you doing microservices? He replied, Because if we dont do it, we will die from the competition moving faster.
There is incredible momentum in adopting microservices because of the benefits around agility, eiciency, onboarding, and recruiting. The number
of developers who have experience in adopting microservices is growing. The eort to adopt microservices is rapidly shrinking, and will continue to
go down over time.
Learn more
If youre interested in learning more about how to get started with microservices, visit www.datawire.io/getting-started for
information on 5 simple steps on getting started with microservices. While the microservices journey may be a long one, getting
started is not as hard as you might think.
10 of 11
Enable loosely coupled services. Services need well-defined protocols to communicate, and dependencies need to be contained within each
microservice. Ben Christensen, one of the architects of the Netflix microservices architecture, speaks about this challenge in his talk Dont
Build A Distributed Monolith. Loosely coupled services let you update the code for a single microservice without aecting any other services
that depend on it. Your developer infrastructure needs to provide implementations of these protocols across all your microservices.
Application resiliency. When a microservice is unavailable for whatever reason so"ware bug, network outage, machine failure the entire
cloud application must continue to function and recover gracefully with minimal human intervention. Techniques for service availability (e.g.,
load balancing), service isolation (e.g., circuit breakers), and service recovery (e.g., rollback) are an essential part of the developer toolkit.
11 of 11