SitePoint
Blog
Forum
Library
Login
Join Premium
Toggle sidebar
Solutions Architect’s Handbook, 2nd Edition
Toggle community discussions
Close
Content
Bookmarks
Preface
Solutions Architect's Handbook - Second Edition
Contributors
About the authors
About the reviewer
Forewords
Join our book's Discord space
Preface
Who this book is for?
What this book covers
To get the most out of this book
Download the color images
Conventions used
Get in touch
Share Your Thoughts
Download a free PDF copy of this book
1
The Meaning of Solution Architecture
What is solution architecture?
The evolution of solution architecture
Why is solution architecture important?
The benefits of solution architecture
Addressing the business needs and quality of delivery
Selecting the best technology platform
Addressing solution constraints and issues
Helping in resource and cost management
Managing solution delivery and project life cycle
Addressing non-functional requirements
Solution architecture in the public cloud
What is the public cloud?
Public clouds, private clouds, and hybrid clouds
The public cloud architecture
Thinking cloud-native architecture
Public cloud providers and cloud service offerings
Summary
Join our book's Discord space
Solution Architects in an Organization
Types of roles for a solution architect
Generalist solution architect roles
Specialist solution architect roles
Understanding a solution architect's responsibilities
Analyzing user requirements
Defining non-functional requirements
Engaging and working with stakeholders
Handling various architecture constraints
Making technology selections
Developing a proof of concept and a prototype
Designing solutions and staying through delivery
Ensuring post-launch operability and maintenance
Working as a technology evangelist
Solution architects in an agile organization
Why the agile methodology?
Agile manifesto
Agile process and terminology
Summary
Join our book's Discord space
Attributes of the Solution Architecture
Scalability and elasticity
The capacity dilemma in scaling
Scaling your architecture
Static content scaling
Server fleet elasticity
Database scaling
High availability and resiliency
Fault tolerance and redundancy
Disaster recovery and business continuity
Extensibility and reusability
Usability and accessibility
Portability and interoperability
Operational excellence and maintainability
Security and compliance
Authentication and authorization
Web security
Network security
Infrastructure security
Data security
Cost optimization and budget
Summary
Join our book's Discord space
Principles of Solution Architecture Design
Scaling workloads
Predictive scaling
Reactive scaling
Building a resilient architecture
Design for performance
Using replaceable resources
Creating immutable infrastructure
Think loose coupling
Think service not server
Using the right storage for the right requirements
Think data-driven design
Overcoming architectural constraints
Taking the minimum viable product approach
Adding security everywhere
Applying automation everywhere
Summary
Join our book's Discord space
Cloud Migration and Hybrid Cloud Architecture Design
Benefits of cloud native architecture
Popular public cloud choices
Creating a cloud migration strategy
Lift and Shift migration
The cloud native approach
Retain or retire
Choosing a cloud strategy
Steps for cloud migration
Discovering your workload
Analyzing the information
Creating a migration plan
Designing the application
Performing application migration to the cloud
Integration, validation, and cutover
Operating the cloud application
Application optimization in the cloud
Creating hybrid cloud architecture
Taking a multi-cloud approach
Designing cloud native architecture
Summary
Further reading
Join our book's Discord space
Solution Architecture Design Patterns
Building an n-tier layered architecture
The web layer
The application layer
The database layer
Creating a multi-tenant SaaS-based architecture
Building stateless and stateful architecture designs
Understanding service-oriented architecture
SOAP web service architecture
RESTful web service architecture
Building an SOA-based e-commerce website architecture
Building a serverless architecture
Creating a microservice architecture
Real-time voting application reference architecture
Building a queue-based architecture
Queuing chain pattern
Job observer pattern
Creating an event-driven architecture
Publisher/subscriber model
Event stream model
Building a cache-based architecture
Cache distribution pattern in a three-tier web architecture
Rename distribution pattern
Cache proxy pattern
Rewrite proxy pattern
App caching pattern
Understanding the circuit breaker pattern
Implementing the bulkheads pattern
Creating a floating IP pattern
Deploying an application with a container
The benefit of containers
Container deployment
Building container-based architecture
Database handling in application architecture
High-availability database pattern
Avoiding anti-patterns in solution architecture
Summary
Join our book's Discord space
Performance Considerations
Design principles for architecture performance
Reducing latency
Improving throughput
Handling concurrency
Applying caching
Technology selection for performance optimization
Making a computational choice
Choosing storage
Choosing the database
Improving network performance
Managing performance monitoring
Summary
Join our book's Discord space
Security Considerations
Designing principles for architectural security
Implementing authentication and authorization control
Applying security everywhere
Reducing the blast radius
Monitoring and auditing everything all the time
Automating everything
Protecting data
Responding to security incidents
Selecting technology for architectural security
User identity and access management
Handling web security
Securing an application and its infrastructure
Data security
Security and compliance certifications
The cloud's shared security responsibility model
Summary
Join our book's Discord space
Architectural Reliability Considerations
Design principles for architectural reliability
Making systems self-healing
Applying automation
Creating a distributed system
Monitoring and adding capacity
Performing recovery validation
Technology selection for architectural reliability
Planning the Recovery Time Objective and Recovery Point Objective
Replicating data
Planning disaster recovery
Applying best practices for DR
Improving reliability with the cloud
Summary
Join our book's Discord space
Operational Excellence Considerations
Designing principles for operational excellence
Automating manual tasks
Making incremental and reversible changes
Predicting failures and responding
Learning from mistakes and refining
Keeping the operational runbook updated
Selecting technologies for operational excellence
Planning for operational excellence
The functioning of operational excellence
Improving operational excellence
Achieving operational excellence in the public cloud
Summary
Join our book's Discord space
Cost Considerations
Design principles for cost optimization
Calculating the total cost of ownership
Planning the budget and forecast
Managing demand and service catalogs
Keeping track of expenditure
Continuous cost optimization
Techniques for cost optimization
Reducing architectural complexity
Increasing IT efficiency
Applying standardization and governance
Monitoring cost usage and report
Cost optimization in the public cloud
Summary
Join our book's Discord space
DevOps and Solution Architecture Framework
Introducing DevOps
Understanding the benefits of DevOps
Understanding the components of DevOps
Continuous integration/continuous deployment
Continuous monitoring and improvement
Infrastructure as Code
Configuration management
Introducing DevSecOps
Combining DevSecOps and CI/CD
Implementing a CD strategy
In-place deployment
Rolling deployment
Blue-green deployment
Red-black deployment
Immutable deployment
Implementing continuous testing in the CI/CD pipeline
A/B testing
Using DevOps tools for CI/CD
Code editor
Source code management
Continuous integration server
Code deployment
Code pipeline
Implementing DevOps best practices
Building DevOps and DevSecOps in the cloud
Summary
Join our book's Discord space
Data Engineering for Solution Architecture
What is big data architecture?
Designing big data processing pipelines
Data ingestion
Technology choices for data ingestion
Ingesting data to the cloud
Storing data
Technology choices for data storage
Processing data and performing analytics
Technology choices for data processing and analysis
Visualizing data
Technology choices for data visualization
Designing big data architectures
Data lake architecture
Lakehouse architecture
Data mesh architecture
Streaming data architecture
Big data architecture best practices
Summary
Join our book's Discord space
Machine Learning Architecture
What is machine learning?
Working with data science and ML
Evaluating ML models – overfitting versus underfitting
Supervised and unsupervised machine learning algorithms
Machine learning in the cloud
Building machine learning architecture
Prepare and label
Select and build
Train and tune
Deploy and manage
Machine learning reference architecture
Machine learning operations
MLOps principles
MLOps best practices
Deep learning
Summary
Join our book's Discord space
The Internet of Things Architecture
What is the Internet of Things?
Components of IoT architecture
Managing IoT devices
Connecting and controlling IoT devices
Performing analytics on IoT data
IoT in the cloud
Building an industrial IoT solution
Connected Factory IoT architecture
Implementing a digital twin
Summary
Join our book's Discord space
Quantum Computing
The building blocks of quantum computers
Qubits
Superposition
Entanglement
The working mechanism of quantum computers
Quantum gates
Quantum circuits
Types of quantum computers
Quantum computing in real life
Quantum computing in the cloud
Summary
Join our book's Discord space
Rearchitecting Legacy Systems
Learning the challenges of legacy systems
Difficulty in keeping up with user demand
Higher cost of maintenance and update
Shortage of skills and documentation
Vulnerable to corporate security issues
Incompatibility with other systems
Benefits of system modernization
Defining a strategy for system modernization
Assessment of a legacy application
Defining the modernization approach
Looking at legacy system modernization techniques
Encapsulation, rehosting, and replatforming
Refactoring and rearchitecting
Redesigning and replacing
Defining a cloud migration strategy for legacy systems
Documentation and support
Mainframe migration with the public cloud
Migrating standalone applications
Migrating applications with shared code
Summary
Join our book's Discord space
Solution Architecture Document
Purpose of the SAD
Views of the SAD
Structure of the SAD
Solution overview
Business context
Conceptual solution overview
Solution architecture
Solution implementation
Solution management
Appendix
IT procurement documentation for a solution architecture
Summary
Join our book's Discord space
Learning Soft Skills to Become a Better Solution Architect
Acquiring pre-sales skills
Presenting to C-level executives
Taking ownership and accountability
Defining strategy execution with objectives and key results
Thinking big
Being flexible and adaptable
Design thinking
Being a builder by engaging in coding hands-on
Becoming better with continuous learning
Being a mentor to others
Becoming a technology evangelist and thought leader
Summary
Join our book's Discord space
Packt is searching for authors like you
Share Your Thoughts
Index
Open text modal
Community Questions
Close