Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud Driven Development

Cloud Driven Development

Sebastian Korfmann

October 03, 2022
Tweet

More Decks by Sebastian Korfmann

Other Decks in Programming

Transcript

  1. Sebastian Korfmann Entrepreneur, Consultant, Cloud Toolsmith AWS DevTools Hero Formerly

    HashiCorp, Creator of CDK for Terraform Cloudgetriebene Softwareentwicklung / @skorfmann 2
  2. Agenda • How we got here • Cloud Driven Development

    • Workflows & Tools Cloudgetriebene Softwareentwicklung / @skorfmann 3
  3. Fullstack Development - Local Runtime • Well understood workflows •

    Fast Feedback Loops • Test Driven • Conventions • Majestic Monolith! Cloudgetriebene Softwareentwicklung / @skorfmann 4
  4. 12 Factor Apps • declarative automation • maximum portability •

    dev / prod parity Cloudgetriebene Softwareentwicklung / @skorfmann 5
  5. What we have to gain from turning the monolith inside

    out? Cloudgetriebene Softwareentwicklung / @skorfmann 9
  6. What might we loose from turning the monolith inside out?

    Cloudgetriebene Softwareentwicklung / @skorfmann 10
  7. Infrastructure as Code • Terraform • Cloudformation • Azure RM

    / Bicep Cloudgetriebene Softwareentwicklung / @skorfmann 15
  8. Infrastructure is Code • AWS CDK • CDK for Terraform

    • Pulumi Cloudgetriebene Softwareentwicklung / @skorfmann 16
  9. Infrastructure from Code • Serverless Cloud • Cloudflare (i.e. Durable

    Objects) Cloudgetriebene Softwareentwicklung / @skorfmann 17
  10. Goals • Unified Infrastructure and Application Code • Embrace Cloud

    as Runtime • Leverage existing services • Low Costs / Low Maintenance • True Dev / Prod Parity Cloudgetriebene Softwareentwicklung / @skorfmann 19
  11. Local vs Cloud • Local Stack • DDB Local •

    Lambda Local • Step Functions Local • VTL Simulator • Some S3 Compatible local service Cloudgetriebene Softwareentwicklung / @skorfmann 21
  12. Serverless Stack • Focused on improving AWS API Gateway /

    Lambda experience • Various runtimes (e.g. Node, Python) • Developer Console Cloudgetriebene Softwareentwicklung / @skorfmann 23
  13. Hotswap • Various AWS Services (e.g. Lambda, AppSync, Step Functions)

    • Bypassing Cloudformation • Similar speed to Terraform (tuned) Cloudgetriebene Softwareentwicklung / @skorfmann 29
  14. Watch / Parallel • Only Deploy / Hotswap changed Resources

    • Deploy in parallel where possible Cloudgetriebene Softwareentwicklung / @skorfmann 30
  15. Iteration Speed Conclusion • Serverless Stack • Merloc • Functionless

    • Watch • Hot Swap Cloudgetriebene Softwareentwicklung / @skorfmann 31
  16. Default to Constructs • Dependency Injection (e.g. a Bucket) •

    Composable • Testable Cloudgetriebene Softwareentwicklung / @skorfmann 33
  17. Dedicated Test Stacks • Totally valid to create stacks just

    for the sake of testing • Deploy Helper for Testing (e.g. event spy) Using xray • Start trace from test • Tried this, not sure if it's worth it Cloudgetriebene Softwareentwicklung / @skorfmann 36
  18. Challenges • Async Behaviour (e.g. queues, trigger, timeouts) • Step

    Function Workflows • Feedback Loops Cloudgetriebene Softwareentwicklung / @skorfmann 37
  19. • CDK Watch (beware of rate limits) • Cloudash.dev •

    Lola.dev • Cloudcanvas.xyz (closed alpha) • Dynobase.dev • SST.dev Console • Custom Plumbing Cloudgetriebene Softwareentwicklung / @skorfmann 41
  20. Cloud Driven Development • Fast iterations • Small Components •

    Testable • Observable Cloudgetriebene Softwareentwicklung / @skorfmann 45
  21. Are we there yet? Not quite - but we're getting

    there Cloudgetriebene Softwareentwicklung / @skorfmann 46
  22. Move Development Closer to the Cloud as it becomes the

    Runtime Cloudgetriebene Softwareentwicklung / @skorfmann 47