Solutions Architect's Handbook
上QQ阅读APP看书,第一时间看更新

What is solution architecture?

If you ask around, there may be 10 different answers for the definition of solution architecture, and they may all be correct, as per their organization's structure. Each organization may see solution architecture from a different perspective, based on their business needs, organizational hierarchy, and solution complexity.

In a nutshell, solution architecture defines and foresees multiple aspects of a business solution, at both the strategic and tactical perspectives. 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. As you can see, the following diagram provides a different aspect that a solution architect can address:

Circle of solution architecture

As shown in the preceding diagram, a good solution architect addresses the most common aspects of the solution in an organization:

  • Globally distributed teams: In this age of globalization, almost every product has users distributed across the globe, and stakeholder's groups to take care of customer needs. Often, the software development team has an onshoreoffshore model, where a team works across different time zones to increase productivity and optimize project cost. Solution design needs to consider a globally distributed team structure.
  • 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. Some examples are as follows:
    • The Federal Risk and Authorization Management Program (FedRAMP) and Department of Defense Cloud Computing Security Requirements Guide (DoD SRG) for the USA
    • The General Data Protection Regulation (GDPR) for Europe
    • The Information Security Registered Assessors Program (IRAP) for Australia
    • The Center for Financial Industry Information Systems (FISC) for Japan
    • The Multi-Tier Cloud Security (MTCS) standard for Singapore
    • The G-Cloud for the UK 
    • The IT-Grundschutz for Germany
    • The Multi-Level Protection Scheme (MLPS) Level 3 for China

Also, compliance requirements are different from industry to the industry, for example, the International Organization for Standardization (ISO) 9001 (which is primarily for healthcare, life sciences, medical devices, and the automotive and aerospace industries), the Payment Card Industry Data Security Standard (PCI-DSS) for finance, the Health Insurance Portability and Accountability Act (HIPPA) for healthcare, and so on. Solution architecture needs to consider that compliance in the design phase. You will learn more about compliance in Chapter 8, Security Considerations.

  • Cost and budget: Solution architecture gives a good estimation of the overall cost of the project, which helps to define a budget. This includes capital expenditure (CapEx), which is the upfront cost and, operational expenditure (OpEx), which is an ongoing cost. It helps management to create an overall budget for human resources, infrastructure resources, and other licensing-related costs.
  • 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 makes sure that business requirements are compatible, therefore allowing them to be converted into the technical implementation stage and strike a balance between stakeholders.
  • 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. This helps to plan the IT resources more effectively.
  • 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 architecture aims to build in-house versus third-party tool sourcing and define software standards across the organization.
  • End user requirements: Solution architecture pays special attention to the requirements of the end user, who will be the actual consumer of the product. It helps to discover the hidden requirements that a product owner may not be able to capture, due to a lack of technicality. During implementation and launch, solution architect provides a standard document and typical language structure in order to make sure that all of the requirements have been met to satisfy the user's needs.
  • 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.
  • 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.

An industry-standard and well-defined solution architecture address all business requirements in a technical solution, and they make sure to deliver the desired result in order to satisfy the stakeholders, as per their expectations in terms of the quality, availability, maintainability, and scalability of the solution.

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. Solution architect also identifies whether to build a solution or to source it. It helps to identify technology selection, while also keeping an organization's critical security and compliance requirements in mind.

There could be two primary situations for creating a solution architecture:

  • First, enhancing technology for an existing application, which may include hardware refresh or software re-architecting
  • Second, to create a new solution from scratch, where you get more flexibility to choose the best fit of technology to address a business requirement

However, while re-architecting the existing solution, you need to consider the minimal impact and create a solution that can best fit the current environment. Solution architects may decide to re-build if re-architecting the existing solution is not worth it, and a better solution can be provided by a re-build approach.

In a more simplified language, solution architecture is about looking at all the aspects of the system in order to generate a technical vision, which provides steps to implement the business requirements. Solution architecture can define an implementation for a project or a group of projects in a complex environment, by putting together all of the different pieces that are related to data, infrastructure, networking, and software application. A good solution architecture not only satisfies the functional and non-functional requirements, but also addresses system scalabilities and maintenance in the long run.

We have just learned about an overview of solution architecture and its different aspects. In the next section, we will look at the evolution of solution architecture.