This is my learning note from the book Solutions Architect’s Handbook written by Saurabh Shrivastava and Neelanjali Srivastav. All the contents are mostly distilled and copied from the book. I recommend you to buy this book to support the authors.
- Solutions Architect Series – Part 1: What is solution architecture?
- Solutions Architect Series – Part 2: Types of solution architect role
Another series: Fundamentals of Software Architecture: An Engineering Approach
For the success of application development, defining solution architecture should be the first step, which then lays out the foundations and the robust building block of implementation. Solution architecture not only considers the requirements of the business, but also handles critical, non-functional requirements such as scalability, high availability, maintainability, performance, security, and so on.
Solution architecture is not just about a software solution. It covers all aspects of a system, which will be included but not limited to, system infrastructure, networking, security, compliance requirement, system operation, cost, and reliability
A good solution architect addresses the most common aspects of the solution in an organization:
Global compliance requirement: When you are deploying your solution globally, each country and region has its laws and compliance regime, which your solution needs to adhere.
Cost and budget: Solution architecture gives a good estimation of the overall cost of the project, which helps to define a budget.
Solution implementation component: Solution architecture provides a high-level overview of different implementation components of the product beforehand, which helps to plan execution.
Business requirements: Solution architecture considers all business requirements, which includes both functional and non-functional requirements.
IT infrastructure requirements: Solution architecture determines what kind of IT infrastructure is required to execute the project, which includes computing, storage, network, and so on
Technology selection: During solution design, a solution architect creates a proof of concept and prototype, which considers the corporate requirements, and then recommends the right technology and tools for implementation.
Solution maintenance: Solution architecture is not just about solution design and implementation, but it also takes care of post-launch activities, such as solution scalability, disaster recovery, operational excellence, and so on.
Addressing solution constraints and issues: Any solution can be limited by various constraints and may encounter issues due to complexities or unforeseen risks. Solution architecture needs to balance multiple constraints, such as resources, technologies, cost, quality, time to market, frequently changing requirements, and so on.
Addressing non-functional requirements: NFRs include the following attributes of solution architecture. However, there can be more NFRs, depending upon the project:
- Disaster recovery: To make sure the solution is up and running in case of any unforeseen events.
- Security and compliance: Put a safety net in place for a solution to save it from an external attack, such as a virus, malware, and so on. Also make sure that the solution complies with local and industry laws, by meeting compliance requirements.
- High availability: To make sure the solution is always up and running.
- Scalability: To make sure the solution can handle the additional load in case of increasing demands.
- Application performance: To make sure the application is loading as per user expectation, and without much delay.
- Network request and response latency: Any activity performing on the application should be completed within the appropriate time and should not time out.
- Project timeline: Solution architecture designs the layout details of each component with their complexity, which further helps to define the project milestones and timeline by providing resource estimation and associated risks.
The initial design of a solution architecture may be conceived at a very early stage during the pre-sales cycle, such as the request for proposal (RFP) or the request for information (RFI) and is followed by the creation of a prototype or proof of concept, in order to discover any solution risk.