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

Case study of the good enough architecture

Case study of the good enough architecture

Jakub Kubryński

July 01, 2017
Tweet

More Decks by Jakub Kubryński

Other Decks in Programming

Transcript

  1. @jkubrynski
    CASE STUDY
    OF THE
    GOOD ENOUGH ARCHITECTURE
    JAKUB KUBRYNSKI
    [email protected] / @jkubrynski / kubrynski.com

    View Slide

  2. $ WHOAMI
    DEVSKILLER CO-FOUNDER
    BOTTEGA TRAINER
    DEVOXX.PL PROGRAM COMMITTEE MEMBER
    OPEN SOURCE CONTRIBUTOR

    View Slide

  3. "Have no fear of perfection - you'll never reach it." ― Salvador Dalí

    View Slide

  4. WHAT YOU CAN LEARN
    FROM A STARTUP

    View Slide

  5. IS THERE
    A PERFECT
    ARCHITECTURE?

    View Slide

  6. FAST FEEDBACK
    AND
    COST-EFFECTIVE

    View Slide

  7. 1. MOST ORGANIZATIONS "DO AGILE"
    2. MOST ORGANIZATIONS SHIP NEW FEATURES
    IN MONTHS

    View Slide

  8. DON'T DO AGILE.
    BE AGILE!

    View Slide

  9. CONTINUOUS DELIVERY

    View Slide

  10. RELEASE
    VS
    DEPLOYMENT

    View Slide

  11. REGRESSION
    IS TOO EXPENSIVE

    View Slide

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

    View Slide

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

    View Slide

  14. MICROSERVICES
    AUTONOMOUS RELEASES
    CLOUD READY
    FAST PIPELINES

    View Slide

  15. COMMUNICATION
    IS THE ROOT OF ALL EVIL

    View Slide

  16. SLA
    99.9 ^ 10 = 99.0

    View Slide

  17. QUALITY
    SHARED MODEL?
    E2E TESTS?

    View Slide

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

    View Slide

  19. SAY NO TO VERSIONING
    BE UP TO DATE

    View Slide

  20. PERFORMANCE

    View Slide

  21. PERFORMANCE TESTS
    ARE EVEN MORE EXPENSIVE
    THAN REGRESSION

    View Slide

  22. PERFORMANCE TESTS
    CANARY DEPLOYMENTS
    MONITORING

    View Slide

  23. MONITORING
    IS THE NEW TESTING

    View Slide

  24. MONITORING
    PERFORMANCE
    SYSTEM HEALTH
    EXCEPTIONS

    View Slide

  25. METRICS EVERYWHERE
    LIVE BUSINESS INTELLIGENCE
    DATA DRIVEN ORGANIZATION

    View Slide

  26. DATA DRIVEN
    MEANS
    ONLY VALUABLE STUFF

    View Slide

  27. ANY ACTION IS
    AN INVESTMENT

    View Slide

  28. THINK ABOUT
    ROI

    View Slide

  29. SAFE TO FAIL
    MINIMIZE IMPACT

    View Slide

  30. SAFE TO FAIL
    SELF-HEALING COMMUNICATION

    View Slide

  31. SAFE TO FAIL
    INSTANT WARNING

    View Slide

  32. SAFE TO FAIL
    ROLLBACK

    View Slide

  33. SAFE TO FAIL
    ELIMINATE HUMAN ERRORS

    View Slide

  34. REPEATABILITY

    View Slide

  35. AUTOMATION

    View Slide

  36. MACHINES COMPARED TO HUMANS:
    ARE GOOD IN REPEATING TASKS
    ARE EASY TO ESTIMATE
    ARE MUCH CHEAPER

    View Slide

  37. AUTOMATE
    TESTS

    View Slide

  38. AUTOMATE
    DEPLOYMENTS

    View Slide

  39. AUTOMATE
    SETUP

    View Slide

  40. AUTOMATE
    INFRASTRUCTURE

    View Slide

  41. EVERYTHING IS CODE
    APPLICATION SOURCE
    BUILD JOBS
    DEPLOYMENT PIPELINES
    DEPLOYMENT SCRIPTS
    INFRASTRUCTURE
    OS CONFIGURATION
    APPLICATION PROPERTIES
    RUN BOOKS

    View Slide

  42. NO BACKUPS
    * EXCEPT DATA AND GIT

    View Slide

  43. MINIMIZE OVERHEAD
    BY
    KEEPING ORDER

    View Slide

  44. CONVENTION
    OVER
    CONFIGURATION

    View Slide

  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}

    View Slide

  46. GOOD ENOUGH

    View Slide

  47. KEY TAKEAWAYS
    MONITORING
    AUTOMATION
    CONVENTIONS
    CONTINUOUS DELIVERY

    View Slide

  48. QUESTIONS?

    View Slide

  49. THANKS
    FOR YOUR PATIENCE

    View Slide