As application complexity increases, a desirable attribute of an IT system is that it can be
broken into smaller, loosely coupled components. This means that IT systems should be designed
in a way that reduces interdependencies—a change or a failure in one component should not
cascade to other components.
Enabling an application to scale automatically based on current demand is an examples of
Elasticity.
Automating the deployment of infrastructure using code is an example of “Infrastructure as code”
– services such as CloudFormation provide this functionality.
Loose coupling does not reduce operational complexity. In fact, it may increase complexity as you
have more services running and more interactions.