Summary
In this chapter, we have seen an overview of the different cross-cutting concerns that affect software architecture. This also included some solutions and supporting systems and tools.
We have learned the different ways of managing identity inside our application (especially when it involves several different components, such as in a microservice architecture).
We had an overview of the security considerations to be made when designing and implementing an application (such as intrinsic software security and overall software security), which are crucial in a shift-left approach, which is the way security is managed in DevOps scenarios.
Last but not least, we had a complete overview of application resiliency, discussing what a cluster is, what the implications of using clustering are, and what other alternatives (such as HA and DR) can be implemented.
In the next chapter, we are going to explore the tooling supporting the software life cycle, with a particular focus...