Description
In this course, you will :
- Understand the concepts of system architecture and information architecture.
- Learn about the development lifecycle and various software architectures.
- Learn about stability anti-patterns, network connection issues, and vulnerabilities.
- Learn about service discovery systems, the control plane, bounded/unbounded result sets, and the effects of these concepts.
Syllabus :
1. Living in Production
- Scope and Overall Development Lifecycle
- Pragmatic Architecture
2. The Exception That Grounded an Airline
- The Change Window
- The Outage
- Consequences
- Postmortem
- Hunting For Clues
- The Smoking Gun
- An Ounce of Prevention
3. Stabilize Your System
- Real World Problems
- Defining Stability
- Expanding System Lifespan
- Failure Modes
- Stopping Crack Propagation
- Chain Of Failure
4. Stability Antipatterns
- Antipatterns
- Integration points
- Socket Based Protocols
- Network Connection
- The 5 AM Problem
- TCP With Firewall
- Socket Connection Failure
- HTTP Protocols
- Vendor API Libraries
- Countering Integration Point Problems
- Chain Reactions
- Avoid Failures
5. Failures And Blockages
- Cascading Failures
- Users
- Heap Memory
- Sockets
- Expensive To Serve
- Non-standard Users
- Deadlock And Bad Users
- Malicious Users
- Blocked Threads
- Spot The Blocking
- Libraries
- Self-denial attacks
- Avoiding Self-Denial
- Scaling Effects
- Shared Resources
- Unbalanced Capacities
- Drive Out Through Testing
- Dogpile
6. Force Multiplier
- Outage Amplification
- Controls and Safeguards
- Slow Responses
- Unbounded Result Sets
- Reasons for unbound result set
7. Stability Patterns
- Timeouts
- Timeouts Side Effects And Latency problems
- Circuit Breaker
- Bulkheads
- Steady State
- Data Purging
- Log Files
- Fail Fast
- Let It Crash
- Handshaking
- Test Harnesses
- More About Test Harness and Failure Modes
- Decoupling Middleware
- Shed Load
- Create Back Pressure
- Governor
8. Launching An Online Store
- Calendars
- My First Holiday Load Test
- Taking the Pulse
- Thanksgiving Day and Black Friday
- Vital Signs
- Diagnostic Tests
- Comparing options
9. Foundations
- Physical Fundamentals
- NICs and Names
- Programming for Multiple Networks
- Virtual Machines in the Data Center
- Containers in the Data Center
- The 12-Factor App
- Virtual Machines in the Cloud
- Containers in the Cloud
10. Processes on Machines
- Deployment and Runtime View
- Code
- Configuration
- Transparency
- Designing for Transparency
- Enabling Technologies and Logging
- Human Readability of Log Files and Voodoo Operations
- Instance Metrics and Health Checks
11. Interconnect
- Interconnect Layer
- DNS
- Global Server Load Balancing with DNS
- Availability Of DNS And Load Balancing
- Software and Hardware Load Balancing
- Health Checks
- Demand Control
- Preventing Disaster
- Network Routing
- Discovering Services
- Migratory Virtual IP Addresses
12. Control Plane
- Mechanical Advantage
- System Failure, Not Human Error
- Automation Goes Really Fast
- Platform and Ecosystem
- Development Is Production
- System-Wide Transparency
- Economic Value
- The Risk of Fragmentation and Logs/Stats
- What to Expose
- Configuration Services
- Provisioning and Deployment Services
- Command and Control
- The Platform Players
13. Security
- Security Breaches
- Broken Authentication and Session Management
- Cross-Site Scripting
- Broken Access Control
- Security Misconfiguration
- Sensitive Data Exposure
- Cross-Site Request Forgery
- The Principle of Least Privilege
- Configured Passwords
- Waiting for Godot
14. Design for Deployment
- Planned Downtime
- Automated Deployments
- Continuous Deployment
- Phases of Deployment
- Relational Database Schemata
- Schemaless Databases
- Web Assets
- Rollout
- Cleanup and Deploy Like the Pros
15. Handling Versions
- Non-breaking API changes
- Gap Between Documentation and Actual Implementation
- Breaking API Changes
- Handle Others’ Versions
17. Adaptation
- Convex Returns
- Process and Organization
- Platform Team
- Painless Releases
- Service Extinction
- Team-Scale Autonomy
- Beware Efficiency
18. System Architecture
- Evolutionary Architecture
- Loose Clustering
- Explicit Context
- Create Options
- Splitting
- Incorporating Change
19. Information Architecture
- Databases
- Messages, Events, and Commands
- Services Control Their Identifiers
- URL Dualism
- Embrace Plurality
20. Chaos Engineering
- Production Environment Problems
- Antecedents of Chaos Engineering
- The Simian Army
- Adopting Your Own Monkey
- Injecting Chaos
- Targeting Chaos
- Disaster Simulations