SlideShare a Scribd company logo
1 of 65
MICROSERVICES
By :
Joshua
FMIT2122013
Venkatesh
FMIT2122014
Neha
FMIT2122017
Vengatakrishnan
CHAPTER 1
MICROSERVICES
CONTENTS
• Why Microservices?
• What is Microservice Architecture?
• Features of Microservice Architecture.
• Advantages of Microservice Architecture.
• Companies using Microservices.
WHY MICR0SERVICES ?
BEFORE MICROSERVICES – MONOLITHIC
ARCHITECTURE
• Monolithic Architecture is like a big container wherein all the software components
of an application are assembled together and tightly packaged.
MONOLITHIC ARCHITECTURE - EXAMPLE
MONOLITHIC ARCHITECTURE -
CHALLENGES
MONOLITHIC ARCHITECTURE -
CHALLENGES
MONOLITHIC ARCHITECTURE -
CHALLENGES
MONOLITHIC ARCHITECTURE -
CHALLENGES
MONOLITHIC ARCHITECTURE -
CHALLENGES
WHAT IS MICROSERVICE ARCHITECTURE?
WHAT IS MICROSERVICE ARCHITECTURE ?
• Microservice architecture is an architectural style that structures an application as
a COLLECTION OF SMALL AUTONOMOUS SERVICES modelled around a
BUSINESS DOMAIN.
• In Microservice Architecture, each service is
self - contained and implements a Single
Business capability.
MICROSERVICE ARCHITECTURE - EXAMPLE
MICROSERVICE ARCHITECTURE
FEATURES OF MICROSERVICE
ARCHITECTURE.
FEATURES OF MICROSERVICE
ARCHITECTURE
ADVANTAGES OF MICROSERVICE
ARCHITECTURE.
ADVANTAGES OF MICROSERVICE
ARCHITECTURE
COMPANIES USING MICROSERVICES.
COMPANIES USING MICROSERVICES.
CHAPTER 2
THE MICROSERVICES VALUE PROPOSITION
MICROSERVICE ARCHITECTURE BENEFITS
• Better resiliency
Implementing microservice-based architecture adds ease to the process of identifying
and resolving the root cause of performance issues.
• Improved productivity
Breaking an application down into smaller autonomous fragments makes it easier to
build and maintain. Each service can be developed, deployed, and managed
independently, and can utilize different programming languages, different technology,
and different software environments based on the needs of each.
• Increased scalability
The fact that each service can be written in a different language or technology allows
DevOps teams to choose the most appropriate tech stack for each module without
concerns about incompatibility.
• Continuous integration/continuous delivery (CI/CD)
The ability to share the workflow burden and automate manual processes shortens the
overall lifecycle of the development process.
• Optimize business functionality
Existing services can then be adapted for use in different contexts without recreating
an entire module from scratch.
DERIVING BUSINESS VALUE
• Business value, by definition, is a tangible or intangible benefit that can be realized
by the stakeholder of a project.
• Tangible business value focuses on how the project affects the income statement,
through reducing costs or increasing revenue. Equally important, intangible
value covers productivity enhancements, key differentiators, and customer
satisfaction, like improving hiring efficiency of an organization.
3 STEPS TO SHOW BUSINESS VALUE
1. Understanding and identifying the business vision
2. Gather necessary data and develop insights
3. Articulate business value for stakeholders
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.
• Stronger resilience and higher availability ensure a good customer
experience. • Better runtime scalability allows the software system to
grow or shrink with the business.
• Improved testability allows the business to mitigate implementation
risks.
DEFINING A GOAL-ORIENTED, LAYERED
APPROACH
• Modularized Microservice Architecture
• Cohesive Microservice Architecture
• Systematized Microservice Architecture
MATURITY MODEL FOR MICROSERVICE
ARCHITECTURE GOALS AND BENEFITS
• They describe the practices that any organization must perform in order to improve
its processes.
• They provide a yardstick against which to periodically measure improvement.
• They constitute a proven framework within which to manage the improvement
efforts.
APPLYING THE GOAL-ORIENTED, LAYERED
APPROACH
• define the high-level business objectives you want to accomplish, and then weigh
these against the dual goals of speed and safety.
• Consider the distinct benefits you are targeting. You can then use the maturity
model to determine the complexity of the goal, and identify the best approach to
achieve it.
• reducing QA time through automation and a switch in methodology from white-box
to black-box testing.
CHAPTER 3
Designing Microservice Systems
• Building microservice is way more than just implement small components
• We know that there isn’t a strict definition for what constitutes a microservice
architecture.
• Instead, the focus is on building applications that balance speed and safety at scale,
primarily through replaceability
• The basic concept of a microservice architecture might be smaller services, but
following the microservices way will require you to think big.
• I.e Designing microservice depends on culture, organization, architecture, interfaces,
and services in just the right way to gain the balance of speed and safety at scale
• We don't need to be expert in all these, instead we use a design driven approach in this
chapter
THE SYSTEMS APPROACH TO
MICROSERVICES
• Why system approach : Emergence behavior
• Eg. Each people who work, the way they work, and the outputs they produce are all
important system factors (technical term: service coordination, error handling, and
operational practices) many create complexity.
• Model-based approach can help and make it easier for us talk about the parts of the
system.
• This microservice design model comprised of five parts: Service, Solution, Process
and Tools, Organization, and Culture.
MICROSERVICE MODEL-BASED
APPROACH
MICROSERVICE MODEL-BASED
APPROACH
SERVICE
• Well-designed service in term of design, scope and granularity in will be able to
induce complex behavior from a set of from a set of components that are deceptively
simple.
• Service should be atomic building blocks from which the entire application is built.
MICROSERVICE MODEL-BASED
APPROACH
PROCESS AND TOOLS
• Choosing the right processes and tools is an important factor in producing good
microservice system behavior.
• In the microservice’s system, this usually includes tooling and processes related to
software development, code deployment, maintenance, and product management.
• As they are highly linked with each other, and they can directly / indirectly affect
the performance of the application in term of development and run time.
• For example, adopting standardized processes like DevOps and Agile or tools like
Docker containers can increase the changeability of your system
MICROSERVICE MODEL-BASED
APPROACH
CULTURE
• We can broadly define culture as a set of values, beliefs, or ideals that are shared by all of the workers
within an organization. Your organization’s culture is important because it shapes all of the atomic
decisions that people within the system will make.
• Shared ideals shape how people do their work and how they work will in turn shape their organizational
view. This is the interconnected nature of the system.
• Much like organizational design, culture is a context-sensitive feature of your system.
• Eg: What works in Japan may not work in the United States and what works in a large insurance firm
may not work at an ecommerce company.
• For better understanding, similar result may be obtained by following different culture, but it may not be
efficient.
• Layman term: Culture - Even clothes are different, its task is to cover body. Which may be comfortable to
individual which they are used to.
MICROSERVICE MODEL-BASED
APPROACH
ORGANISATIONAL DESIGN
• How we work is often a product of who we work with and how we communicate.
• From a microservice system perspective, organizational design includes the
structure, direction of authority, granularity, and composition of teams.
• A good microservice system designer understands the implications of changing these
organizational properties and knows that good service design is a byproduct of good
organizational design.
• But organizational design is incredibly context-sensitive, and you may find yourself
in a terrible situation if you try to model your 500+ employee enterprise structure
after a 10-person startup
MICROSERVICE MODEL-BASED
APPROACH
SOLUTION
• A solution architecture is distinct from the individual service design elements
because it represents a macro view of our solution.
• When designing a particular microservice your decisions are bounded by the need to
produce a single output—the service itself.
• Conversely, when designing a solution architecture your decisions are bounded by
the need to coordinate all the inputs and outputs of multiple services.
• For better understanding, some sort of standardization to be maintained for
entire atomic services.
EMBRACING CHANGE
• All of the decisions you make about the organization, culture, processes, services,
and solutions should be rooted in the notion that change is inevitable
• You cannot afford to be purely deterministic in your system design; instead, you
should design adaptability into the system as a feature.
• A good microservice designer understands the need for adaptability and endeavors
to continually improve the system instead of working to simply produce a solution.
PUTTING IT TOGETHER: THE HOLISTIC
SYSTEM
• The microservices system is complex and teasing desirable behaviors and outcomes from
that system isn’t an easy task. But some organizations have had enormous success in
doing so and we can learn from their examples
• When put together all of these design elements form the microservices system. They are
interconnected and a change to one element can have a meaningful and some‐ times
unpredictable impact on other elements.
• The system changes over time and is unpredictable. It produces behavior that is greater
than the behavior of its individual components. It adapts to changing contexts,
environments, and stimuli.
• Holistic system means that various systems should be viewed as whole.
STANDARDIZATION AND COORDINATION
• Standardizing process: The Agile methodology is a great example of process standardization. In
addition to process standardization, most companies employ some form of tool standardization
• Standardizing outputs : We can define a team as a group of workers who take a set of inputs and
transform them into one or more outputs. Output standardization is way of setting a universal
standard for what that output should look like. In the microservices context, output
standardization often means developing some standards for the APIs that expose the services.
• Standardizing people: You can also decide to standardize the types of people that do the work
within your organization. For example, you could introduce a minimum skill requirement for
anyone who wants to work on a microservice team.
• Standardization trade-offs: Standardizing helps you exert influence over your system, but you don’t
have to choose just one of these standards to utilize. Eg: Decide to standardize on the APIs To do
this you might prescribe a set of rules for the types of APIs that developers are allowed to create
and institute a review process to police this standardization. As an example, many organizations
standardize a way of documenting the interfaces that are created. Now Open API is a popular
example of an interface description language, but there are many others (WADL, Blueprint, RAML,
etc.).
A MICROSERVICES DESIGN PROCESS
• The very first step of a service design process is to design the process itself
• Set Optimization Goals : A single optimization goal (like the 34 | Chapter 3:
Designing Microservice Systems Vision Zero goal of zero traffic-related fatalities)
provides the most clarity and has a higher likelihood of succeeding.
• Eg: a financial information system might be optimized for reliability and security
above all other factors. That doesn’t mean that changeability, usability, and other
system qualities are unimportant—it simply means that the designers will always
make decisions that favor security and reliability above all other things.
• Development Principles : Principles outline the general policies, constraints, and
ideals that should be applied universally to the actors within the system to guide
decision-making and behavior
Sketch the System Design : The goal is to sketch out the core parts of your
system, including organizational structure, the solution architecture, the
service design and the processes and tools. Sketching is powerful when the
risk of starting over is small. Good sketches are easy to make and easy to
destroy, so avoid modeling your system in a way that requires a heavy
investment of time or effort
Implement, Observe, and Adjust : Designers make small system changes,
assess the impact of those changes, and continually prod the system behavior
toward a desired outcome. And design process is predicated on your ability to
get feedback from the system you are designing
CHAPTER 4
Establishing A Foundation
What We Are Going To See In
Establishing A Foundation Module.
WHAT IS ESTABLISHING A FOUNDATION?
• We have a general model for establishing complex systems, we also need to produce
goals, principles, and guidelines for designing the system. A common challenge in
creating a microservice architecture for your company is finding the right set of
principles to govern the work.
• In this module we’ll review a capabilities model for microservices environments.
• The platform that represents the tools and services you provide your developer
and operations teams to allow them to meet their objectives. The quality and fit of
these tools has an important impact on your teams’ productivity. We will also review how
company culture—including team size—can affect the resulting output of your teams.
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.
We will look at some general goals
for a microservice architecture
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.
1. Reduce Cost
2. Increase release speed
3. Improve resilience
4. Enable Visibility.
5. Trade Offs.
OPERATING PRINCIPLES
• Along with a set of goals for a microservice approach, it is important to have a set of
principles. Unlike goals, which are general, principles offer more concrete
guidance on how to act in order to achieve those goals. Principles are not rules—they
don’t setout required elements.
• Principles can also be used to inform best practices.
• Many of the organizations we looked at when doing research have their own
set of principles within their company.
OPERATING PRINCIPLES
Invoking Conway’s law, an organization structured with independent self-contained cells of engineers
will naturally build what is now called a microservice architecture.
Below are the three key principles: antifragility, immutability, and separation of concerns.
Some of these same ideas were expressed in slightly different terms in 1978by Douglas McIlroy when
describing the Unix operating system.
• Antifragility.
• Immutability.
• Separation of Concerns.
UNIX
• “UNIX Timesharing System” documentation. The four points were offered as a set of
“maxims that have gained currency among the builders and users of the Unix system.”
• Make each program do one thing well. To do a new job, build afresh rather than
complicate old programs by adding new features.
• Expect the output of every program to become the input to another, yet unknown,
program.
• Design and build software, even operating systems, to be tried early, ideally within
weeks.
• Use tools in preference to unskilled help to lighten a programming task, even if you must
detour to build the tools and expect to throw some of them out after you’ve finished using
them.
SUGGESTED PRINCIPLES.
• Having a set of principles to guide software developers and architects makes a lot of sense.
• It offers a set of eight principles that reflects aspects of the other examples we’ve
looked at so far. You can use these as starter material in putting together your own
unique set for your company, or tune these until they fit.
1. Do one thing well. 5. Try Early.
2. Build Afresh. 6. Don’t hesitate to throw it away.
3. Expect output to become input. 7. Toolmaking.
4. Don’t insist on interactive input.
PLATFORMS
• Along with a set of general goals and concrete principles, you’ll need tangible tools to
make them real—a platform with which to make your microservice environment a
reality. From a microservice architecture perspective, good platforms increase the
harmonic balance between speed and safety of change at scale.
• With a platform we pass from the conceptual world to the actual world.
• Instead of focusing on a single existing company’s platform, we’ll look at a general
model for microservice platforms. One of the ones we like was described by Adrian
Cockcroft in 2014.
• He outlined a set of capabilities that he said all microservice implementations need to
deal with, which he called “microservice concerns.” We will divide them into two
groups: shared capabilities and local capabilities.
SHARED CAPABILITIES
It’s common in large enterprises to create a shared set of services for everyone to use.
These are typically centered around the common infrastructure for the organization.
1. Hardware Services.
2. Code management, testing and deployment.
3. Data Stores.
4. Service Orchestration.
5. Security and Identity.
6. Architectural Policy.
LOCAL CAPABILITIES
Local capabilities are the ones that are selected and maintained at the team or group
level. One of the primary goals of the local capabilities set is to help teams become
more self-sufficient. This allows them to work at their own pace and reduces the
number of blocking factors a team will encounter while they work to accomplish their
goals.
1. General Tooling.
2. Runtime Configuration.
3. Service Discovery.
4. Request Routing.
5. System Observability.
CULTURE
Culture is important because it not only sets the tone for the way people behave inside
an organization, but it also affects the output of the group. The code your team
produces is the result of the culture.
1. Communication.
2. Team Alignment.
3. Fostering Innovation.
Microservices Architecture

