Design Considerations for AWS
Course Details | Find Out More |
---|---|
Code | WA3585 |
Tuition (CAD) | Array |
Tuition (USD) | Array |
This AWS design course gives participants a deep dive into the AWS Cloud Adoption Framework (CAF), a structured approach to guide organizations through their cloud adoption journey. Participants learn the core principles of CAF, its six perspectives, and how to use it to align technical solutions with business strategy. Participants learn key concepts such as requirements gathering, cost optimization, architecture deliverables, and application modernization using serverless computing. It also explores various architecture frameworks, reference architectures, and Domain Driven Design concepts. Participants then complete a capstone project where they apply their knowledge to build a 12-factor microservices-based e-commerce application on AWS. This hands-on experience reinforces best practices in modern cloud-native application development and deployment.
Skills Gained
- Understand the core principles and perspectives of the AWS Cloud Adoption Framework (CAF).
- Apply CAF to identify pain points, business objectives, and align technical solutions with business strategy.
- Master effective requirements gathering techniques, including enterprise modeling and TCO analysis.
- Translate business requirements into technical requirements and map them to AWS services.
- Design and create effective architectural deliverables, including requirements documents, interface specifications, and architecture decision documents.
- Leverage serverless computing for application modernization and understand its benefits.
- Apply various architectural patterns and frameworks, including TOGAF, Zachman, and FEAF.
- Utilize reference architectures and adapt them to specific application requirements.
- Understand Domain Driven Design concepts and apply them to cloud solutions.
- Leverage design thinking principles to foster innovation and solve cloud-related challenges.
- Develop a 12-factor microservices application on AWS.
Prerequisites
- Basic understanding of cloud computing concepts
- Familiarity with AWS services IT architecture or solution design is beneficial but not mandatory
- Basic understanding of microservices architecture and the 12-factor methodology
- Familiarity with at least one programming language (e.g., Node.js, Python, Java)
- Basic knowledge of Git and version control
- Access to an AWS account for the capstone project (instructions and resources will be provided)
Course Content
Introduction to AWS Cloud Adoption Framework (CAF)
- Core Principles of CAF
- How to use CAF?
- Six Perspectives of CAF
- Why use CAF?
- Deep Dive into the Six Perspectives
- Business Perspective
- People Perspective
- Governance Perspective
- Platform Perspective
- Security Perspective
- Operations Perspective
- Mapping Organizational Roles to CAF Perspectives
Engaging with Clients
- Identifying Pain Points and Business Objectives
Strategic vs Tactical Conversations
- Aligning Technical Solutions with Business Strategy
Asking the Right Questions
- Effective questioning
- Prioritization Techniques for Gathered Requirements
Requirements Gathering
- What is Requirements Gathering
- Enterprise Model used for Requirement Gathering
- Understanding Business Drivers
- Analyzing Total Cost of Ownership (TCO)
- Identifying potential areas for cost optimization
- Examples of Cost Optimization
- Assessing security and compliance needs
- Translating business requirements to technical requirements
- Technical Requirements Examples
- Creating traceability matrices
- Mapping business needs to AWS services and features
- Example AWS Mapping
- Workload assessment and selection
- Example Assessment Scenario
- Architectural Deliverables
- Architectural requirements and description documents
- Creating Effective Architectural Documents
- Interface specifications and design documents
- Database design documents
- Architecture decision documents (ADDs)
- Best Practices for Architecture Decision Documents
Architecture Deliverables
- Documentation Best Practices
- Architecture Requirements Document
- Template: Requirements Specification
- IEEE Architectural Description Document
- Template: Architectural Description Document
- TOGAF Architecture Definition Document
- Templates: Architectural Definition Document
- Group Discussion: Architecture Definition Documents
- Interface Specifications
- Interface Specification Best Practices
- Interface Design Document
- Template: Interface Design Document
- Database Design Document
- Template: Database Design Document
- Platform Design Document
- Template: Platform Design Document
- Architecture Decision Document
- Template: Architecture Decision Document
- Verbal Supports: CREST
- Group Discussion: Presentations
Core Solution Architecture Methods
- Shared Vision
- Example Shared Vision
- Draw the Boundary
- Well-defined Interface
- Example: Context Diagram
- Identify the External Interfaces
- Subsystems
- Subsystem Context Diagram
- Layers
- Example: Subsystems with Layers
- Components
- Decomposing the System
- Partitioning Patterns
- Software Partitioning Strategies
- Example Partitioning Based on Patterns
- Example: Healthcare SOA Framework
- Requirements Allocation
- Group Discussion: Requirements Allocation
- Configuration Management Implications
- Release Management Implications
- Testing Implications
- Test Strategy
- Work Pattern & Skill Set Implications
- Team Specialization
- Work & Build Dependencies
- Component Dependencies
- Increment/Sprint Planning
- Increments & Sprints
- Sizing Implications
- Estimating Development Costs
- More Than Executable Architecture
- Development Architecture
- Operations Architecture
- Group Discussion: Integrating Operations Architecture
Patterns
- What are Patterns?
- Elements of a Pattern
- Pattern Levels
- Pattern Types
- How to Start Using Patterns?
- Common Architectural Patterns
- Layers Pattern
- Example: Retail Layered Architecture
- Object-Oriented Design Patterns
- OO Design Patterns
- Structural Design Pattern: Facade Pattern Example
- Enterprise Integration Patterns
- Messaging Systems: Overview
- Example Pattern: Pipes and Filters
- Example: Monitoring Credit Bureau
- EAA Patterns
- Model-View-Controller (MVC) Pattern
- SOA Patterns
- Example: Saga Pattern
- Business Process Patterns
- Using Process Patterns
- Example: Synchronizing Merge Pattern
- Configuration Management Patterns
- New Patterns Continue to Emerge
- Group Discussion: Patterns
Serverless Computing for Application Modernization
- AWS Serverless Computing Products for Application Modernization
- Common Application Modernization Use Cases
- AWS Serverless Products
- AWS Lambda
- Amazon API Gateway
- Amazon DynamoDB
- AWS Step Functions
- AWS EventBridge
- Benefits of Using AWS Serverless Computing for Modernization
- Summary
Application Modernization
- Next Generation Methodologies, Approaches, Tools, and Applications
- What is Application Modernization
- Typical App Modernization Projects
- Why Modernization?
- Goals for Application Modernization
- Modernization Process
- Modernization in a Nutshell - Analyze
- Modernization in a Nutshell - Rationalize
- Modernization in a Nutshell - Modernize
- Modernization in a Nutshell – Supervise
- What Can Be Done to Modernize Applications?
- So, How Can Microservices Help Me?
- The Data Exchange Interoperability Consideration
- Microservices in Their Purest Form: AWS Lambdas
- The Microservices Architecture Design Principles
- Decentralized Processing
- Crossing Process Boundary is Expensive!
- Managing Microservices
- Traditional Enterprise Application Architecture (Simplified)
- Monolithic revisited
- Monolithic vs Microservices
- Microservices Architecture Example (Simplified)
- Maintaining State in App Modernization
- Twelve-factor Applications
- Twelve Factors, Microservices, and App Modernization
- Factor Microservice Codebase
- Factor Microservice Dependencies
- Factor Microservice Config
- Factor Microservice Backing Services
- Factor Microservice Continuous Delivery
- Factor Microservice Processes
- Factor Microservice Data Isolation
- Factor Microservice Concurrency
- Factor Microservice Disposability
- Factor Microservice Environment Parity
- Factor Microservice Logs
- Factor Microservice Admin Processes
- Design for Failure
- Fault Injection During System Testing
- Messaging Architectures – Messaging Models
- What is Kafka?
- Kafka Architecture
- Need for Kafka
EA Framework
- The Importance of a Framework for EA
- EA Framework Family Tree
- Group Discussion: Architecture Frameworks
- TOGAF
- TOGAF Components
- Architecture Development Method (ADM)
- Architecture Content Framework
- Views & Viewpoints
- TOGAF Viewpoints
- Viewpoints
- Catalogs, Matrices, Diagrams & Viewpoints
- Architecture Deliverables
- Group Discussion: Deliverables & Artifacts
- ADM Techniques
- ADM Guidelines
- Enterprise to Solution Architecture
- Example: Architecture Roadmap
- Zachman Framework
- Zachman Framework Matrix Overview
- TOGAF Artifacts Using the Zachman Framework
- Leveraging the Zachman Framework
- Federal Enterprise Architectural Framework (FEAF)
- Leveraging FEA
- Technique: Classified Technology Portfolio
- DoDAF / MODAF
- TRAK
- Leveraging DoDAF, MoDAF, & TRAK
- All Frameworks Have Strengths & Weaknesses
- Which Framework Should I Use?
EA Reference Architecture
- Reference Architecture
- Reference Architecture Components
- Reference Architecture Summarized
- Reference Architecture Context
- Architecture Principles
- Components of Principles
- Qualities of a Good Set of Principles
- EA Principles: Creation Process
- Templates: Principle & Principle Catalog
- Example: Architecture Principles
- Example: Architecture Principles
- Group Discussion: Principles
- Applying Architecture Principles
- Policies
- Template: Policy
- Example: Governance Policies
- Policies Legitimize & Communicate
- Example: SOA Policy
- Example: Policies
- Reference Models
- Example: IBM Business Analytics & Optimization Reference Architecture
- Example: IBM Insurance Application Architecture
- Example: SOA Reference Architecture
- Example: Customer Experience Reference Architecture
- Business Scenarios
- Template & Example: Business Scenario
- Practices: Standards & Guidelines
- Example: Interoperability Standards
- Understanding Industry Standards
- Example: Insurance Reporting Reference Architecture
- Example: Electronic Product Code (EPC) Standards
- Example: Health Care Reference Architecture
- Resource: Financial Industry Organizations
- Resource: Health Industry Organizations
- Resource: Retail Industry Organizations
- Resource: Technical Organizations
- Industry Organizations
- Insurance Industry Standards ROI
- Requirements
- Example: Mobile Security Reference Architecture
- MSRA Overview
- Example: MSRA Requirements
- Requirement Types
- Architecture Building Blocks: Reusable Requirement Sets
- Resource: NIST Security Requirements
- Example: COTS Standard Requirements Set
Adapting Reference Architectures
- Reference architectures
- Steps for Adapting a Reference Architecture
- Understand the Reference Architecture
- Define Your Application Requirements
- Align Your Requirements with the Architecture
- Choose the Right Services:
- Design Your Application:
- Develop and Test
- Deploy and Monitor
- Some Considerations for Adaptation
AWS Reference Architectures
- AWS Architecture Center
- AWS Reference Architectures
- Example AWS Architecture
- Applicable AWS Components by Use Case
- Web Applications
- Data Analytics and Machine Learning
- IoT - Internet of Things
- Mobile Applications
- High-Performance Computing (HPC)
Additional Domain Driven Design Concepts
- Domains versus Contexts
- Bounded Contexts
- Bounded Contexts Stand Alone
- Analyzing Overlap in Bounded Contexts
- Building Blocks
- Entities, Values, and Aggregates
- Entity Objects
- Value Object
- Aggregate
Design Thinking for Cloud Solutions
- Design Thinking
- Key Principles
- Empathy
- Define the Problem
- Ideate
- Prototype
- Test
- Benefits of Design Thinking for Cloud Solutions
Capstone Project: Building a 12-Factor Microservices Application on AWS
- In this hands-on capstone project, participants will apply the knowledge and skills gained throughout the course to design, build, and deploy a 12-factor microservices-based e-commerce application on the AWS platform.
- The application will consist of three core microservices—Product Service, Order Service, and User Service—each adhering to the principles of codebase, dependencies, config, backing services, build, release, run, processes, port binding, concurrency, disposability, dev/prod parity, logs, and admin processes.
- Participants will leverage various AWS services, including DynamoDB, S3, SNS, CodePipeline, Elastic Beanstalk/Fargate, Auto Scaling/ECS Service Scaling, Docker with ECS/EKS, CloudFormation/CDK, and CloudWatch Logs, to implement and deploy their microservices.
- This project will provide practical experience in building resilient, scalable, and cloud-native applications while reinforcing best practices in microservices architecture.