Solutions Architect's Handbook - Third Edition

Book description

From fundamentals and design patterns to the latest techniques such as generative AI, machine learning and cloud native architecture, gain all you need to be a pro Solutions Architect crafting secure and reliable AWS architecture.

Key Features

  • Hits all the key areas -Rajesh Sheth, VP, Elastic Block Store, AWS
  • Offers the knowledge you need to succeed in the evolving landscape of tech architecture - Luis Lopez Soria, Senior Specialist Solutions Architect, Google
  • A valuable resource for enterprise strategists looking to build resilient applications - Cher Simon, Principal Solutions Architect, AWS

Book Description

Master the art of solution architecture and excel as a Solutions Architect with the Solutions Architect's Handbook. Authored by seasoned AWS technology leaders Saurabh Shrivastav and Neelanjali Srivastav, this book goes beyond traditional certification guides, offering in-depth insights and advanced techniques to meet the specific needs and challenges of solutions architects today.

This edition introduces exciting new features that keep you at the forefront of this evolving field. Large language models, generative AI, and innovations in deep learning are cutting-edge advancements shaping the future of technology. Topics such as cloud-native architecture, data engineering architecture, cloud optimization, mainframe modernization, and building cost-efficient and secure architectures remain important in today's landscape. This book provides coverage of these emerging and key technologies and walks you through solution architecture design from key principles, providing you with the knowledge you need to succeed as a Solutions Architect. It will also level up your soft skills, providing career-accelerating techniques to help you get ahead.

Unlock the potential of cutting-edge technologies, gain practical insights from real-world scenarios, and enhance your solution architecture skills with the Solutions Architect's Handbook.

What you will learn

  • Explore various roles of a solutions architect in the enterprise
  • Apply design principles for high-performance, cost-effective solutions
  • Choose the best strategies to secure your architectures and boost availability
  • Develop a DevOps and CloudOps mindset for collaboration, operational efficiency, and streamlined production
  • Apply machine learning, data engineering, LLMs, and generative AI for improved security and performance
  • Modernize legacy systems into cloud-native architectures with proven real-world strategies
  • Master key solutions architect soft skills

Who this book is for

This book is for software developers, system engineers, DevOps engineers, architects, and team leaders who already work in the IT industry and aspire to become solutions architect professionals. Solutions architects who want to expand their skillset or get a better understanding of new technologies will also learn valuable new skills. To get started, you'll need a good understanding of the real-world software development process and some awareness of cloud technology.

