Micro-Service architecture

There are two most common application architecture patterns.
Monolithic architecture,
Micro-service architecture,
This article for understand micro-service architecture. Micro-Service architecture is emerging thing as well as it takes lot of attention in this society. It is very useful and trending thing. It was introduced by Peter Rodgers in during his presentation about Micro web services at the web services edge conference. It is approach of a first realization of service oriented architecture that followed the introduction of DevOps. It is become more popular for creating continuously deployed systems approach. When we discuss about this topic, we can divide to few main points. Now I hope to discuss one by one in this article.
First we discuss scope of the micro service architecture. This is also known as micro services. It is not a layer of the monolithic application. It is development style an application. It is a type of the service oriented architecture structural style(SOA). As well as it provides collection of loosely coupled services. Moreover, with this micro services support only for function with resource constraints needs to be scales out. So it helps to give resources and cost utilization benefits.
Micro services architecture can supply rapid, quick, frequent, complex and reliable application. It also improves usage of technology in the organization. As well as it uses collection of patterns. To apply this pattern, it uses pattern language.
As well as next we consider about “why we use this architecture”. With time, company need able to quick change something in order to respond quickly and changes in business requirement, rather than other competitors. This micro services can help to achieve this task. As well as it can help to improve security and reliability of system. Moreover, not closely connect services allow to make changes with greater frequency, of iteration, as well as it reduce impact of changes on the rest of other system.
Moreover, micro service architecture solves many challenges of monolithic architecture. Monolithic architecture is a single, autonomous unit. I make changes to application slow as it affects the entire system. So it has large and complex code base. These are solving by this micro service architecture.
Next we discuss characteristics of micro service architecture. These characteristics are help to increase and make advantages. These characteristics are value of this architecture
.
a. Highly maintainable and testable b. Loosely coupled c. Independently deployable d. Organized around business capabilities e. Failure resistance f. Simple routing g. It is Distributed development. h. Organized around business Capabilities i. Decentralized Governance j. Stateless and Self Bootable
Now we discuss main point of the micro service architecture. It is advantages and disadvantage of micro service architecture. There many advantages in micro service architecture. Followings are few of advantages in micro service architecture.
The micro-service architecture is easier to design for complicated system. Because this architecture builds with using one or more small teams. These teams are separated by service boundaries. So it easier to scale up the development effort if need be. So it has small, Clean Codebase
It allows new members to train for shorter periods and have less context before touching the system.
The other advantages of micro-services are that since you are making everything service
oriented, all the services can be written in any language of choice. In future if your company decides
to use Python, you can use python for newer services while the older services are still on Java/.net. It
helps the company get more value over time by using latest software, stable software and productive
languages.
Deployments are fluid and continuous for each service. As well as it can use different data
storage techniques.
They allow decoupling service logic on the basis of business responsibility
They are more available as a single service having a bug does not bring down the entire
system. This is called a single point of failure
The developer teams can talk to each other through API sheets instead of working on the same
repository, which requires conflict resolution.
New services can be tested easily and individually. The testing structure is close to unit testing
compared to a monolithic.
This micro service architecture can help developers to deliver safer, quickly and higher quality
changes in system or applications.
Followings are disadvantages of this architecture. This architecture very less disadvantages
The technical/developer team is very small.
The service is simple to think of as a whole.
The service requires very high efficiency, where network calls are avoided as much as possible.
All developers must have context of all services.
Testing and deployment are more complicated.
Moving responsibilities between services is more difficult.
As well as it is more challenge to give support, if they are built with different technologies and tools. It is a special problem. Because engineers have to move between projects/services frequently.
Furthermore, even with Larger Systems, sometimes micro-services may not be always a good fit. For
example, in stream processing systems where processing is centered around per record based
processing and micro service calls would worsen the performance.
As well as, deployment of micro-services is far more complicated than monoliths. Because usually with Monoliths, it's a single unit of deployment but with micro-services depending on the scale and grain of the micro-services, there will be N number of deployments needed. It becomes difficult to keep track of the status of each service and in turn, knowing the readiness of the overall system will be a challenge.
Moreover, micro-services are a great fit for mobile and web applications but when it comes to Big
Data world, it would complicate the overall process. For example, In the Web applications, we mostly
deal with Web Server, Database and it’s easier to containerize them but when it comes to distributed
systems containerizing them will be a challenge.
There are many most common tools use in this architecture. Few of them are
Wiremock: to testing Micro services Docker Hystrix
As well as micro service architecture is best match for desktop, web, mobile devices, smart TV and wearable, etc.
Now consider about few examples of micro service architecture. This architecture used in many field in IT industry. As well as it used most common large scale websites like Facebook, Twitter, Netflix, Uber have advanced from a monolithic architecture to a micro services architecture.
If we consider Uber company, it began their journey with monolithic architecture like many startups to offer their services for single city. At this time, their core application consists of several autonomous comprises applications. Payment, navigation, ordering is example for that. If one application failure other application can work without failure. As well it coding structure is clean and simple.as well as these several autonomous applications, with each one existing the business logic for different function areas.
When we consider another example like amazon, they had big architectural change. They started their application using monolithic architecture. After the architectural change, they move from two- tier monolithic to a fully distributed, decentralized, services platform serving many different platforms.
Another example is a Walmart software architecture. That was design for the internet which was centered around desktop and laptops in 2005. After that it connected with mobiles, smart and IOT devices. Moreover, the form decides to re platform its legacy system in 2012 using micro-services architecture. With using this architecture, they set a target to achieve their services to 4 billion connections in 2020. As well as connect with this micro-service architecture, they identified their mobile orders increased by 98%. They achieved highest productivity. As well as they dropped their hardware cost by 20%-50% and the system used power of their computing less 40% than previously.
Another prominent example is Spotify. It is for built on efficient system and avoid challenges of monolithic complex architecture. At this moment, Spotify has over 80 million active users per month. So this user doesn’t need to think about service.
Moreover, micro service architecture is perfectly fit for payment related activities. Like PayPal.
As well as following image describe another example of micro service architecture. It describes mobile application. It displays several services and database connect with application.
As well as several frame works that supports with java. few of these are
Spring Boot Jersey Swagger
Furthermore, micro service architecture is quickly become more flexible way of building applications throughout industries. It is much more preferred and cheaper method of developing application. It can grow and evolves with company requirement while delivering consistent customer service. It is a summary of this article.
No comments:
Post a Comment
comment here