Case study of the good enough architecture

Case study of the good enough architecture

13962ee99d2c07e7b7a7776222532f1d?s=128

Jakub Kubryński

July 01, 2017
Tweet

Transcript

  1. @jkubrynski CASE STUDY OF THE GOOD ENOUGH ARCHITECTURE JAKUB KUBRYNSKI

    jk@devskiller.com / @jkubrynski / kubrynski.com
  2. $ WHOAMI DEVSKILLER CO-FOUNDER BOTTEGA TRAINER DEVOXX.PL PROGRAM COMMITTEE MEMBER

    OPEN SOURCE CONTRIBUTOR
  3. "Have no fear of perfection - you'll never reach it."

    ― Salvador Dalí
  4. WHAT YOU CAN LEARN FROM A STARTUP

  5. IS THERE A PERFECT ARCHITECTURE?

  6. FAST FEEDBACK AND COST-EFFECTIVE

  7. 1. MOST ORGANIZATIONS "DO AGILE" 2. MOST ORGANIZATIONS SHIP NEW

    FEATURES IN MONTHS
  8. DON'T DO AGILE. BE AGILE!

  9. CONTINUOUS DELIVERY

  10. RELEASE VS DEPLOYMENT

  11. REGRESSION IS TOO EXPENSIVE

  12. VERIFY CRITICAL PATHS AND LET YOUR USERS DO THE REST

  13. BUT... CARE ABOUT UNIT TESTS AND FIX BUGS AS ASAP

    AS POSSIBLE
  14. MICROSERVICES AUTONOMOUS RELEASES CLOUD READY FAST PIPELINES

  15. COMMUNICATION IS THE ROOT OF ALL EVIL

  16. SLA 99.9 ^ 10 = 99.0

  17. QUALITY SHARED MODEL? E2E TESTS?

  18. CONTRACTS FTW! IF A==C && B==C THEN A==B

  19. SAY NO TO VERSIONING BE UP TO DATE

  20. PERFORMANCE

  21. PERFORMANCE TESTS ARE EVEN MORE EXPENSIVE THAN REGRESSION

  22. PERFORMANCE TESTS CANARY DEPLOYMENTS MONITORING

  23. MONITORING IS THE NEW TESTING

  24. MONITORING PERFORMANCE SYSTEM HEALTH EXCEPTIONS

  25. METRICS EVERYWHERE LIVE BUSINESS INTELLIGENCE DATA DRIVEN ORGANIZATION

  26. DATA DRIVEN MEANS ONLY VALUABLE STUFF

  27. ANY ACTION IS AN INVESTMENT

  28. THINK ABOUT ROI

  29. SAFE TO FAIL MINIMIZE IMPACT

  30. SAFE TO FAIL SELF-HEALING COMMUNICATION

  31. SAFE TO FAIL INSTANT WARNING

  32. SAFE TO FAIL ROLLBACK

  33. SAFE TO FAIL ELIMINATE HUMAN ERRORS

  34. REPEATABILITY

  35. AUTOMATION

  36. MACHINES COMPARED TO HUMANS: ARE GOOD IN REPEATING TASKS ARE

    EASY TO ESTIMATE ARE MUCH CHEAPER
  37. AUTOMATE TESTS

  38. AUTOMATE DEPLOYMENTS

  39. AUTOMATE SETUP

  40. AUTOMATE INFRASTRUCTURE

  41. EVERYTHING IS CODE APPLICATION SOURCE BUILD JOBS DEPLOYMENT PIPELINES DEPLOYMENT

    SCRIPTS INFRASTRUCTURE OS CONFIGURATION APPLICATION PROPERTIES RUN BOOKS
  42. NO BACKUPS * EXCEPT DATA AND GIT

  43. MINIMIZE OVERHEAD BY KEEPING ORDER

  44. CONVENTION OVER CONFIGURATION

  45. CONVENTION EXAMPLE repository: git.acme.com/repos/{serviceName}.git artifactId: target/{serviceName}.jar application home: /opt/{serviceName} logs:

    /opt/{serviceName}/logs/service.log dashboard: grafana.acme.com/dashboard/db/{serviceName} public ip: acme-prod-weu-{serviceName}-pip loadbalancer: acme-prod-weu-{serviceName}-lb VMs: acme-prod-weu-{serviceName}-vm-{i}
  46. GOOD ENOUGH

  47. KEY TAKEAWAYS MONITORING AUTOMATION CONVENTIONS CONTINUOUS DELIVERY

  48. QUESTIONS?

  49. THANKS FOR YOUR PATIENCE