More Related Content

What's hot

AWS January 2016 Webinar Series - Introduction to Docker on AWS
AWS January 2016 Webinar Series - Introduction to Docker on AWSAWS January 2016 Webinar Series - Introduction to Docker on AWS
AWS January 2016 Webinar Series - Introduction to Docker on AWSAmazon Web Services
 
Monitoring using Prometheus and Grafana
Monitoring using Prometheus and GrafanaMonitoring using Prometheus and Grafana
Monitoring using Prometheus and GrafanaArvind Kumar G.S
 
Kubernetes
KubernetesKubernetes
KubernetesHenry He
 
Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...Adrian Todorov
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101Hazzim Anaya
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICDKnoldus Inc.
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsGlobalLogic Ukraine
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureAbdelghani Azri
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideBytemark
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...Simplilearn
 
Kubernetes Installation on Ubuntu | Edureka
Kubernetes Installation on Ubuntu | EdurekaKubernetes Installation on Ubuntu | Edureka
Kubernetes Installation on Ubuntu | EdurekaEdureka!
 
Prometheus
PrometheusPrometheus
Prometheuswyukawa
 

What's hot (20)

AWS January 2016 Webinar Series - Introduction to Docker on AWS
AWS January 2016 Webinar Series - Introduction to Docker on AWSAWS January 2016 Webinar Series - Introduction to Docker on AWS
AWS January 2016 Webinar Series - Introduction to Docker on AWS
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Devops
DevopsDevops
Devops
 
