In this chapter, we examined many issues surrounding software architecture design and deployment. The goal of this chapter was to give you the knowledge to evaluate applications and determine how they can be deployed in your environment with their functionality intact and their code and data safeguarded from malicious activity. Although software architecture and perimeter defenses are sometimes in conflict with each other, in most cases you can design and deploy software in such a way that it and your perimeter defenses both maintain a proper level of security. However, in many cases, issues between software and network and host defenses are not discovered until the application is already placed into production because software architecture design is not evaluated properly in advance. By being proactive and reasonably aggressive in terms of software architecture evaluation, you can help your co-workers design and deploy solutions much more easily, efficiently, and securely.