It is interesting how the big self-contained boxes of software slowly give way to more modular, flexible, library-ish solutions.
We had monolithic servers — now we build boxes from commodity parts and pair Linux kernel with a bunch of packages. We had Apache — now we embed our web servers within the application. We had Oracle — now we handle transactions within app tier. We had hardware network devices — now we put offload cards in our servers and make them a part of the app.
Probably the two most recent examples are:
Why is this happening?
My guess — most of this technologies came from the enterprise. This is understandable : enterprise vendors know how to sell boxes, enterprises know how to buy boxes. Much less so with the components.
Then there comes a technology company and stretches the enterprise technology and thinking in the direction it was not supposed to stretch. Monolithic concepts rip apart, releasing a plethora of knowledge and components that are then polished to the point of becoming reusable.
I am curious to see if this trend continues. Most people still think in the terms of big boxes and until we learn to sell and buy something other than boxes, there’s no incentive to otherwise.
On the other hand — isn’t that what cloud is supposed to be? An anti-box?