Monitoring using Prometheus and Grafana
Monitoring using Prometheus and GrafanaMonitoring using Prometheus and Grafana
Monitoring using Prometheus and Grafana
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOps
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
 
Kubernetes Installation on Ubuntu | Edureka
Kubernetes Installation on Ubuntu | EdurekaKubernetes Installation on Ubuntu | Edureka
Kubernetes Installation on Ubuntu | Edureka
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Prometheus
PrometheusPrometheus
Prometheus
 

Similar to Microservices Architecture

Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesAngelos Kapsimanis
 
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Surviving as a Monolith in a Microservices World - by Blair Olynyk, HyperwalletSurviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Surviving as a Monolith in a Microservices World - by Blair Olynyk, HyperwalletHyperwallet
 
Microservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design PatternMicroservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design Patternjeetendra mandal
 
Constructing Microservice Architecture.pptx
Constructing Microservice Architecture.pptxConstructing Microservice Architecture.pptx
Constructing Microservice Architecture.pptxPlektonLabs
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMohammedShahid562503
 
Discussion About Microservices Architecture
Discussion About Microservices ArchitectureDiscussion About Microservices Architecture
Discussion About Microservices ArchitectureRalph Osmond Rimorin
 
Overcoming Ongoing Digital Transformational Challenges with a Microservices A...
Overcoming Ongoing Digital Transformational Challenges with a Microservices A...Overcoming Ongoing Digital Transformational Challenges with a Microservices A...
Overcoming Ongoing Digital Transformational Challenges with a Microservices A...Cognizant
 
