- Building Microservices with .NET Core
- Gaurav Kumar Aroraa Lalit Kale Kanwar Manish
- 454字
- 2021-07-02 22:08:07
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 webservices (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 percent 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 is a percentage of time during which a service is operating.
Response time is the time a service responds.
Throughput is the rate of processing requests.
推薦閱讀
- Advanced Quantitative Finance with C++
- Hands-On Machine Learning with scikit:learn and Scientific Python Toolkits
- Learn Programming in Python with Cody Jackson
- HTML5與CSS3基礎教程(第8版)
- PHP編程基礎與實例教程
- 深入實踐Kotlin元編程
- SignalR:Real-time Application Development(Second Edition)
- HTML5與CSS3權威指南
- Spring Web Services 2 Cookbook
- Visual C#(學習筆記)
- 川哥教你Spring Boot 2實戰
- 趣學數據結構
- MATLAB從入門到精通
- Mathematica Data Visualization
- Implementing NetScaler VPX?(Second Edition)