In my opinion, Solution Architecture is defining the design or organization of different systems and components to fulfill a business needs and requirements. By systems and components, I mean software applications, and the infrastructure (hardware devices, virtual machines, on-premises or on the cloud) the software runs on. Solution architecture is the combination of Application Architecture, Integration Architecture and Infrastructure Architecture. Solution Architecture takes a high-level description of all Applications, Integrations and Infrastructure architectures in an implementation. For example, with any new application implementation in the enterprise, that new system needs definitions of:
- Application architecture, that is what components of the application would be utilized and how they will be used by the organization, which components would need customizations and how the system would be configured to accomplish the goals the business wants.
- Integration with other systems. The new application at least would need to connect to the enterprise Identity management store and how to provision and manage users access to the system and export information to the enterprise data warehouse or bigdata system such as Hadoop or analytics systems, and diagnostics and monitoring to the enterprise monitoring system.
- Infrastructure, that is an environment to run on wither on premises or in the cloud, that is servers, operating systems, networks, firewall, storage, security and access control, auditing etc.
As solution architect will need to understand the business requirements, the enterprise IT standards, and work on the selection of the appropriate software application to satisfy the business requirements, the enterprise standards, project budgets, and author a solution blueprint that describes how the proposed architecture. Solution architecture is tightly coupled with Enterprise Architecture and infrastructure Architecture teams in most organizations. Solution architecture is one of the key methods, by which enterprise architecture delivers value to the organization. Solution architecture activities take place during solution ideation, solution design, and solution implementation. During ideation, solution architecture establishes the complete business context for the solution and defines the vision and requirements for the solution. During design, solution architecture elaborates potential options, which may include RFIs, RFPs or prototype development. It selects the most optimal option and develops the roadmap for the selected solution. During implementation, solution architecture communicates the architecture to the stakeholders, and guides the implementation team.
Typically, a Solution Architect will work project managers on defining tasks, estimates, discusses architecturally significant requirements with stakeholders, designs a solution architecture blueprint, evaluate proposals, communicates with designers and stakeholders, document solution alternatives. There are four core activities in solution architecture design.
Architectural analysis is the process of understanding the environment in which a proposed solution will operate and determining the requirements for the solution. The input or requirements to the analysis activity can include items such as:
- what the system will do when operational (the functional requirements)
- how well the system will perform runtime non-functional requirements such as reliability, operability, performance efficiency, security, compatibility.
- development-time non-functional requirements such as maintainability and transferability
- business requirements and environmental contexts of a system that may change over time, such as legal, social, financial, competitive, and technology concerns
- Organizational development capabilities
- Architectural synthesis or design is the process of creating an architecture. Given the architecturally significant requirements determined by the analysis, the current state of the design and the results of any evaluation activities, the design is created and improved.
- Architecture evaluation is the process of determining how well the current design or a portion of it satisfies the requirements derived during analysis. An evaluation can occur whenever an architect is considering a design decision, it can occur after some portion of the design has been completed, it can occur after the final design has been completed or it can occur after the system has been constructed.
- Knowledge management and communication is the activity of exploring and managing knowledge that is essential to designing a solution architecture. A solution architect does not work in isolation. SA get inputs, functional and non-functional requirements and design contexts, from various stakeholders; and provides outputs to stakeholders. Solution architecture knowledge management activity is about finding, communicating, and retaining knowledge. As software architecture design issues are intricate and interdependent, a knowledge gap in design reasoning can lead to incorrect software architecture design.
Documentation is the activity of recording the design generated during the solution architecture process. A solution architecture is described in a solution blueprint that usually contains
- Business Architecture section: The business strategy, governance, organization, and key business processes
- Interface Architecture (APIs): A blueprint for the individual application interfaces both User Interface and Application Programming Interface and their relationships to the core business processes of the organization.
- Application Architecture section: A blueprint for the individual application components to be deployed, their interactions, and their relationships to the core business processes of the organization.
- Data Architecture Section: The structure of the application logical and physical data assets and data management resources
- Technology Architecture Section: The logical software and hardware capabilities that are required to support the deployment of business, data, and application services. This includes IT infrastructure, middleware, networks, communications, processing, and standards.
- Delivery Approach Section: Describes the approach of the solution delivery, what are the phases, would there be POC, would there be a Pilot implementation, who would be doing what, the responsibilities of various internal and external teams.
What do we mean by Architecture?
Architecture is defined as “The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. An architecture has two meanings depending upon the context:
- A formal description of a system, or a detailed plan of the system at a component level to guide its implementation.
- The structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time