- 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.
推薦閱讀
- Web應用系統開發實踐(C#)
- C語言程序設計實訓教程
- JavaScript+jQuery開發實戰
- Responsive Web Design with HTML5 and CSS3
- Big Data Analytics
- 精通Python設計模式(第2版)
- Spring Boot+Vue全棧開發實戰
- Spring技術內幕:深入解析Spring架構與設計原理(第2版)
- Kotlin Programming By Example
- Visual Basic程序設計全程指南
- Instant GLEW
- Clojure Web Development Essentials
- C#程序開發參考手冊
- Python深度學習與項目實戰
- Learning Dynamics NAV Patterns