Practical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfAhmed Misbah
 
Pitfalls & Challenges Faced During a Microservices Architecture Implementation
Pitfalls & Challenges Faced During a Microservices Architecture ImplementationPitfalls & Challenges Faced During a Microservices Architecture Implementation
Pitfalls & Challenges Faced During a Microservices Architecture ImplementationCognizant
 
Software architectures
Software architecturesSoftware architectures
Software architecturesAmandeep Singh
 
Steve Tuppen - Digital Service Management
Steve Tuppen - Digital Service ManagementSteve Tuppen - Digital Service Management
Steve Tuppen - Digital Service ManagementitSMF UK
 
The Value of Next Generation Managed Services
The Value of Next Generation Managed ServicesThe Value of Next Generation Managed Services
The Value of Next Generation Managed ServicesCloudHesive
 
Phil Green - We're migrating to the cloud - Who needs service management
Phil Green - We're migrating to the cloud - Who needs service managementPhil Green - We're migrating to the cloud - Who needs service management
Phil Green - We're migrating to the cloud - Who needs service managementitSMF UK
 
Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Jesper Nordström
 
Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...3gamma
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final finalgaurav shukla
 

Similar to Microservices Architecture (20)

Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based Architectures
 
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Surviving as a Monolith in a Microservices World - by Blair Olynyk, HyperwalletSurviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
 
Microservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design PatternMicroservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design Pattern
 
Microservices
MicroservicesMicroservices
Microservices
 
Constructing Microservice Architecture.pptx
Constructing Microservice Architecture.pptxConstructing Microservice Architecture.pptx
Constructing Microservice Architecture.pptx
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptx
 
Discussion About Microservices Architecture
Discussion About Microservices ArchitectureDiscussion About Microservices Architecture
Discussion About Microservices Architecture
 
Overcoming Ongoing Digital Transformational Challenges with a Microservices A...
Overcoming Ongoing Digital Transformational Challenges with a Microservices A...Overcoming Ongoing Digital Transformational Challenges with a Microservices A...
Overcoming Ongoing Digital Transformational Challenges with a Microservices A...
 
COMPOSABLE COMPANY.pptx
COMPOSABLE COMPANY.pptxCOMPOSABLE COMPANY.pptx
COMPOSABLE COMPANY.pptx
 
Practical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdf
 
Pitfalls & Challenges Faced During a Microservices Architecture Implementation
Pitfalls & Challenges Faced During a Microservices Architecture ImplementationPitfalls & Challenges Faced During a Microservices Architecture Implementation
Pitfalls & Challenges Faced During a Microservices Architecture Implementation
 
What are microservices
What are microservicesWhat are microservices
What are microservices
 
Software architectures
Software architecturesSoftware architectures
Software architectures
 
Steve Tuppen - Digital Service Management
Steve Tuppen - Digital Service ManagementSteve Tuppen - Digital Service Management
Steve Tuppen - Digital Service Management
 
The Value of Next Generation Managed Services
The Value of Next Generation Managed ServicesThe Value of Next Generation Managed Services
The Value of Next Generation Managed Services
 
Phil Green - We're migrating to the cloud - Who needs service management
Phil Green - We're migrating to the cloud - Who needs service managementPhil Green - We're migrating to the cloud - Who needs service management
Phil Green - We're migrating to the cloud - Who needs service management
 
Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...
 
Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final final
 
SOA
SOASOA
SOA
 

Recently uploaded

The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting DataJhengPantaleon
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfakmcokerachita
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 

Recently uploaded (20)

The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdf
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 