Table of contents

  1. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
    4. Get in touch
  2. Solutions Architects in Organizations
    1. What is solution architecture?
      1. The benefits of solution architecture
    2. The solutions architect’s role
      1. Generalist solutions architect roles
        1. Enterprise solutions architect
        2. Application Architect
        3. Cloud Architect
        4. Architect Evangelist
      2. Specialist solutions architect roles
        1. Infrastructure Architect
        2. Network Architect
        3. Data Architect
        4. ML Architect
        5. GenAI architect
        6. Security Architect
        7. DevOps architect
        8. Industry Architect
    3. Understanding a solutions architect’s responsibilities
      1. Analyze functional requirements (FRs)
      2. Define NFRs
      3. Understand and engage stakeholders
      4. Understand architecture constraints
      5. Make technology selections
      6. Develop a POC and prototype
      7. Solution design and delivery
        1. Ensuring post-launch operability and maintenance
      8. Solution scaling and technology evangelism
    4. Solutions architect in an Agile organization
    5. Common challenges in the solutions architect role
    6. Career path and skill development for solutions architects
    7. Summary
  3. Principles of Solution Architecture Design
    1. Building scalable architecture design
      1. Scaling static content
        1. Session management for application server scaling
        2. Database scaling
        3. Building elastic architecture
    2. Building a highly available and resilient architecture
      1. Highly available architecture
      2. Resilient architecture
      3. Achieving redundancy
      4. Addressing component failure
    3. Making your architecture fault-tolerant
    4. Designing for performance
    5. Creating immutable architecture
    6. Think loose coupling
    7. Think service, not server
    8. Think data-driven design
    9. Adding security everywhere
    10. Making applications usable and accessible
      1. Achieving usability
      2. Achieving accessibility
    11. Building future-proof extendable and reusable architecture
    12. Ensuring architectural interoperability and portability
      1. Making applications interoperable
        1. Making applications portable
    13. Applying automation everywhere
    14. Plan for business continuity
    15. Design for operation
    16. Overcoming architectural constraints
      1. Taking the MVP approach
    17. Summary
  4. Cloud Migration and Cloud Architecture Design
    1. Public, private, and hybrid clouds
    2. Solution architecture in the public cloud
      1. Public cloud architecture
      2. Popular public cloud providers
      3. Cloud-native architecture
      4. Designing cloud-native architecture
    3. Creating a cloud migration strategy
      1. Lift and shift migration
        1. Rehost
        2. Replatform
        3. Relocate
      2. The cloud-native approach
        1. Refactor
        2. Repurchase
      3. Retain or retire
        1. Retain
        2. Retire
    4. Choosing a cloud migration strategy
    5. Steps for cloud migration
      1. Discovering your portfolio and workloads
      2. Analyzing the information
      3. Creating a migration plan
      4. Designing the application
      5. Executing application migration to the cloud
        1. Data migration
        2. Server migration
      6. Integrating, validating, and cutover
        1. Validation
        2. Integration
        3. The cutover process
      7. Operating the cloud application
      8. Application optimization in the cloud
    6. Creating a hybrid cloud architecture
    7. Taking a multi-cloud approach
    8. Implementing CloudOps
    9. CloudOps pillars
    10. Summary
    11. Further reading
  5. Solution Architecture Design Patterns
    1. Building an n-tier layered architecture
      1. The web layer
      2. The application layer
      3. The database layer
    2. Creating a multi-tenant SaaS-based architecture
    3. Understanding service-oriented architecture
      1. RESTful web service architecture
      2. Building a RESTful-architecture-based e-commerce website
    4. Building a cache-based architecture
      1. Cache distribution pattern in a three-tier web architecture
      2. Rename distribution pattern
      3. Cache proxy pattern
      4. Rewrite proxy pattern
      5. App caching pattern
      6. Memcached versus Redis
    5. Model-View-Controller (MVC) architecture
      1. Applying MVC to design an online bookstore
    6. Building Domain-Driven Design (DDD)
    7. Understanding the circuit breaker pattern
    8. Implementing the bulkhead pattern
    9. Creating a floating IP pattern
    10. Deploying an application with a container
      1. The benefit of containers
      2. Container deployment
      3. Building container-based architecture
    11. Database handling in application architecture
      1. High-availability database pattern
    12. Clean Architecture
    13. Avoiding anti-patterns in solution architecture
    14. Summary
  6. Cloud-Native Architecture Design Patterns
    1. What is cloud-native architecture?
    2. Building serverless architecture
      1. Considerations for serverless architecture
    3. Building stateless and stateful architectural designs
      1. Stateful architecture
      2. Stateless architecture
    4. Creating a microservice architecture
      1. Saga pattern
      2. Fan-out/fan-in pattern
      3. Service mesh pattern
    5. Reactive architecture
    6. Building queue-based architecture
      1. Queuing chain pattern
      2. Job observer pattern
    7. Pipes-and-Filters Architecture
    8. Creating Event-Driven Architecture
      1. Publisher/subscriber model
      2. Event stream model
    9. Backend for Frontend pattern
    10. Cloud-native architecture anti-patterns
      1. Single point of failure
      2. Manual scaling
      3. Tightly coupled services
      4. Ignoring security best practices
      5. Not monitoring or logging
      6. Ignoring network latency
      7. Lack of testing
      8. Over-optimization
      9. Not considering costs
    11. Summary
  7. Performance Considerations
    1. Design principles for high-performance architecture
      1. Reducing latency
      2. Improving throughput
      3. Handling concurrency
      4. Applying caching
    2. Technology selection for performance optimization
      1. Making a computational choice
        1. Working with containers
        2. Going serverless
      2. Making a storage choice
        1. Working with block storage and storage area network
        2. Working with file storage and network area storage
        3. Working with object storage and cloud data storage
        4. Storage for databases
      3. Making a database choice
        1. Online transactional processing
        2. Nonrelational databases
        3. Online analytical processing
        4. Building a data search functionality
      4. Improving network performance
        1. Using edge computing
        2. Defining a DNS routing strategy
        3. Applying a load balancer
        4. Applying auto-scaling
    3. Performance considerations for mobile applications
      1. Optimization of load times
      2. Efficient use of resources
      3. Responsive user interface (UI)
      4. Network efficiency
      5. Battery consumption
      6. Cross-platform compatibility
      7. User experience (UX) design
      8. Effective data management
      9. Testing and quality assurance
    4. Performance testing
      1. Types of performance testing
    5. Managing performance monitoring
    6. Summary
  8. Security Considerations
    1. Design principles for architectural security
      1. Implementing authentication and authorization control
      2. Applying security everywhere
      3. Reducing the blast radius
      4. Monitoring and auditing everything all the time
      5. Automating everything
      6. Protecting data
      7. Responding to security incidents
    2. Selecting technology for architectural security
      1. User identity and access management
        1. Federated identity management and single sign-on
        2. Kerberos
        3. Microsoft Active Directory
        4. Security Assertion Markup Language
        5. OAuth
        6. JWT
      2. Handling web security
        1. Cyberattacks
        2. Web security mitigation
      3. Securing an application and its infrastructure
        1. Application and operating system hardening
        2. Software vulnerability mitigation and secure code
        3. Network security
        4. Intrusion detection system and intrusion prevention system
      4. Data security
        1. Data classification
        2. Data encryption at rest
        3. Data encryption in transit
      5. Securing APIs
    3. Security and compliance certifications
    4. The cloud’s shared security responsibility model
    5. Securing threat modeling
    6. Summary
  9. Architectural Reliability Considerations
    1. Design principles for architectural reliability
      1. Making systems self-healing by applying automation
        1. Quality assurance
      2. Creating a distributed system
      3. Monitoring and adding capacity
      4. Performing recovery validation
    2. Technology selection for architectural reliability
      1. Planning the RPO and RTO
      2. Replicating data
        1. Synchronous versus asynchronous replication
        2. Replication methods
      3. Planning disaster recovery
        1. Backup and restore
        2. Pilot light
        3. Warm standby
        4. Multi-site
      4. Applying best practices for DR
    3. Improving reliability with the cloud
    4. Summary
  10. Operational Excellence Considerations
    1. Design principles for operational excellence
      1. Automating manual tasks
      2. Making incremental and reversible changes
      3. Predicting failures and responding
      4. Learning from mistakes and refining
      5. Keeping the operational runbook updated
    2. Selecting technologies for operational excellence
      1. Planning for operational excellence
      2. IT asset management
        1. Configuration management
      3. The functioning of operational excellence
        1. Monitoring system health
      4. Improving operational excellence
        1. IT operations analytics
        2. Root Cause Analysis
        3. Auditing and reporting
    3. Achieving operational excellence in the public cloud
    4. Driving efficiency with CloudOps
    5. Summary
  11. Cost Considerations
    1. Design principles for cost optimization
      1. Calculating the total cost of ownership
      2. Planning the budget and forecast
      3. Managing demand and service catalogs
      4. Keeping track of expenditure
      5. Continuous cost optimization
    2. Understanding techniques for cost optimization
      1. Reducing architectural complexity
      2. Increasing IT efficiency
      3. Applying standardization and governance
        1. Resource cost tagging
      4. Monitoring cost usage and reports
    3. Driving cost optimization in the public cloud
    4. Green IT and its influence on cost considerations
      1. Cost-effective and green application hosting on AWS
    5. Summary
  12. DevOps and Solution Architecture Framework
    1. Introducing DevOps
      1. Understanding the benefits of DevOps
    2. Understanding the components of DevOps
      1. Continuous integration/Continuous deployment
      2. Continuous monitoring and improvement
      3. Infrastructure as code
      4. Configuration management
    3. Introducing DevSecOps for Security
    4. Combining DevSecOps and CI/CD
    5. Implementing a CD strategy
      1. In-place deployment
      2. Rolling deployment
      3. Blue-green deployment
      4. Red-black deployment
      5. Immutable deployment
    6. Best practices for choosing the right deployment strategy
    7. Implementing continuous testing in the CI/CD pipeline
      1. A/B testing
    8. Using DevOps tools for CI/CD
      1. Code editor
      2. Source code management
      3. CI server
      4. Code deployment
      5. Code pipeline
    9. Implementing DevOps best practices
    10. Building DevOps and DevSecOps in the cloud
    11. Summary
  13. Data Engineering for Solution Architecture
    1. What is big data architecture?
    2. Designing big data processing pipelines
    3. Data ingestion, storage, processing, and analytics
      1. Data ingestion
        1. Technology choices for data ingestion
        2. Ingesting data to the cloud
      2. Storing data
        1. Technology choices for data storage
        2. Structured data stores
        3. NoSQL databases
        4. Search data stores
        5. Unstructured data stores
        6. Object storage
        7. Vector Database (VectorDB)
        8. Blockchain data stores
        9. Streaming data stores
    4. Data storage in the cloud
      1. Processing data and performing analytics
        1. Technology choices for data processing and analysis
        2. Data processing in the cloud
    5. Visualizing data
      1. Technology choices for data visualization
    6. Designing big data architectures
      1. Data lake architecture
      2. Lakehouse architecture
      3. Data mesh architecture
      4. Streaming data architecture
      5. Choosing the right big data architecture
    7. Big data architecture best practices
    8. Summary
  14. Machine Learning Architecture
    1. What is machine learning?
      1. Types of machine learning
        1. Supervised learning
        2. Unsupervised learning
        3. Semi-supervised learning
        4. Reinforcement learning
        5. Self-supervised learning
        6. Multi-instance learning
    2. Working with data science and machine learning
      1. Evaluating ML models—overfitting versus underfitting
      2. Popular machine learning algorithms
        1. Linear regression
        2. Logistic regression
        3. Decision trees
        4. Random forests
        5. K-Nearest Neighbours (k-NNs)
        6. Support vector machines (SVMs)
        7. Neural networks
        8. K-means clustering
        9. XGBoost
      3. Popular machine learning tools and frameworks
    3. Machine learning in the cloud
    4. Building machine learning architecture
      1. Prepare and label
      2. Select and build
      3. Train and tune
      4. Deploy and manage
      5. ML reference architecture
    5. Design principles for machine learning architecture
      1. Organizing the machine learning system into modules
      2. Ensuring scalability
      3. Ensuring reproducibility
      4. Implementing data quality assurance
      5. Ensuring flexibility
      6. Ensuring robustness and reliability
      7. Ensuring privacy and security
      8. Ensuring efficiency
      9. Ensuring interpretability
      10. Implementing real-time capability
      11. Ensuring fault tolerance
    6. MLOps
      1. MLOps principles
      2. MLOps best practices
    7. Deep learning
      1. Deep learning in the real world
        1. Healthcare: diagnosis and prognosis
        2. Autonomous vehicles: navigation and safety
        3. Manufacturing: quality control and predictive maintenance
    8. NLP
      1. Chatbots and virtual assistants
      2. Sentiment analysis
      3. Text summarization
      4. Machine translation
    9. Summary
  15. Generative AI Architecture
    1. What is generative AI?
    2. Generative AI use cases
      1. Customer experience transformation
      2. Employee productivity enhancement
      3. Optimizing business operations
    3. The basic architecture of generative AI systems
      1. Types of generative models
        1. Generative Adversarial Networks (GANs)
        2. Variational Autoencoders (VAEs)
        3. Transformer-based generative models
        4. Other important generative models
      2. Importance of hyperparameter tuning and regularization in architectures
        1. Hyperparameter tuning
        2. Regularization
    4. Popular generative AI FMs
    5. How to start with generative AI
      1. For end users
      2. For builders
      3. Using generative AI FMs in your applications with public cloud providers
        1. Choosing the right FM
      4. Preventing model hallucinations
    6. Generative AI reference architecture for building a mortgage assistant app
    7. Challenges in implementing generative AI
      1. Training stability issues
      2. Mode collapse
      3. Latent space interpolation challenges
      4. Ethical concerns and misuse
    8. Summary
  16. Rearchitecting Legacy Systems
    1. Learning the challenges of legacy systems
      1. Difficulty in keeping up with user demand
      2. Higher cost of maintenance and updates
      3. Shortage of skills and documentation
      4. Vulnerability to corporate security issues
      5. Incompatibility with other systems
    2. Defining a strategy for system modernization
      1. Assessment of a legacy application
      2. Defining the modernization approach
      3. Benefits of system modernization
    3. Looking at legacy system modernization techniques
      1. Encapsulation, rehosting, and replatforming
      2. Refactoring and rearchitecting
      3. Redesigning and replacing
    4. Defining a cloud migration strategy for legacy systems
      1. Documentation and support
    5. Mainframe migration with the public cloud
      1. Challenges of mainframe modernization
      2. Migrating standalone applications
      3. Migrating applications with shared code
        1. Application decoupling using a standalone API
        2. Application decoupling using a shared library
        3. Application decoupling using message queues
      4. Benefits of using the public cloud for mainframe modernization
    6. Modernizing legacy code with generative AI
    7. Summary
  17. Solution Architecture Document
    1. Purpose of the SAD
    2. Views of the SAD
    3. Structure of the SAD
      1. Solution overview
      2. Business context
      3. Conceptual solution overview
      4. Solution architecture
        1. Information architecture
        2. Application architecture
        3. Data architecture
        4. Integration architecture
        5. Infrastructure architecture
        6. Security architecture
      5. Solution implementation
      6. Solution management
      7. Appendix
    4. Life cycle of the SAD
    5. SAD best practices and common pitfalls
    6. IT procurement documentation for a solution architecture
    7. Summary
  18. Learning Soft Skills to Become a Better Solutions Architect
    1. Importance of soft skills in solution architecture
    2. Acquiring pre-sales skills
      1. Key skills
      2. Presenting to C-level executives
    3. Taking ownership and accountability
      1. Defining strategy execution with OKRs
      2. Thinking big
    4. Being flexible and adaptable
    5. Design thinking
    6. Being a builder by engaging in coding hands-on
    7. Becoming better with continuous learning
    8. Being a mentor to others
    9. Becoming a technology evangelist and thought leader
    10. Summary
  19. Other Books You May Enjoy
  20. Index

Product information

  • Title: Solutions Architect's Handbook - Third Edition
  • Author(s): Saurabh Shrivastava, Neelanjali Srivastav
  • Release date: March 2024
  • Publisher(s): Packt Publishing
  • ISBN: 9781835084236