Senior Software Engineer
Microservices architecture systems are much discussed in today’s times. Many large enterprises in the world have seen enormous success after the adoption of microservices. These organizations meet their scaling and agility goals easily by adopting microservices.
While the main premise of this article will be the discussion of the Uber microservices architecture, we will also discuss the key concepts that govern the microservices architecture and the pros and cons of this software system framework.
Microservices is a software architecture system that consists of small independent services, each of which performs a business function. Each of the independent business services is built on a technology stack that is most suited to the function.
In a monolithic software architecture system, a large piece of cohesive code carries out all the functions. The code is tightly coupled together and is difficult to untangle. Though a monolith carries out a number of functions, adding new code or modifying existing code can be a burden. With more upgrades, the coding becomes more complicated till it becomes impossible at one stage.
Before designing a microservices system, it is vital to have a clear understanding of the scope of the services and the functionalities of the application at hand.
What does it take to seal the many vulnerable points in the microservices architecture? Read our blog titled, "Microservices Architecture Security Best Practices and Patterns" now!
The components of the microservices architecture can be briefly described as follows:
Clients: The architecture has different types of clients with different management functions, such as build, search, and configure, among others.
Identity Providers: They authenticate client requests and pass them to the internal services via an API gateway.
API Gateway: This is the entry point for clients to send requests to specific microservices. The advantages of doing this include the ability to update services without letting the clients know, the ability of the services to use message protocols that are not web friendly, and making use of the ability of the gateways to provide cross-cutting functions such as load balancing and providing security.
Messaging Formats: The API gateway uses both synchronous (REST and HTTP) and asynchronous (AMQP, STOMP, MQTT) message formats to communicate.
Databases: Each of the microservices has its own database to capture the data and implement the business function. The databases of a microservice are updated via their service API only.
Static Content: Once the microservices communication is over within the services themselves, the static content is then delivered to cloud-based storage. This is delivered to clients via CDN systems.
Management: The management component balances the services on nodes and identifies failures.
Service Discovery: This acts as a guide to the microservices to ascertain the communication route between the services. Basically, it maintains a list of the services that have nodes located on them.
Just as many other start-ups do, Uber first started off with a monolithic software architecture framework in place. However, this system was initially manageable as it took care of the cab hailing operations inside a single city.
However, Uber soon started expanding their operations worldwide and the problems started. The scalability and continuous integration aspects were soon affected.
All the different functions, such as passenger/trip/driver management, billing and payments, notifications, etc., were all composed within one framework.
These were the main problems faced by the monolithic software framework that UBER worked with.
UBER decided to follow in the footsteps of other big giants like Amazon and Netflix and transition into microservices architecture. This meant multiple codebases from a single one and each of the microservices constructed to manage a single business function.
The introduction of the API gateway connected passengers and drivers. Similarly, from the gateway, other internal points, such as passenger/driver/trip management, and other internal points are connected.
All the units are designed to perform their functions independently.
Every feature could be scaled independently of the other. As an example, the number of people searching for taxis is greater than the number of people that actually book the cab services and make the payments. This also means that the number of processes that handle passenger management is greater than the number that manages the payment processes.
UBER broke down its monolith into cloud-based microservices for each of the functionalities and connected these via an API gateway.
The UBER microservices architecture shift paid off well for the company. The company then went on to develop and implement global standards that have been of great help to organizations that followed in their footsteps.
Are you looking for top-rated microservices development for your organization? We, at SayOne Technologies, can help you!
How to find the best microservices development company
What Kind of Challenges Can Microservices Help You Overcome
Why Business leaders should care about Microservices
Should you migrate from monolith to microservices architecture
The 5 Best Microservices Technologies List
Microservices Architecture – 5 things it is not
Advantages of Microservices Architecture, Disadvantages of Microservices Architecture
5 Microservices Examples: Amazon, Netflix, Uber, Spotify and Etsy
SOA vs. Microservices: What's the Difference?
Microservices and DevOps – Better together: What are the benefits
Uber Microservices Architecture
Future Scope of Microservices
Microservices at eBay
Imagine you enter a store, and the salesperson begins to show products of the kind that you were looking for, they recommend the product with colours of your liking and style of your preference. In short, you get everything that can make your shopping exp
It would be an understanding to say that the world is under crisis of unseen proportions, at least for the majority of the presents generations.
We collaborate with visionary leaders on projects that focus on quality and require the expertise of a highly-skilled and experienced team.