- 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.
推薦閱讀
- 數據庫系統原理及MySQL應用教程(第2版)
- VMware View Security Essentials
- 解構產品經理:互聯網產品策劃入門寶典
- DevOps入門與實踐
- GitLab Repository Management
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- Monitoring Elasticsearch
- 數據結構案例教程(C/C++版)
- 編程菜鳥學Python數據分析
- Python機器學習算法與應用
- JavaScript動態網頁編程
- Illustrator CS6設計與應用任務教程
- Laravel Design Patterns and Best Practices
- MongoDB Cookbook
- Python自動化開發實戰