Let me start this article with a problem statement and how it was handled before Virtual/Cloud computing and old era of Physical Infrastructure.
Note: To make it contextual, i am taking examples of IT infrastructure in manufacturing industry.
Problem: Increase of load over periodic intervals causing Infrastructure/systems to be down and thus impacting the business operations.
New age system architects with cloud/Virtual computing only knowledge immediately goes and recommends upgrading the Infrastructure(RAM, Computing cores/Disk Capacity etc.) to aid the periodic loads due the the fact that upgrade is easy unlike olden days and also platforms which support virtualization is offering on demand increase of resources in periodic intervals.
For the same above mentioned problem, Old age system architects always tried to deep dive and look at what is causing the periodic spike in the resource usage and then used to recommend any of the below improvements to ensure we get the best out of Infrastructure by implementing Separation of concerns. They solutions are always around
- Using of Multi-threading to utilize best of Infrastructure
- Separation of effecting areas to Isolate the faults to individual systems while other systems work without a problem.
- Use of data transformation techniques to make systems work independently.
And only as a last option they used to recommend upgrade of Infrastructure.
Reason behind the current architects decision of Increasing Infra at the first place is due to the fact that significant reduction in cost and also easier procurement and upgrade choices available with Virtual Infrastructure.
However one needs to understand that utilizing a high spec configuration for a spike of one day/an hour per day is a huge loss to organizations when we evaluate using a cost/benefit analysis. It is always good to analyze the periodic in nature problems for a software improvement/distributed computing over smaller machines. Though this looks very simple, it has a lot of benefits over a long run for organizations.
Best example one can see within manufacturing industry is #Industry 4.0/#Smart Manufacturing Implementation where ERP systems directly connected to MES/MOM systems and the data processing/transformation logics are always running in MES/MOM systems. This kind of system design will have a huge data volume transfer over a period of time and which will result in slowing down MES/MOM impacting the plant operations. One need to think that MES/MOM is a top priority application and can even work without connected ERP integration. In this case people always ignores to choose a small intermediate data processing/Transformation techniques like ETL, MII, SSIS etc. for Infra upgrades.
A simple use of Intermediate system which can transform/process incoming ERP data that can be utilized by MES/MOM will help reduce the burden on systems and also Isolates the fault to either ERP or Intermediate system where MES can still operate with existing process Information. While planning for systems, one need to really analyze on fault tolerance at each levels of systems in Industry 4.0. Always the lowest systems in pyramid have got the lowest tolerance and top ones like business are having highest tolerance as it will not impact operation if it is not working for a brief period of time.