Hello, I want to write this
blog after looking over some class activities again and seeing any questions to
review, but something caught my attention. I read the word
“microservices” in some class-work exercises; I got interested and
looked it up again. I found two links that helped me understand What are
microservices? And examples from Amazon company.
What are microservices?
Microservices (microservice architecture) – is an
architectural method that structures an application as a collection of services
that are
- Highly maintainable and testable
- Loosely linked
- Individually deployable
- Organized around business capabilities
- Owned by a small team
The microservice architecture makes applications easier
to scale and faster to develop, enabling innovation and accelerating
time-to-market for new features to reduce complex applications. It even allows
an organization to evolve its technology stack.
The pattern language guide
The microservice architecture isn’t perfect; It has
several problems. Moreover, when using this architecture, many issues must
address.
The microservice architecture pattern language is a set
of patterns for applying the microservice architecture. It has two goals:
- The pattern language allows whether microservices are a good place for application.
- The pattern language allows the microservice
architecture favorably.
Characteristics of Microservices
- Autonomous – Each element set in a
microservices architecture can be developed, deployed, operated, and scaled
without affecting the functioning of other benefits. Services don’t need to
share any code or implementation with other services. Any connection between
individual components happens through APIs. - Specialized – Each service is designed
for a collection of capabilities and focuses on solving a specific problem.
Benefits of Microservices
- Agility – promote an organization of small and
independent teams that take ownership of their services. Groups work in a small
and well-understood context and are allowed to work independently and fast. It
helps to shorten construction cycle times. It benefits significantly from the
throughput of the organization. - Flexible Scaling – Each service is to be
independently scaled to meet the demand for its support application. It enables
teams to support requirements, precisely measure the cost of a feature, and
manage availability if a service experiences a spike in demand. - Easy Deployment – Enable continuous combination
and delivery, helps try out new ideas, and rolls back if something doesn’t work.
The low cost of failure enables experimentation to update code and stimulates
time-to-market for new features. - Technological Freedom – It doesn’t follow a
“one size fits all” plan. Teams have chosen the best tool to solve
specific problems. - Reusable Code – Dividing software into small
modules, which enables teams to use functions for multiple purposes. - Resilience – Service independence increases an
application’s stand to failure. With microservices, applications handle
complete service failure by discrediting functionality and not crashing the
entire application.
From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.