0%

Book Description

From fundamentals and design patterns to the different strategies for creating secure and reliable architectures in AWS cloud, learn everything you need to become a successful solutions architect

Key Features

  • Create solutions and transform business requirements into technical architecture with this practical guide
  • Understand various challenges that you might come across while refactoring or modernizing legacy applications
  • Delve into security automation, DevOps, and validation of solution architecture

Book Description

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.

What you will learn

  • Explore the various roles of a solutions architect and their involvement in the enterprise landscape
  • Approach big data processing, machine learning, and IoT from an architect's perspective and understand how they fit into modern architecture
  • Discover different solution architecture patterns such as event-driven and microservice patterns
  • Find ways to keep yourself updated with new technologies and enhance your skills
  • Modernize legacy applications with the help of cloud integration
  • Get to grips with choosing an appropriate strategy to reduce cost

Who this book is for

This book is for software developers, system engineers, DevOps engineers, architects, and team leaders working in the information technology industry who aspire to become solutions architect professionals. A good understanding of the software development process and general programming experience with any language will be useful.

Table of Contents

  1. Title Page
  2. Copyright and Credits
    1. Solutions Architect's Handbook
  3. Dedication
  4. About Packt
    1. Why subscribe?
  5. Foreword
  6. Contributors
    1. About the authors
    2. About the reviewer
    3. Packt is searching for authors like you
  7. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
      1. Download the color images
      2. Conventions used
    4. Get in touch
      1. Reviews
  8. The Meaning of Solution Architecture
    1. What is solution architecture?
    2. 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. Public cloud providers and cloud service offering
    6. Summary
  9. Solution Architects in an Organization
    1. Types of solution architect role
      1. Enterprise solution architect
      2. Solution architect
      3. Technical architect 
      4. Cloud architect 
      5. Architect evangelist
      6. Infrastructure architect
      7. Network architect
      8. Data architect
      9. Security architect
      10. 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 Agile methodology?
      2. Agile manifesto
        1. Agile process and terminology
        2. Sprint ceremonies
        3. Agile tools and terms
        4. Agile versus waterfall
        5. Agile architecture
    4. Summary
  10. Attributes of the Solution Architecture
    1. Scalability and elasticity
      1. The capacity dilemma in scaling
      2. Scaling your architecture
      3. Static content scaling
      4. Server fleet elasticity
      5. Database scaling
    2. High availability and resiliency
    3. Fault-tolerance and redundancy
    4. Disaster recovery and business continuity
    5. Extensibility and reusability
    6. Usability and accessibility
    7. Portability and interoperability
    8. Operational excellence and maintainability
    9. Security and compliance
      1. Authentication and authorization
      2. Web security
      3. Network security
      4. Infrastructure security
      5. Data security
    10. Cost optimization and budget
    11. Summary
  11. Principles of Solution Architecture Design
    1. Scaling workload
      1. Predictive scaling
      2. Reactive scaling
    2. Building 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 need
    8. Think data-driven design
    9. Overcoming constraints
    10. Adding security everywhere
    11. Automating everything
    12. Summary
  12. Cloud Migration and Hybrid Cloud Architecture Design
    1. Benefits of cloud-native architecture
    2. Creating a cloud migration strategy
      1. Lift and Shift migration 
        1. Rehost
        2. Replatform
        3. Relocate
      2. Cloud-native approach
        1. Refactor
        2. Repurchase
      3. Retain or retire
        1. Retain
        2. Retire
    3. Steps for cloud migration 
      1. Discovering your workload
      2. Analyzing the information
      3. Creating 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 cloud application
      8. Application optimization in the cloud
    4. Creating a hybrid cloud architecture
    5. Designing a cloud-native architecture
    6. Popular public cloud choices
    7. Summary
    8. Further reading
  13. 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 multi-tenant SaaS-based architecture
    3. Building stateless and stateful architecture designs
    4. Understanding SOA
      1. SOAP web service architecture
      2. RESTful web service architecture
      3. Building an SOA-based e-commerce website architecture
    5. Building serverless architecture
    6. Creating microservice architecture
      1. Real-time voting application reference architecture
    7. Building queue-based architecture
      1. Queuing chain pattern
      2. Job observer pattern
    8. Creating event-driven architecture
      1. Publisher/subscriber model
      2. Event stream model
    9. Building 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
    14. Database handling in application architecture
      1. High-availability database pattern
    15. Avoiding anti-patterns in solution architecture
    16. Summary
  14. Performance Considerations
    1. Design principles for architecture performance
      1. Reducing latency
      2. Improving throughput
      3. Handling concurrency
      4. Apply caching
    2. Technology selection for performance optimization
      1. Making a computational choice
        1. Selecting the server instance
        2. Working with containers
          1. Docker
          2. Kubernetes
        3. Going serverless
      2. Choosing a storage
        1. Working with block storage and storage area network (SAN)
        2. Working with file storage and network area storage (NAS)
        3. Working with object storage and the cloud data storage
      3. Choosing the database
        1. Online transactional processing (OLTP)
        2. Nonrelational databases (NoSQL)
        3. Online analytical processing (OLAP)
        4. Building a data search
      4. Making the networking choice
        1. Defining a DNS routing strategy
        2. Implementing a load balancer
        3. Applying autoscaling
    3. Managing performance monitoring
    4. Summary
  15. Security Considerations
    1. Designing principles for architectural security
      1. Implementing authentication and authorization control
      2. Applying security everywhere
      3. Reducing blast radius
      4. Monitoring and auditing everything all the time
      5. Automating everything
      6. Protecting data
      7. Preparing a response
    2. Selecting technology for architectural security
      1. User identity and access management
        1. FIM and SSO
        2. Kerberos
        3. AD
        4. Amazon Web Services (AWS) Directory Service
        5. Security Assertion Markup Language (SAML)
        6. OAuth and OpenID Connect (OIDC)
      2. Handling web security
        1. Web app security vulnerabilities
          1. Denial of Service (DoS) and Distributed Denial of Service (DDoS) attacks
          2. SQLi attacks
          3. XSS attacks
          4. Cross-Site Request Forgery (CSRF) attacks
          5. Buffer overflow and memory corruption attacks
        2. Web security mitigation
          1. Web Application Firewall (WAF)
          2. DDoS 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. IDS/IPS
          1. Host-based IDS
          2. Network-based IDS
      4. Data security
        1. Data classification
        2. Data encryption
        3. Encryption key management
          1. Envelope encryption
          2. AWS Key Management Service (KMS)
          3. Hardware security module (HSM)
        4. Data encryption at rest and in transit
    3. Security and compliance certifications
    4. The cloud's shared security responsibility model
    5. Summary
  16. Architectural Reliability Considerations
    1. Design principles for architectural reliability
      1. Making systems self-healing
      2. Applying automation
      3. Creating a distributed system
      4. Monitoring capacity
      5. Performing recovery validation
    2. Technology selection for architecture reliability
      1. Planning the RTO and RPO
      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 disaster recovery
    3. Improving reliability with the cloud
    4. Summary
  17. Operational Excellence Considerations
    1. Designing principles for operational excellence
      1. Automating the operation
      2. Making incremental and reversible changes
      3. Predicting failures and responding
      4. Learning from the mistake and refining
      5. Keeping operation's runbook updated
    2. Selecting technologies for operational excellence
      1. Planning for operational excellence
        1. IT Asset Management (ITAM)
        2. Configuration management
      2. The functioning of operational excellence
        1. Monitoring system health
          1. Infrastructure monitoring
          2. Application monitoring
          3. Platform monitoring
          4. Log monitoring
          5. Security monitoring
        2. Handling alerts and incident response
      3. Improving operational excellence
        1. ITOA
        2. RCA
        3. Auditing and reporting
    3. Achieving operational excellence in the public cloud
    4. Summary
  18. 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
      4. Monitoring cost usage and report
    3. Cost optimization in the public cloud
    4. Summary
  19. DevOps and Solution Architecture Framework
    1. Introducing DevOps
    2. Understanding the benefits of DevOps
    3. Understanding the components of DevOps
      1. CI/CD
      2. Continuous monitoring and improvement
      3. IaC
      4. Configuration management (CM)
    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. CI server
      4. Code deployment
      5. Code pipeline
    9. Implementing DevOps best practices
    10. Summary
  20. Data Engineering and Machine Learning
    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
          1. Relational databases
          2. Data warehousing
        2. NoSQL databases
          1. SQL versus NoSQL databases
        3. Types of NoSQL data store
        4. Search data stores
        5. Unstructured data stores
        6. Data lakes
    5. Processing data and performing analytics
      1. Technology choices for data processing and analysis
    6. Visualizing data
      1. Technology choices for data visualization
    7. Understanding IoT
    8. What is ML?
    9. Working with data science and ML
    10. Evaluating ML models – overfitting versus underfitting
    11. Understanding supervised and unsupervised ML
    12. Summary
  21. Architecting 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. Defining a strategy for system modernization
      1. Benefits of system modernization
      2. Assessment of a legacy application
      3. Defining the modernization approach
      4. Documentation and support
    3. Looking at legacy system modernization techniques
      1. Encapsulation, rehosting, and re-platforming
      2. Refactoring and rearchitecting
      3. Redesigning and replacing
    4. Defining a cloud migration strategy for legacy systems
    5. Summary
  22. 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 
      5. Solution delivery
      6. Solution management
      7. Appendix section of SAD
    4. IT procurement documentation for a solution architecture 
    5. Summary
  23. 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 and OKRs
    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
  24. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think
3.135.198.49