Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Main Themes

  1. Decentralization
  2. Really understand your business needs (models)

Highlights

  • Bringing about change
    • Grassroots with support from exec level
    • Really understand the upcoming business needs
  • Drawbacks of centralized infrastructure (CD, Stage environments, etc)
    • Teams should own their own build pipeline and infrastructure 
    • Teams fork their own image of production
    • Kafka can become a bottleneck
      • Leave control of events to the individual domains/services
    • Same with API gateway
  • Testing
    • Decentralize: do NOT rely on integration tests (they become a bottleneck)
    • Use consumer-driven contract based testing instead
    • Focus on recovery (MTTR) instead of prevention
  • Security
    • Need to consider security earlier in the process rather than late rejections
    • Can no longer rely on a central security perimeter
    • Each microservice - validates and cannot trust
  • Monolith
    • High entropy
    • Start where it matters
      • Business needs - What is coming down the pipeline?
      • Social code analysis - what changes very often?
    • Evolutionary changes, not revolutionary
      • What is the smallest unit of change to get us closer to the goal
      • Don't leave multiple implementations: old and new 
    • Options
      • Rewriting selectively is many times the right approach
      • Break out what's most important
      • Facade with APIs/GraphQL (good start, but..)
        • Unfortunately, core functionality is still locked into the monolith
  • Data pipeline
  • Experimentation
    • Important when production costs are high
  • Consume first, build next
  • Observability (logging/tracing/etc) should be included from the start
    • Developers as the primary producers and consumers of Splunk, etc.