Introducing software architecture
We will discuss how DevOps affects the architecture of our applications rather than the architecture of software deployment systems, which we discuss elsewhere in the book.
Often while discussing software architecture, we think of the non-functional requirements of our software. By non-functional requirements, we mean different characteristics of the software rather than the requirements on particular behaviors.
A functional requirement could be that our system should be able to deal with credit card transactions. A non-functional requirement could be that the system should be able to manage several such credit cards transactions per second.
Here are two of the non-functional requirements that DevOps and Continuous Delivery place on software architecture:
- We need to be able to deploy small changes often
- We need to be able to have great confidence in the quality of our changes
The normal case should be that we are able to deploy small changes all the way from...