Cloud Technologies
D-CNP

Cloud Native Patterns

Duration

2 days

Format

Instructor Lead

Audience

Software architects, DevOps Engineers, Senior software developers, System designers

Prerequisites

Basic knowledge of microservices architecture

Description

Part 1

  1. Defining Cloud Native
    • Todays application requirements
    • Defining cloud native
    • what is not cloud native
  2. Running CN Apps in prod
    • The obstacles (snowflakes, Risky deployments, etc)
    • continuous delivery, safe deployments, repeatability
  3. The Platform for cn software
    • cn platform evolution
    • Core tenets of the cn platform
    • Capabilities
Part 2
  1. Event Driven microservices: Its not just request/response
    • Reintroducing event-driven computing
    • Introducing Command Query Responsibility Segregation
  2. App Redundancy: Scale out and statelessness
    • cn apps have many instances deployed
    • stateful apps in the cloud(decomposing the monolith and binding to the db)
    • Http & sticky sessions
    • Stateful services and stateless apps(making apps stateful)
  3. App Config: Not just environment variables
    • dynamic scaling
    • increasing & decreasing # of app instances
    • infrastructure changes causing configuration changes
    • updating app configs with zero downtime
    • apps configuration layer
    • injecting system/environment values (In action ENV variables for configs)
    • Introducing the config server (In action)
  4. The App lifecycle: accounting for constant change
    • Single app lifecycle, multiple instance lifecycles
    • blue/green deployments, rolling updates, parallel deployments
    • Coordinating across different app lifecycles
    • in action: credential rotation and app lifecycle
    • dealing with ephemeral rutime environments
    • app state → in action: health endpoints and probes
    • serverless
  5. Accessing apps: Services, routing, and service discovery
    • The service abstraction
    • dynamic routing
    • server-side load balancing / client side load balancing/route freshness
    • Service discovery
    • service discovery with client side load balancing
    • service discovery with kubernetes
    • in action
  6. Interaction Redundancy: retries & other control loops
    • request retries
    • in action: simple retries
    • what could go wrong ?
    • in action: retry storm
    • avoiding retry storms
    • in action:
    • fallback logic (in action: implementation)
    • control loops
  7. Fronting services: Circuit breakers & api gateways
    • circuit breakers
    • implementing circuit breakers
    • api gateways
    • Control loops
  8. Troubleshooting: finding needle in the haystack
    • application logging
    • Pulling & pushing metrics from cn apps
    • the service mesh
  9. Cloud Native data: breaking the data monolith
    • Cache
    • request/response to event-driven
    • in action : event-driven microservices
    • event sourcing
  10. Cheatsheet
    • request/response
    • event-driven
    • CQRS(Command query responsibility segregation)
    • Multiple service instances
    • horizontal scaling
    • stateless services
    • stateful services
    • app configuration through environmental variables
    • config server
    • configuration as code
    • Zero-downtime upgrades
    • rolling updates
    • blue/green upgrades
    • application health checks
    • Liveness probes
    • server-side load balancing
    • client side load balancing
    • service discovery
    • retry
    • safe-service
    • idempotent service
    • fallbacks
    • circuit-breaker
    • api gateways
    • sidecars
    • service mesh
    • distributed tracing
    • event sourcing