title: What is the difference between scalability and elasticity?
body: <p>I've heard many people using both terms interchangeably. However, in my opinion there is difference between them:</p>
  
  <p><strong>SCALABILITY</strong> - ability of a <em>software system</em> to process higher amount of workload on its current hardware resources (<em>scale up</em>) or on current and additional hardware resources (<em>scale out</em>) without application service interruption;</p>
  
  <p><strong>ELASTICITY</strong> - ability of the <em>hardware layer</em> below (usually cloud infrastructure) to increase or shrink the amount of the physical resources offered by that hardware layer to the software layer above. The increase / decrease is triggered by business rules defined in advance (usually related to application's demands). The increase / decrease happens on the fly without physical service interruption. </p>
  
  <p>Again, scalability is a characteristic of a software architecture related to serving higher amount if workload, where elasticity is a characteristic of the physical layer below, entirely related to hardware budget optimizations. </p>
  
  <p>Have I got the difference between these two non-functional architectural characteristics right?
  May someone give specific examples, so we could draw more distinctive border between these two terms?</p>