Microservice Architecture
What are microservices
Microservice Architecture Benefits
Why are organizations adopting microservices?
What are the motivations and challenges?
How can the leaders of these organizations tell that taking on the challenges of managing a
collection of small, loosely coupled, independently deployable services is actually paying off for
the company?
What is the measure of success?
Surveying the early adopters of microservices, we find that the answers to these questions vary
quite a bit.
However, some common themes emerge and tie back to the mantra of “balancing speed and
safety at scale.”
Establishing a Foundation
 Goals and Principles
• Regardless of the software architecture style you employ, it is important to have some overall goals and
principles to help inform your design choices and guide the implementation efforts.
• This is especially true in companies where a higher degree of autonomy is provided to developer teams.
• The more autonomy you allow, the more guidance and context you need to provide to those teams.
Goals for the Microservices Way
• It is a good idea to have a set of high-level
goals to use as a guide when making
decisions about what to do and how to go
about doing it.
•
We’ve already introduced our ultimate goal
in building applications in the microservices
way: finding the right harmony of speed
and safety at scale.
• Agility allows organizations to deliver new products, functions, and features more quickly and pivot more easily if
needed.
•
Composability reduces development time and provides a compound benefit through reusability over time.

Comprehensibility of the software system simplifies development planning, increases accuracy, and allows new
resources to come up to speed more quickly.
• Independent deployability of components gets new features into production more quickly and provides more
flexible options for piloting and prototyping.
•
Organizational alignment of services to teams reduces ramp-up time and encourages teams to build more complex
products and features iteratively.

Polyglotism permits the use of the right tools for the right task, thus accelerating technology introduction and
increasing solution options.
• Likewise, digital native consumers expect always-on services and are not shy about
changing corporate allegiances.
• Outages or lost information can cause them to take their business elsewhere.
• A safe software system is indispensable. The safety-aligned benefits discussed earlier
also provide particular business value:
• Greater efficiency in the software system reduces infrastructure costs and reduces the
risk of capacity-related service outages.
• Independent manageability contributes to improved efficiency, and also reduces the
need for scheduled downtime.
 Replaceability of components reduces the technical debt that can lead to aging,
unreliable environments.
Service design
• In our experience working with various
organizations and interviewing others, some of the
more challenging questions that teams adopting
microservice architecture face are how to properly
size microservices (“how micro is micro?”) and
how to properly deal with data persistence in
order to avoid sharing of data across services.
• These two concerns are actually closely related.
• A mistake in optimal sizing often begets the
extraneous data-sharing problem, but the latter is
especially problematic, operationally, since it can
create tight cross-service coupling and impede
independent deployability, a core value of the
architectural style.
• In reality, there is no simple answer for this question.
• The things that first come to mind, such as lines of code in a microservice or the size of a team working on
one are compelling, since they offer the chance to focus on a quantifiable value (e.g., “The answer is 42!”).
THANK YOU

Microservice Architecture for Graduate students

  • 1.
  • 2.
  • 5.
    Microservice Architecture Benefits Whyare organizations adopting microservices? What are the motivations and challenges? How can the leaders of these organizations tell that taking on the challenges of managing a collection of small, loosely coupled, independently deployable services is actually paying off for the company? What is the measure of success? Surveying the early adopters of microservices, we find that the answers to these questions vary quite a bit. However, some common themes emerge and tie back to the mantra of “balancing speed and safety at scale.”
  • 7.
    Establishing a Foundation Goals and Principles • Regardless of the software architecture style you employ, it is important to have some overall goals and principles to help inform your design choices and guide the implementation efforts. • This is especially true in companies where a higher degree of autonomy is provided to developer teams. • The more autonomy you allow, the more guidance and context you need to provide to those teams.
  • 8.
    Goals for theMicroservices Way • It is a good idea to have a set of high-level goals to use as a guide when making decisions about what to do and how to go about doing it. • We’ve already introduced our ultimate goal in building applications in the microservices way: finding the right harmony of speed and safety at scale.
  • 10.
    • Agility allowsorganizations to deliver new products, functions, and features more quickly and pivot more easily if needed. • Composability reduces development time and provides a compound benefit through reusability over time.  Comprehensibility of the software system simplifies development planning, increases accuracy, and allows new resources to come up to speed more quickly. • Independent deployability of components gets new features into production more quickly and provides more flexible options for piloting and prototyping. • Organizational alignment of services to teams reduces ramp-up time and encourages teams to build more complex products and features iteratively.  Polyglotism permits the use of the right tools for the right task, thus accelerating technology introduction and increasing solution options.
  • 11.
    • Likewise, digitalnative consumers expect always-on services and are not shy about changing corporate allegiances. • Outages or lost information can cause them to take their business elsewhere. • A safe software system is indispensable. The safety-aligned benefits discussed earlier also provide particular business value: • Greater efficiency in the software system reduces infrastructure costs and reduces the risk of capacity-related service outages. • Independent manageability contributes to improved efficiency, and also reduces the need for scheduled downtime.  Replaceability of components reduces the technical debt that can lead to aging, unreliable environments.
  • 12.
    Service design • Inour experience working with various organizations and interviewing others, some of the more challenging questions that teams adopting microservice architecture face are how to properly size microservices (“how micro is micro?”) and how to properly deal with data persistence in order to avoid sharing of data across services. • These two concerns are actually closely related. • A mistake in optimal sizing often begets the extraneous data-sharing problem, but the latter is especially problematic, operationally, since it can create tight cross-service coupling and impede independent deployability, a core value of the architectural style.
  • 14.
    • In reality,there is no simple answer for this question. • The things that first come to mind, such as lines of code in a microservice or the size of a team working on one are compelling, since they offer the chance to focus on a quantifiable value (e.g., “The answer is 42!”).
  • 15.