- Microservices with Azure
- Namit Tanasseri Rahul Rai
- 498字
- 2021-07-02 22:18:20
The Microservice advantage
Every application has a shelf life, after which it is either upgraded or replaced with another application with evolved capabilities or which is a better fit for changing business needs. The agility in businesses has reduced this shelf life further by a significant factor. For instance, if you are building an application for distributing news feeds among employees within a company, you would want to build quicker prototypes and get feedback on the application sooner than executing an elaborate design and plan phase. This, of course, will be with the cognizance that the application can be further optimized and revised iteratively. This technique also comes in handy when you are building a consumer application where you are unsure of the scale of growth in the user base. An application such as Facebook, which grew its user base from a couple of million to 1,500 million in a few years would have been impossible to plan for, if the architecture was not well architected to accommodate future needs. In short, modern-day applications demand architectural patterns which can adapt, scale and gracefully handle changes in workload.
To understand the benefits of Microservices architecture for such systems, we will require a brief peek at its predecessor, monolithic architecture. The term monolith stands for a single large structure. A typical client-server application for the previous era would use a tiered architecture. Tiers would be decoupled from one another and would use contracts to communicate with each other. Within a tier, components or services would be packed with high cohesion, making them interdependent on each other.
The following diagram illustrates a typical monolithic application architecture:

This works fine in simpler systems which are aimed to solve a static problem catering to a constant user base. The downside is that the components within a tier cannot scale independently, neither can they be upgraded or deployed separately. The tight coupling also prevents the components from being reused across tiers. These limitations introduce major roadblocks when a solution is expected to be agile by nature.
Microservices architecture addresses these problems by decomposing tightly coupled monolithic ties to smaller services. Every Microservice can be developed, tested, deployed, reused, scaled, and managed independently. Each of these services will align to a single business functionality. The development team authoring a service can work independently with the customer to elicit business requirements and build the service with the technology best suited to the implementation of that particular business scenario. This means that there are no overarching constraints around the choice of technology to be used or implementation patterns to be followed. This is perfect for an agile environment where the focus is more on delivering the business value over long-term architectural benefits. A typical set of enterprise applications may also share Microservices between them. The following diagram illustrates the architecture of such a Microservices-driven solution:

The following are a few key advantages of a Microservice architecture:
- SPSS數(shù)據(jù)挖掘與案例分析應(yīng)用實踐
- Unity 2020 Mobile Game Development
- 技術(shù)領(lǐng)導(dǎo)力:程序員如何才能帶團隊
- 深入淺出Windows API程序設(shè)計:編程基礎(chǔ)篇
- JavaScript by Example
- C語言程序設(shè)計
- Linux命令行與shell腳本編程大全(第4版)
- Unreal Engine 4 Shaders and Effects Cookbook
- Python深度學習原理、算法與案例
- 深入實踐Kotlin元編程
- 計算機應(yīng)用基礎(chǔ)項目化教程
- 創(chuàng)意UI Photoshop玩轉(zhuǎn)移動UI設(shè)計
- TypeScript圖形渲染實戰(zhàn):2D架構(gòu)設(shè)計與實現(xiàn)
- Hack與HHVM權(quán)威指南
- Mastering JavaScript