An application built as a single unit – simply put, this is a Monolith. But, what does this mean in general, what does this mean for your business and above all, what does this mean for the future of your business?
Creating a single server application is the most intuitive thing to do but with each leap that technology has taken we have had to increase the size of these applications for them to be able to handle anything. These applications are written in one single language and with each addition they become more complex and more difficult to test and thus, deploy.
The key points that define Monoliths are:
- They are a single codebase, deploy unit
- They support only verticle scaling
- All-or-nothing deployment
- Long build time
- They create team complexity
The way Monoliths function forces the business to divide their teams by project since the architecture is too large for it to work otherwise. This is also the traditional way we have been working till now. While there is nothing wrong with this way of work, it does mean that the client is separated from the developer by many layers.
To deal with the increasing complexities we turned to dividing this architecture, logically not physically, by functions as best allowed by the language being used. And while, it did provide some relief the main problem still remains – that of testing, regressing and deployment. There are times where in a large architecture this can take months. In that case the problem of smaller reaction times has still not been solved. Scaling such servers means scaling the entire application. This makes them cumbersome especially since more and more work is being done using clouds and businesses need agility more than ever going forward.
This is not to say that Monoliths are unsuccessful or a bad choice of architecture. In fact, with enough care they work very well and contrary to Microservices have been around since the beginning and hence, are predictable in the way they function.
Note: Captain Dash has started a new series of posts on Micro services architecture. Our aim is to take this form of architecture that we use and make it simple to understand for everyone out there. These posts go up every Sunday. So, follow us on twitter or subscribe to our blog and receive your weekly update on this fabulous architecture that is changing the way we do business!
Written By: Meghna Verma
Meghna Verma is the Content Manager at Captain Dash.
You can reach her on Twitter @M3GV3RMa .