Book Image

Solutions Architect's Handbook

By : Saurabh Shrivastava, Neelanjali Srivastav
Book Image

Solutions Architect's Handbook

By: Saurabh Shrivastava, Neelanjali Srivastav

Overview of this book

Becoming a solutions architect gives you the flexibility to work with cutting-edge technologies and define product strategies. This handbook takes you through the essential concepts, design principles and patterns, architectural considerations, and all the latest technology that you need to know to become a successful solutions architect. This book starts with a quick introduction to the fundamentals of solution architecture design principles and attributes that will assist you in understanding how solution architecture benefits software projects across enterprises. You'll learn what a cloud migration and application modernization framework looks like, and will use microservices, event-driven, cache-based, and serverless patterns to design robust architectures. You'll then explore the main pillars of architecture design, including performance, scalability, cost optimization, security, operational excellence, and DevOps. Additionally, you'll also learn advanced concepts relating to big data, machine learning, and the Internet of Things (IoT). Finally, you'll get to grips with the documentation of architecture design and the soft skills that are necessary to become a better solutions architect. By the end of this book, you'll have learned techniques to create an efficient architecture design that meets your business requirements.
Table of Contents (18 chapters)

Handling various architecture constraints

Architecture constraints are one of the most challenging attributes of solution design. A solution architect needs to manage architectural constraints carefully and be able to negotiate between them to find an optimal solution. Often, these constraints depend on each other, and emphasizing one limitation can inflate others.

The most common constraints are as following:

Architectural constraints in a solution design

As shown in the preceding diagram, solution design helps us understand the following attributes of an application:

  • Cost:
    • How much funding is available for solution implementation?
    • What is the expected Return on Investment (ROI)?
  • Quality:
    • How closely should outcomes match functional and non-functional requirements?
    • How can we ensure and track the quality of the solution?
  • Time:
    • When should the output be delivered?
    • Is there any flexibility regarding time?
  • Scope:
    • What is the exact expectation?
    • How does the requirement gap need to be handled and accommodated?
  • Technology:
    • What technology can be utilized?
    • What flexibility does using legacy versus new technologies provide?
    • Should we build in-house or source from a vendor?
  • Risk:
    • What can go wrong and how can we mitigate that?
    • What is the risk tolerance of stakeholders?
  • Resource:
    • What is required to complete solution delivery?
    • Who will work on the solution's implementation?
  • Compliance:
    • What are the local law requirements that can impact the solution?
    • What are the audit and certification requirements?

There could be more specific constraints related to a project, such as storing data in a country due to government regulation and opting for in-house development due to security concerns. Handling constraints could be very tricky. Saving costs by reducing resources may impact the delivery timeline.

Achieving a schedule with limited resources may affect quality, which in turn increases cost due to unwanted bug fixes. So, finding the balance between cost, quality, time, and scope is significant. Scope creep is one of the most challenging situations as it can negatively impact all other constraints and increase risks of solution delivery.

It is essential for a solution architect to understand all the aspects of every constraint and to be able to identify any resulting risk. They must put risk mitigation plans into place and find a balance between them. Handling any scope creep can help a lot in delivering the project on time.