Part Ⅰ of Chapter Three The Container Structure in the IT Field
TL; DR
- Pros for monolithic architecture: develops easier; suits simple and lightweight applications.
- Cons for monolithic architecture: requires numerous manual testing; finds difficulties in continuous deployment and integration with new technology.
“Essentially globalization could not have existed without containerization.”
The book The Box: How the Shipping Container Made the World Smaller and the World Economy Bigger once again brings the formerly neglected outstanding contribution to the stage against the backdrop of globalization. The book sheds new light on how a simple invention exerts a profound influence on human civilization. Since the 20th century, the iron box with its plain appearance has greatly transformed the world and pushed globalization and division of work forward. Containers emerge and grow as a challenge to the packaging, transportation, and delivery of physical goods.
Globalization is built upon the modern transportation system, where containers function as the pillar for a highly automated, low-cost, and low-complexity freight transportation system. The most exciting success of this receptacle lies in its standardization and the well-established transportation system. This gigantic thing (weighing in tons) manages to achieve standardization, as well as put in place a matching logistics system of ships, ports, routes, highways, transfer stations, bridges, tunnels, and intermodal transportation. This one of the great miracles for humans stands above the concept of standardization and systematization. The world upgrades not only through containers, but also with a whole new set of cargo handling methods, including ports, cargo ships, cranes, and trucks, as well as consignors’ ways of operation.
The container structure also sprouts in the IT field. Instead of being stuffed with physical cargo, it packages up binary codes and software. Modules, such as design, development, deployment, operation, maintenance, etc. function as containers that carry the entire IT architecture. Woes and loopholes exist. Both its pros and cons deserve to be noticed. The best solutions only pop up and evolve when the right architecture is placed for the right scenario through an optimized system.
Conventional Technical Architecture
Enterprise applications consist of three major parts: client-side user interface (including HTML and Javascript; accessed via browser), database, and server-side programs. The server side processes HTTP requests, performs business logic, retrieves and updates data in the database, selects and fills HTML views, and sends them to clients. Making a change to the single-structured server-side programs requires recompiling and deploying the entire stack.
Such a monolithic application is naturally built into a system. Applications may be encapsulated into classes, functions, and namespaces based on basic features of the programming languages, but all requests have to be processed in single processes. In some scenarios, you may run and test applications on developers’ laptops, and deploy the procedures to the production environment through deployment channels. You may also scale your deployment horizontally and deploy instances to multiple servers through load balancing. Strengths of the monolithic architecture are laid out as follows:
- Easy to develop. It makes project development easier at the initial stage.
- Simple to test, e.g., performing end-to-end testing by starting applications and launching UI testing using Selenium.
- Effortless to deploy. You must copy packaged applications to the server.
- Scale horizontally by running multiple copies behind the load balancer.
Increasing worries are heaping. As applications are published to the cloud, a small change requests recompiling and deployment of the entire application. As it moves forward, software developers find it hard to strike a balanced modular architecture, where modifications in single modules cause no change in others. Also, monolithic only scales as a whole, but not in parts as desired.
Traditional monolithic applications have many limitations. And the monoliths grow bigger and bigger as business demands iterate and functions further scale. Weaknesses of monolithic applications include:
- High complexity: modules couple badly; codes are hard to understand; quality deteriorates as business scales and team size enlarges.
- Low delivery speed: monolithic applications build and deploy slowly; tricky to locate; develop slowly; full deployment takes a long time, its influence spans widely, its risks stand high; while they’re published at low frequency.
- Low scalability: they only scale horizontally as a whole, but not vertically in modules.
- Low reliability: one bug may crash the whole application.
- Innovation setback: restricted by technology stack; team members share the same framework and language.
Monolithic architecture suits better for simple and lightweight applications. Some people say we should start with the monolithic architecture; others contend that the goal should be the microservice architecture. In any case, we have to first get to the bottom of the monolithic architecture, which works as the cornerstone of the microservice architecture. Each microservice is realized through a monolithic architecture. Microservice is more desirable for complex, evolving applications. Microservice methods only deal with complicated systems, to achieve which these methods add up their own complexity.
The Writer Says...
The NetX aims at building the Web 3 organism. We try to figure out solutions confronted by the present IT industry. To do that, we will look into every module of it to find out setbacks. Then we’ll focus on finding solutions through experiments. It’s a dynamic evolving process. To get the best solution, we have to be clear about the problems and this will be the main idea I’m going to write about in this Chapter. It makes me feel excited when thinking about sharing my thoughts and I do invite you to join me in this exploration and contribute to the evolvement of NetX.
📚 Must Reads
NetX series 1.1 | NetX series 1.2 | NetX series 1.3 | NetX series 2.1 | NetX series 2.2 | NetX series 2.3
NetX, the Chain-Native Internet for the Digital Living of Trustworthy and Reliable Intelligent Autonomous Systems (Trias)
Triathon | Ethanim | Tusima | Behemotum | Octavius | Leviatom |Divina
New to trading? Try crypto trading bots or copy trading