I think that most scale out systems are "clustered" in one sense of the word. The distinction lies in scale out's ability to expand capacity in a balanced way without introducing bottlenecks.
clustering often refers to a dual node system, though not always, in a sense, most traditional scale up storage architecture are actually 2 clustered controllers
historically clustering was about resiliency and removing single points of failure. Let's go back to Novell Cluster Services for instance. Scale-out is focused at very different thigns.
some companies have sought to merge those though - aka NetApp with scaling out dual controller clusters for their Data Fabric. I'd argue that's not scale-out per se.
Clustering is a tech that can potentially be used for scaling out but it depends on the architecture. For example a master/slave architecture cannot scale out in the same way as a shared-nothing architecture.
Often, clustering can be used for scale-out, but also clustering might restrict scale-out to achieve redundancy. So, the terms are somewhat orthogonal.
@fdmts I think of a cluster as a logical collection of resources performing the same task...versus a set of discreet resources allocated to different things
@andriven and @fdmts, agree with both, think one fundamental difference between cluster and scale out is that clusters can have passive resources, scale out generally has all active resources
@dinisco Good distinction - in scale-out often all resources can be used and during failure scenarios the total resources available diminishes rather than inherent performance decrease.
Non-disruptive addition of additional nodes through the same management interface and the ability for the same data to grow without moving it to the new hardware
we used to scale-up (grow until you reached max allowed configuration), the challenge of our day is distributed architectures, which leverage scale-out deployments. smaller components that are highly scalable.
in some ways it's more easily defined to people in "negative terms". That is, are you used to a dual controller system? Are you used to having to purchase more CPU/RAM capacity in a storage array upfront so can add disk later?
scale out = anything that can incrementally grow and in turn shrink. Things like infrastructure, apps, and my waist line are all things that can scale out
The term applies in multiple areas - hadoop clusters, general storage applications, hyperconverged (Nutanix, etc.), even backup and recovery more recently.
Also applies to cloud resources in that most cloud providers have written code to make all their internal resources scale-out. Customers don't see that but assume it's the case.
when talking "cloud" and diving in to the elasticity and flexibility characteristics, often there's some scale-out technologies under the covers to enable that
Anymore it seems like if we are talking scale out as opposed to up due to a change in application demand. Micro-services do not require big fat servers anymore
@johna_white the "shrinking" part is very interesting - it's often assumed but not always the case. Sometimes it's technically possible but not sufficiently tested/QA-ed for real world use.