In continuation with our series on empowering seasoned developers to be successful & informed software architects, this blog’s focus is on creating an effective physical architecture diagram. Read the previous blog on creating an effective logical architecture by clicking here.
As simple definition of physical architecture (also known as deployment architecture) is:
Physical Architecture defines the layout of components & system elements (as deployable units) in the context of system architecture along with depiction of real products & hardware appliances.
A standard definition by SEBoK:
A physical architecture model is an arrangement of physical elements, that provides the solution for a product, service, or enterprise. It is intended to satisfy logical architecture elements and system requirements ISO/IEC/IEEE 26702 (ISO 2007).
An effective physical diagram is important as it serves the purpose of communicating the system under consideration’s infrastructure to various stakeholders (such as enterprise architect, infrastructure/cloud architect, data architect, security architect, vendors, etc.).
#1 – Get Aligned to Enterprise Deployment Strategy
- With the rise of cloud, the foremost decision needs to be made by senior stakeholders that whether cloud or on-premises or hybrid approach will be leveraged.
- This impacts on how you want to represent various components/elements & hence this decision is the primary input to create physical architecture.
#2 – Map Logical Components to Technology Components
- In our previous blog, we discussed about purpose of logical architecture and both physical and logical architecture should be aligned to ensure consistency. A disjointed physical architecture has the risk of missing components/elements, which can lead to technology gaps at later stage.
- Start with mapping logical components with technology components with the rationale for each decision made.
- Based on architecture governance practice, get the key stakeholders aligned with initial technology mapping. The recommendation is to get people aligned at an early stage of technology mapping to avoid any rework at a later stage.
- For example, the below mapping diagram extends logical architecture and maps logical components to related technology components, if you are using AWS based cloud-native architecture.
#3 – Complete the Deployment Architecture with Outer Components in Consideration
- Create the first draft of deployment architecture with networking, compute, and storage components
- Consult with networking, security, infrastructure team to take their feedback & align them accordingly
- For example, after the technology components in the above example, the deployment architecture diagram with cloud (AWS) can be depicted as below using Archimate & AWS notations:
#4 – Review and Align with Diverse Stakeholders
Ensure that following set of stakeholders are aligned with physical/deployment architecture:
- Enterprise Architecture Stakeholders – Ensure that enterprise architects provide their acceptance on overall application deployment architecture
- Infrastructure Stakeholders – Ensure that infrastructure, DevOps, networking & related stakeholders review and provide their sign-off/acceptance
- Security Stakeholders – Ensure that the security team is aligned with deployment architecture and design considerations related to security in-transit and at-rest are in place
- Business Stakeholders – Estimate the operational cost and get acceptance from business from a financials perspective
#4 – Continue Your Journey with Incremental Improvements
- Don’t aim for perfection in your the iteration of producing the artifact. It is a constant journey to improve physical/deployment architecture iteratively.
- Finally, evolve the artifact over the period and consider it as a living document. If possible, use an automated tool to keep it synchronized after the deployment.
In summary, your journey to create an effective physical/deployment architecture starts with logical architecture. It evolves as you progress towards figuring out details of the application architecture and work with various stakeholders collaboratively to get it matured.