- Building Microservices with .NET Core 2.0(Second Edition)
- Gaurav Aroraa
- 454字
- 2021-07-02 20:12:54
Challenges in standardizing a .NET stack
In monolithic application technology, stack dependency stops the introduction of the latest technologies from the outside world. The present stack poses challenges as a web service itself suffers from some challenges:
- Security: There is no way to identify the user via web services (no clear consensus on a strong authentication scheme). Just imagine a banking application sending unencrypted data containing user credentials without encryption. All airports, cafes, and public places offering free Wi-Fi could easily become victims of increased identity theft and other cybercrimes.
- Response time: Though the web services themselves provide some flexibility in the overall architecture, it quickly diminishes due to the high processing time taken by the service itself. So, there is nothing wrong with the web service in this scenario. It is a fact that a monolithic application involves huge code; complex logic makes the response time of a web service high, and therefore, unacceptable.
- Throughput rate: This is on the higher side, and as a result, hampers subsequent operations. A checkout operation relying on a call to the inventory web service that has to search for a few million records is not a bad idea. However, when the same inventory service feeds the main product searching/browsing for the entire portal, it could result in a loss of business. One service call failure out of ten calls would mean a 10% lower conversion rate for the business.
- Frequent downtime: As the web services are part of the whole monolith ecosystem, they are bound to be down and unavailable each time there is an upgrade or an application failure. This means that the presence of any B2B dependency from the outside world on the application's web services would further complicate decision-making, thereby seeking downtime. This absolutely makes the smaller upgrades of the system look expensive; thus, it further increases the backlog of the pending system upgrades.
- Technology adoption: In order to adopt or upgrade a technology stack, it would require the whole application to be upgraded, tested, and deployed, since modules are interdependent and the entire code base of the project is affected. Consider the payment gateway module using a component that requires a compliance-related framework upgrade. The development team has no option but to upgrade the framework itself and carefully go through the entire code base to identify any code breaks preemptively. Of course, this would still not rule out a production crash, but this can easily make even the best of the architects and managers sweat and lose some sleep.
Availability: A percentage of time during which a service is operating.
Response time: The time a service takes to respond.
Throughput: The rate of processing requests.
推薦閱讀
- DBA攻堅指南:左手Oracle,右手MySQL
- Cocos2D-X權威指南(第2版)
- Docker技術入門與實戰(第3版)
- Getting Started with PowerShell
- Responsive Web Design with HTML5 and CSS3
- MATLAB定量決策五大類問題
- 零基礎學Python數據分析(升級版)
- Working with Odoo
- Web Development with MongoDB and Node(Third Edition)
- Python深度學習原理、算法與案例
- FFmpeg開發實戰:從零基礎到短視頻上線
- C++從入門到精通(第6版)
- Learning iOS Security
- WebStorm Essentials
- Python面向對象編程(第4版)