- Mastering ASP.NET Web API
- Mithun Pattankar Malendra Hurbuns
- 340字
- 2021-07-02 20:52:19
Overheads of Monolithic architecture
In the long run, enterprises faced these shortcomings when they applied Monolithic architecture to their systems:
- Due to the code base being so large, it took the teams longer to develop a new functionality within the application.
- Deployment of a large system can also be challenging, because even for a small bug fix, we have to deploy a new version of the entire system, and therefore, that creates greater risk.
- It's one large code base, so, we're also stuck with one technology stack.
- It makes the overall system less competitive, because we can't easily adopt new technologies which might give us a competitive edge.
- Since the code is in one large package, we might also have high levels of coupling, which means that if a change is made in one part of the system, it might affect another part of the system, because the code is intertwined. This kind of coupling might be present between modules, and also between different services.
- Scaling up this service to meet the demand is quite inefficient. For example, if the Orders module of the system is in demand, we would have to create a copy of the whole package, of the whole service, in order to scale up just the Orders section.
- More powerful servers need to be bought to work efficiently for a large footprint of monolithic apps.
- Unit testing for such a large code base takes time, and regression testing by QA is also a time-consuming process.
The only one advantage that a Monolithic system has is the fact that we can run the entire code base on one machine, so, when developing and testing, we could probably replicate the entire environment on a machine.
An example of a Monolithic system could be an ASP.NET MVC site where the website itself is the UI layer, and then in the Business layer, you have business logic along with the data access layer. Over the years, if we continue with the same approach, then it will become a Monolithic system.
推薦閱讀
- Spring Boot 2實(shí)戰(zhàn)之旅
- 算法零基礎(chǔ)一本通(Python版)
- Raspberry Pi Networking Cookbook(Second Edition)
- React.js Essentials
- 零基礎(chǔ)學(xué)Java程序設(shè)計(jì)
- HTML5 and CSS3 Transition,Transformation,and Animation
- 網(wǎng)店設(shè)計(jì)看這本就夠了
- INSTANT Django 1.5 Application Development Starter
- 移動界面(Web/App)Photoshop UI設(shè)計(jì)十全大補(bǔ)
- Learning Raspbian
- Go語言精進(jìn)之路:從新手到高手的編程思想、方法和技巧(1)
- Docker:容器與容器云(第2版)
- Python應(yīng)用與實(shí)戰(zhàn)
- Google Adsense優(yōu)化實(shí)戰(zhàn)
- Microsoft Dynamics GP 2013 Cookbook