Throughout the preceding chapters, we have seen how cloud-native is lean and autonomous. Leveraging fully-managed cloud services and establishing proper bulkheads empowers self-sufficient, full-stack teams to rapidly and continuously deliver autonomous services with the confidence that a failure in any one service will not cripple the upstream and downstream services that depend on it. This architecture is a major advancement because these safeguards protect us from inevitable human errors. However, we must still endeavor to minimize human error and increase our confidence in our systems.
To minimize and control potential mistakes, we need to minimize and control our batch sizes. We accomplish this by following the practice of decoupling deployment from release. A deployment is just the act of deploying a piece of software into an environment, whereas a release is...