Microservices Architecture

  • 3. CONTENTS • Why Microservices? • What is Microservice Architecture? • Features of Microservice Architecture. • Advantages of Microservice Architecture. • Companies using Microservices.
  • 5. BEFORE MICROSERVICES – MONOLITHIC ARCHITECTURE • Monolithic Architecture is like a big container wherein all the software components of an application are assembled together and tightly packaged.
  • 12. WHAT IS MICROSERVICE ARCHITECTURE?
  • 13. WHAT IS MICROSERVICE ARCHITECTURE ? • Microservice architecture is an architectural style that structures an application as a COLLECTION OF SMALL AUTONOMOUS SERVICES modelled around a BUSINESS DOMAIN. • In Microservice Architecture, each service is self - contained and implements a Single Business capability.
  • 22. CHAPTER 2 THE MICROSERVICES VALUE PROPOSITION
  • 23. MICROSERVICE ARCHITECTURE BENEFITS • Better resiliency Implementing microservice-based architecture adds ease to the process of identifying and resolving the root cause of performance issues. • Improved productivity Breaking an application down into smaller autonomous fragments makes it easier to build and maintain. Each service can be developed, deployed, and managed independently, and can utilize different programming languages, different technology, and different software environments based on the needs of each.
  • 24. • Increased scalability The fact that each service can be written in a different language or technology allows DevOps teams to choose the most appropriate tech stack for each module without concerns about incompatibility. • Continuous integration/continuous delivery (CI/CD) The ability to share the workflow burden and automate manual processes shortens the overall lifecycle of the development process. • Optimize business functionality Existing services can then be adapted for use in different contexts without recreating an entire module from scratch.
  • 25. DERIVING BUSINESS VALUE • Business value, by definition, is a tangible or intangible benefit that can be realized by the stakeholder of a project. • Tangible business value focuses on how the project affects the income statement, through reducing costs or increasing revenue. Equally important, intangible value covers productivity enhancements, key differentiators, and customer satisfaction, like improving hiring efficiency of an organization.
  • 26. 3 STEPS TO SHOW BUSINESS VALUE 1. Understanding and identifying the business vision 2. Gather necessary data and develop insights 3. Articulate business value for stakeholders
  • 27. 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. • Stronger resilience and higher availability ensure a good customer experience. • Better runtime scalability allows the software system to grow or shrink with the business. • Improved testability allows the business to mitigate implementation risks.
  • 28. DEFINING A GOAL-ORIENTED, LAYERED APPROACH • Modularized Microservice Architecture • Cohesive Microservice Architecture • Systematized Microservice Architecture
  • 29. MATURITY MODEL FOR MICROSERVICE ARCHITECTURE GOALS AND BENEFITS • They describe the practices that any organization must perform in order to improve its processes. • They provide a yardstick against which to periodically measure improvement. • They constitute a proven framework within which to manage the improvement efforts.
  • 30.
  • 31. APPLYING THE GOAL-ORIENTED, LAYERED APPROACH • define the high-level business objectives you want to accomplish, and then weigh these against the dual goals of speed and safety. • Consider the distinct benefits you are targeting. You can then use the maturity model to determine the complexity of the goal, and identify the best approach to achieve it. • reducing QA time through automation and a switch in methodology from white-box to black-box testing.
  • 33. • Building microservice is way more than just implement small components • We know that there isn’t a strict definition for what constitutes a microservice architecture. • Instead, the focus is on building applications that balance speed and safety at scale, primarily through replaceability • The basic concept of a microservice architecture might be smaller services, but following the microservices way will require you to think big. • I.e Designing microservice depends on culture, organization, architecture, interfaces, and services in just the right way to gain the balance of speed and safety at scale • We don't need to be expert in all these, instead we use a design driven approach in this chapter
  • 34. THE SYSTEMS APPROACH TO MICROSERVICES • Why system approach : Emergence behavior • Eg. Each people who work, the way they work, and the outputs they produce are all important system factors (technical term: service coordination, error handling, and operational practices) many create complexity. • Model-based approach can help and make it easier for us talk about the parts of the system. • This microservice design model comprised of five parts: Service, Solution, Process and Tools, Organization, and Culture.
  • 37. SERVICE • Well-designed service in term of design, scope and granularity in will be able to induce complex behavior from a set of from a set of components that are deceptively simple. • Service should be atomic building blocks from which the entire application is built.
  • 39. PROCESS AND TOOLS • Choosing the right processes and tools is an important factor in producing good microservice system behavior. • In the microservice’s system, this usually includes tooling and processes related to software development, code deployment, maintenance, and product management. • As they are highly linked with each other, and they can directly / indirectly affect the performance of the application in term of development and run time. • For example, adopting standardized processes like DevOps and Agile or tools like Docker containers can increase the changeability of your system
  • 41. CULTURE • We can broadly define culture as a set of values, beliefs, or ideals that are shared by all of the workers within an organization. Your organization’s culture is important because it shapes all of the atomic decisions that people within the system will make. • Shared ideals shape how people do their work and how they work will in turn shape their organizational view. This is the interconnected nature of the system. • Much like organizational design, culture is a context-sensitive feature of your system. • Eg: What works in Japan may not work in the United States and what works in a large insurance firm may not work at an ecommerce company. • For better understanding, similar result may be obtained by following different culture, but it may not be efficient. • Layman term: Culture - Even clothes are different, its task is to cover body. Which may be comfortable to individual which they are used to.
  • 43. ORGANISATIONAL DESIGN • How we work is often a product of who we work with and how we communicate. • From a microservice system perspective, organizational design includes the structure, direction of authority, granularity, and composition of teams. • A good microservice system designer understands the implications of changing these organizational properties and knows that good service design is a byproduct of good organizational design. • But organizational design is incredibly context-sensitive, and you may find yourself in a terrible situation if you try to model your 500+ employee enterprise structure after a 10-person startup
  • 45. SOLUTION • A solution architecture is distinct from the individual service design elements because it represents a macro view of our solution. • When designing a particular microservice your decisions are bounded by the need to produce a single output—the service itself. • Conversely, when designing a solution architecture your decisions are bounded by the need to coordinate all the inputs and outputs of multiple services. • For better understanding, some sort of standardization to be maintained for entire atomic services.
  • 46. EMBRACING CHANGE • All of the decisions you make about the organization, culture, processes, services, and solutions should be rooted in the notion that change is inevitable • You cannot afford to be purely deterministic in your system design; instead, you should design adaptability into the system as a feature. • A good microservice designer understands the need for adaptability and endeavors to continually improve the system instead of working to simply produce a solution.
  • 47. PUTTING IT TOGETHER: THE HOLISTIC SYSTEM • The microservices system is complex and teasing desirable behaviors and outcomes from that system isn’t an easy task. But some organizations have had enormous success in doing so and we can learn from their examples • When put together all of these design elements form the microservices system. They are interconnected and a change to one element can have a meaningful and some‐ times unpredictable impact on other elements. • The system changes over time and is unpredictable. It produces behavior that is greater than the behavior of its individual components. It adapts to changing contexts, environments, and stimuli. • Holistic system means that various systems should be viewed as whole.
  • 48. STANDARDIZATION AND COORDINATION • Standardizing process: The Agile methodology is a great example of process standardization. In addition to process standardization, most companies employ some form of tool standardization • Standardizing outputs : We can define a team as a group of workers who take a set of inputs and transform them into one or more outputs. Output standardization is way of setting a universal standard for what that output should look like. In the microservices context, output standardization often means developing some standards for the APIs that expose the services. • Standardizing people: You can also decide to standardize the types of people that do the work within your organization. For example, you could introduce a minimum skill requirement for anyone who wants to work on a microservice team. • Standardization trade-offs: Standardizing helps you exert influence over your system, but you don’t have to choose just one of these standards to utilize. Eg: Decide to standardize on the APIs To do this you might prescribe a set of rules for the types of APIs that developers are allowed to create and institute a review process to police this standardization. As an example, many organizations standardize a way of documenting the interfaces that are created. Now Open API is a popular example of an interface description language, but there are many others (WADL, Blueprint, RAML, etc.).
  • 49. A MICROSERVICES DESIGN PROCESS • The very first step of a service design process is to design the process itself • Set Optimization Goals : A single optimization goal (like the 34 | Chapter 3: Designing Microservice Systems Vision Zero goal of zero traffic-related fatalities) provides the most clarity and has a higher likelihood of succeeding. • Eg: a financial information system might be optimized for reliability and security above all other factors. That doesn’t mean that changeability, usability, and other system qualities are unimportant—it simply means that the designers will always make decisions that favor security and reliability above all other things. • Development Principles : Principles outline the general policies, constraints, and ideals that should be applied universally to the actors within the system to guide decision-making and behavior
  • 50. Sketch the System Design : The goal is to sketch out the core parts of your system, including organizational structure, the solution architecture, the service design and the processes and tools. Sketching is powerful when the risk of starting over is small. Good sketches are easy to make and easy to destroy, so avoid modeling your system in a way that requires a heavy investment of time or effort Implement, Observe, and Adjust : Designers make small system changes, assess the impact of those changes, and continually prod the system behavior toward a desired outcome. And design process is predicated on your ability to get feedback from the system you are designing
  • 52. What We Are Going To See In Establishing A Foundation Module.
  • 53. WHAT IS ESTABLISHING A FOUNDATION? • We have a general model for establishing complex systems, we also need to produce goals, principles, and guidelines for designing the system. A common challenge in creating a microservice architecture for your company is finding the right set of principles to govern the work. • In this module we’ll review a capabilities model for microservices environments. • The platform that represents the tools and services you provide your developer and operations teams to allow them to meet their objectives. The quality and fit of these tools has an important impact on your teams’ productivity. We will also review how company culture—including team size—can affect the resulting output of your teams.
  • 54.
  • 55. 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. We will look at some general goals for a microservice architecture
  • 56. 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. 1. Reduce Cost 2. Increase release speed 3. Improve resilience 4. Enable Visibility. 5. Trade Offs.
  • 57. OPERATING PRINCIPLES • Along with a set of goals for a microservice approach, it is important to have a set of principles. Unlike goals, which are general, principles offer more concrete guidance on how to act in order to achieve those goals. Principles are not rules—they don’t setout required elements. • Principles can also be used to inform best practices. • Many of the organizations we looked at when doing research have their own set of principles within their company.
  • 58. OPERATING PRINCIPLES Invoking Conway’s law, an organization structured with independent self-contained cells of engineers will naturally build what is now called a microservice architecture. Below are the three key principles: antifragility, immutability, and separation of concerns. Some of these same ideas were expressed in slightly different terms in 1978by Douglas McIlroy when describing the Unix operating system. • Antifragility. • Immutability. • Separation of Concerns.
  • 59. UNIX • “UNIX Timesharing System” documentation. The four points were offered as a set of “maxims that have gained currency among the builders and users of the Unix system.” • Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new features. • Expect the output of every program to become the input to another, yet unknown, program. • Design and build software, even operating systems, to be tried early, ideally within weeks. • Use tools in preference to unskilled help to lighten a programming task, even if you must detour to build the tools and expect to throw some of them out after you’ve finished using them.
  • 60. SUGGESTED PRINCIPLES. • Having a set of principles to guide software developers and architects makes a lot of sense. • It offers a set of eight principles that reflects aspects of the other examples we’ve looked at so far. You can use these as starter material in putting together your own unique set for your company, or tune these until they fit. 1. Do one thing well. 5. Try Early. 2. Build Afresh. 6. Don’t hesitate to throw it away. 3. Expect output to become input. 7. Toolmaking. 4. Don’t insist on interactive input.
  • 61. PLATFORMS • Along with a set of general goals and concrete principles, you’ll need tangible tools to make them real—a platform with which to make your microservice environment a reality. From a microservice architecture perspective, good platforms increase the harmonic balance between speed and safety of change at scale. • With a platform we pass from the conceptual world to the actual world. • Instead of focusing on a single existing company’s platform, we’ll look at a general model for microservice platforms. One of the ones we like was described by Adrian Cockcroft in 2014. • He outlined a set of capabilities that he said all microservice implementations need to deal with, which he called “microservice concerns.” We will divide them into two groups: shared capabilities and local capabilities.
  • 62. SHARED CAPABILITIES It’s common in large enterprises to create a shared set of services for everyone to use. These are typically centered around the common infrastructure for the organization. 1. Hardware Services. 2. Code management, testing and deployment. 3. Data Stores. 4. Service Orchestration. 5. Security and Identity. 6. Architectural Policy.
  • 63. LOCAL CAPABILITIES Local capabilities are the ones that are selected and maintained at the team or group level. One of the primary goals of the local capabilities set is to help teams become more self-sufficient. This allows them to work at their own pace and reduces the number of blocking factors a team will encounter while they work to accomplish their goals. 1. General Tooling. 2. Runtime Configuration. 3. Service Discovery. 4. Request Routing. 5. System Observability.
  • 64. CULTURE Culture is important because it not only sets the tone for the way people behave inside an organization, but it also affects the output of the group. The code your team produces is the result of the culture. 1. Communication. 2. Team Alignment. 3. Fostering Innovation.