Solutions Architect's Handbook - Second Edition

Book description

Solution Architect

Key Features

  • (Replaced with endorsements, so these 3 bullets are not part of the actual PI)
  • Turn business needs into end-to-end technical architectures with this practical guide
  • Assess and overcome various challenges while updating or modernizing legacy applications
  • Future-proof your architecture with IoT, machine learning, and quantum computing

Book Description

Becoming a solutions architect requires a hands-on approach, and this edition of the Solutions Architect's Handbook brings exactly that. This handbook will teach you how to create robust, scalable, and fault-tolerant solutions and next-generation architecture designs in a cloud environment. It will also help you build effective product strategies for your business and implement them from start to finish.

This new edition features additional chapters on disruptive technologies, such as Internet of Things (IoT), quantum computing, data engineering, and machine learning. It also includes updated discussions on cloud-native architecture, blockchain data storage, and mainframe modernization with public cloud.

The Solutions Architect's Handbook provides an understanding of solution architecture and how it fits into an agile enterprise environment. It will take you through the journey of solution architecture design by providing detailed knowledge of design pillars, advanced design patterns, anti-patterns, and the cloud-native aspects of modern software design.

By the end of this handbook, you'll have learned the techniques needed to create efficient architecture designs that meet your business requirements.

What you will learn

  • Explore the various roles of a solutions architect in the enterprise landscape
  • Implement key design principles and patterns to build high-performance cost-effective solutions
  • Choose the best strategies to secure your architectures and increase their availability
  • Modernize legacy applications with the help of cloud integration
  • Understand how big data processing, machine learning, and IoT fit into modern architecture
  • Integrate a DevOps mindset to promote collaboration, increase operational efficiency, and streamline production

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. Existing 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 general programming experience in any language.

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. The Meaning of Solution Architecture
    1. What is solution architecture?
    2. The evolution of solution architecture
    3. Why is solution architecture important?
    4. The benefits of solution architecture
      1. Addressing the business needs and quality of delivery
      2. Selecting the best technology platform
      3. Addressing solution constraints and issues
      4. Helping in resource and cost management
      5. Managing solution delivery and project life cycle
      6. Addressing non-functional requirements
    5. Solution architecture in the public cloud
      1. What is the public cloud?
      2. Public clouds, private clouds, and hybrid clouds
      3. The public cloud architecture
      4. Thinking cloud-native architecture
      5. Public cloud providers and cloud service offerings
    6. Summary
  3. Solution Architects in an Organization
    1. Types of roles for a solution architect
      1. Generalist solution architect roles
        1. Enterprise solution architect
        2. Solution architect
        3. Technical architect
        4. Cloud architect
        5. Architect evangelist
      2. Specialist solution architect roles
        1. Infrastructure architect
        2. Network architect
        3. Data architect
        4. Machine learning architect
        5. Security architect
        6. DevOps architect
    2. Understanding a solution architect's responsibilities
      1. Analyzing user requirements
      2. Defining non-functional requirements
      3. Engaging and working with stakeholders
      4. Handling various architecture constraints
      5. Making technology selections
      6. Developing a proof of concept and a prototype
      7. Designing solutions and staying through delivery
      8. Ensuring post-launch operability and maintenance
      9. Working as a technology evangelist
    3. Solution architects in an agile organization
      1. Why the agile methodology?
      2. Agile manifesto
      3. Agile process and terminology
        1. Scrum ceremonies
        2. Agile tools and terms
        3. Agile versus waterfall
        4. Agile architecture
    4. Summary
  4. Attributes of the Solution Architecture
    1. Scalability and elasticity
      1. The capacity dilemma in scaling
    2. Scaling your architecture
    3. Static content scaling
      1. Server fleet elasticity
      2. Database scaling
    4. High availability and resiliency
    5. Fault tolerance and redundancy
    6. Disaster recovery and business continuity
    7. Extensibility and reusability
    8. Usability and accessibility
    9. Portability and interoperability
    10. Operational excellence and maintainability
    11. Security and compliance
      1. Authentication and authorization
      2. Web security
      3. Network security
      4. Infrastructure security
      5. Data security
    12. Cost optimization and budget
    13. Summary
  5. Principles of Solution Architecture Design
    1. Scaling workloads
      1. Predictive scaling
      2. Reactive scaling
    2. Building a resilient architecture
    3. Design for performance
    4. Using replaceable resources
      1. Creating immutable infrastructure
        1. Canary testing
    5. Think loose coupling
    6. Think service not server
    7. Using the right storage for the right requirements
    8. Think data-driven design
    9. Overcoming architectural constraints
    10. Taking the minimum viable product approach
    11. Adding security everywhere
    12. Applying automation everywhere
    13. Summary
  6. Cloud Migration and Hybrid Cloud Architecture Design
    1. Benefits of cloud native architecture
    2. Popular public cloud choices
    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 strategy
    5. Steps for cloud migration
      1. Discovering your workload
      2. Analyzing the information
      3. Creating a migration plan
      4. Designing the application
      5. Performing application migration to the cloud
        1. Data migration
        2. Server migration
      6. Integration, validation, and cutover
        1. Live migration cutover
      7. Operating the cloud application
      8. Application optimization in the cloud
    6. Creating hybrid cloud architecture
    7. Taking a multi-cloud approach
    8. Designing cloud native architecture
    9. Summary
    10. Further reading
  7. 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. Building stateless and stateful architecture designs
    4. Understanding service-oriented architecture
      1. SOAP web service architecture
      2. RESTful web service architecture
      3. Building an SOA-based e-commerce website architecture
    5. Building a serverless architecture
    6. Creating a microservice architecture
      1. Real-time voting application reference architecture
    7. Building a queue-based architecture
      1. Queuing chain pattern
      2. Job observer pattern
    8. Creating an event-driven architecture
      1. Publisher/subscriber model
      2. Event stream model
    9. 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
        1. Memcached versus Redis
    10. Understanding the circuit breaker pattern
    11. Implementing the bulkheads pattern
    12. Creating a floating IP pattern
    13. Deploying an application with a container
      1. The benefit of containers
      2. Container deployment
      3. Building container-based architecture
    14. Database handling in application architecture
      1. High-availability database pattern
    15. Avoiding anti-patterns in solution architecture
    16. Summary
  8. Performance Considerations
    1. Design principles for architecture performance
      1. Reducing latency
      2. Improving throughput
      3. Handling concurrency
      4. Applying caching
    2. Technology selection for performance optimization
      1. Making a computational choice
        1. Selecting the server instance
        2. Working with containers
        3. Going serverless
      2. Choosing storage
        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
      3. Choosing the database
        1. Online transactional processing
        2. Nonrelational databases
        3. Online analytical processing
        4. Building a data search functionality
      4. Improving network performance
        1. Defining a DNS routing strategy
        2. Implementing a load balancer
        3. Applying auto-scaling
    3. Managing performance monitoring
    4. Summary
  9. Security Considerations
    1. Designing 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. Amazon Web Services Directory Service
        5. Google Identity federation with Active Directory
        6. Security Assertion Markup Language
        7. OAuth and OpenID Connect
        8. JSON Web Token
      2. Handling web security
        1. Web app security vulnerabilities
        2. Web security mitigation
      3. Securing an application and its infrastructure
        1. Application and operating system hardening
        2. Software vulnerabilities and secure code
        3. Network, firewall, and trusted boundary
        4. Intrusion detection system and intrusion prevention system
      4. Data security
        1. Data classification
        2. Data encryption at rest
        3. Data encryption in transit
    3. Security and compliance certifications
    4. The cloud's shared security responsibility model
    5. Summary
  10. Architectural Reliability Considerations
    1. Design principles for architectural reliability
      1. Making systems self-healing
      2. Applying automation
      3. Creating a distributed system
      4. Monitoring and adding capacity
      5. Performing recovery validation
    2. Technology selection for architectural reliability
      1. Planning the Recovery Time Objective and Recovery Point Objective
      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
  11. Operational Excellence Considerations
    1. Designing 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
        1. IT asset management
        2. Configuration management
      2. The functioning of operational excellence
        1. Monitoring system health
        2. Handling alerts and incident response
      3. Improving operational excellence
        1. IT operations analytics
        2. Root cause analysis
        3. Auditing and reporting
    3. Achieving operational excellence in the public cloud
    4. Summary
  12. 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. 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 report
    3. Cost optimization in the public cloud
    4. Summary
  13. DevOps and Solution Architecture Framework
    1. Introducing DevOps
    2. Understanding the benefits of DevOps
    3. Understanding the components of DevOps
      1. Continuous integration/continuous deployment
      2. Continuous monitoring and improvement
      3. Infrastructure as Code
      4. Configuration management
    4. Introducing DevSecOps
    5. Combining DevSecOps and CI/CD
    6. Implementing a CD strategy
      1. In-place deployment
      2. Rolling deployment
      3. Blue-green deployment
      4. Red-black deployment
      5. Immutable deployment
    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. Continuous integration server
      4. Code deployment
      5. Code pipeline
    9. Implementing DevOps best practices
    10. Building DevOps and DevSecOps in the cloud
    11. Summary
  14. Data Engineering for Solution Architecture
    1. What is big data architecture?
    2. Designing big data processing pipelines
    3. Data ingestion
      1. Technology choices for data ingestion
      2. Ingesting data to the cloud
    4. Storing data
      1. Technology choices for data storage
        1. Structured data stores
        2. NoSQL databases
        3. Search data stores
        4. Unstructured data stores
        5. Object storage
        6. Blockchain data store
        7. Streaming data stores
    5. Processing data and performing analytics
      1. Technology choices for data processing and analysis
    6. Visualizing data
      1. Technology choices for data visualization
    7. Designing big data architectures
      1. Data lake architecture
      2. Lakehouse architecture
      3. Data mesh architecture
      4. Streaming data architecture
    8. Big data architecture best practices
    9. Summary
  15. Machine Learning Architecture
    1. What is machine learning?
    2. Working with data science and ML
      1. Evaluating ML models – overfitting versus underfitting
      2. Supervised and unsupervised machine learning algorithms
    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. Machine learning reference architecture
    6. Machine learning operations
      1. MLOps principles
      2. MLOps best practices
    7. Deep learning
    8. Summary
  16. The Internet of Things Architecture
    1. What is the Internet of Things?
    2. Components of IoT architecture
      1. Managing IoT devices
        1. Microcontroller device management
        2. Microprocessor device management
      2. Connecting and controlling IoT devices
      3. Performing analytics on IoT data
    3. IoT in the cloud
    4. Building an industrial IoT solution
      1. Connected Factory IoT architecture
      2. Implementing a digital twin
    5. Summary
  17. Quantum Computing
    1. The building blocks of quantum computers
      1. Qubits
      2. Superposition
      3. Entanglement
    2. The working mechanism of quantum computers
      1. Quantum gates
        1. Pauli gates
        2. The Hadamard gate
        3. Other quantum gates
      2. Quantum circuits
    3. Types of quantum computers
    4. Quantum computing in real life
    5. Quantum computing in the cloud
    6. Summary
  18. Rearchitecting Legacy Systems
    1. Learning the challenges of legacy systems
      1. Difficulty in keeping up with user demand
      2. Higher cost of maintenance and update
      3. Shortage of skills and documentation
      4. Vulnerable to corporate security issues
      5. Incompatibility with other systems
    2. Benefits of system modernization
    3. Defining a strategy for system modernization
      1. Assessment of a legacy application
      2. Defining the modernization approach
    4. Looking at legacy system modernization techniques
      1. Encapsulation, rehosting, and replatforming
      2. Refactoring and rearchitecting
      3. Redesigning and replacing
    5. Defining a cloud migration strategy for legacy systems
      1. Documentation and support
    6. Mainframe migration with the public cloud
      1. Migrating standalone applications
      2. 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
    7. Summary
  19. 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. IT procurement documentation for a solution architecture
    5. Summary
  20. Learning Soft Skills to Become a Better Solution Architect
    1. Acquiring pre-sales skills
    2. Presenting to C-level executives
    3. Taking ownership and accountability
    4. Defining strategy execution with objectives and key results
    5. Thinking big
    6. Being flexible and adaptable
    7. Design thinking
    8. Being a builder by engaging in coding hands-on
    9. Becoming better with continuous learning
    10. Being a mentor to others
    11. Becoming a technology evangelist and thought leader
    12. Summary
  21. Other Books You May Enjoy
  22. Index

Product information

  • Title: Solutions Architect's Handbook - Second Edition
  • Author(s): Saurabh Shrivastava, Neelanjali Srivastav
  • Release date: January 2022
  • Publisher(s): Packt Publishing
  • ISBN: 9781801816618