What Is Lightweight Software? Revisiting the Definition
Summary
Curiously, this can mean you need to run more instances of them or beef them up with auxiliary components, sidecars and other modules — essentially making something that touts itself as lightweight actually quite heavyweight when the total footprint is considered. Minimal growth indicates that the maintaining team or organization has made a commitment to design for timeless utility, while being wary of adding functionality and cruft just to handle more specialized use cases. While this can mean fewer bells, whistles and limitations on how the application can interact with the outside world, self-containment reduces externally controlled points of failure and sources of performance or security problems. In particular, if an application is facing potentially uncontrolled (and hostile) environments like the internet, then keeping surface area to an absolute minimum pays enormous dividends down the road. More and more, we see DevOps and Platform Ops teams forcing problems by adding capacity when a smaller set of lightweight tools would do the job better and at less cost with less technical debt.