- 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.
推薦閱讀
- Python自然語言處理實戰:核心技術與算法
- 深入淺出Electron:原理、工程與實踐
- R語言數據可視化之美:專業圖表繪制指南
- SAS數據統計分析與編程實踐
- Building a Quadcopter with Arduino
- 零基礎入門學習Python
- 深入淺出PostgreSQL
- Visual C++開發入行真功夫
- Java Web開發就該這樣學
- Mastering Linux Security and Hardening
- Hands-On GUI Programming with C++ and Qt5
- OpenMP核心技術指南
- Go語言從入門到精通
- Tableau Desktop可視化高級應用
- Practical GIS