$30 off During Our Annual Pro Sale. View Details »

Microservices - The Naked Truth Of The Maintainability

Microservices - The Naked Truth Of The Maintainability

Jakub Kubryński

April 03, 2017
Tweet

More Decks by Jakub Kubryński

Other Decks in Programming

Transcript

  1. @jkubrynski / kubrynski.com
    MICROSERVICES
    THE NAKED TRUTH OF THE MAINTAINABILITY
    JAKUB KUBRYNSKI
    [email protected] / @jkubrynski / kubrynski.com

    View Slide

  2. $ WHOAMI
    DEVSKILLER CO-FOUNDER
    BOTTEGA TRAINER
    DEVOXX.PL PROGRAM COMMITTEE MEMBER
    SPRING CLOUD CONTRACT CO-AUTHOR

    View Slide

  3. Prawdziwego programistę poznaje się nie po tym, jak zaczyna, ale jak
    utrzymuje.

    View Slide

  4. HOW MICRO?
    100 LOC?
    1K LOC?
    10K LOC?
    100K LOC?

    View Slide

  5. 1K LOC
    AVERAGE ENTERPRISE APP == 500K LOC
    1 ENTEPRISE APP == 500 MICROSERVICES

    View Slide

  6. BUSINESS ORIENTED
    FOR TECHNICAL STUFF WE HAVE LIBS

    View Slide

  7. AUTONOMY

    View Slide

  8. INDEPENDENCE
    P = P(1) * P(2) * ... * P(N)

    View Slide

  9. 99.8 * 99.8 * 99.8 = 99.4

    View Slide

  10. 99.9 ^ 10 = 99.0

    View Slide

  11. AVAILABILITY VS DOWNTIME
    9 9 . 9 9 9 %
    35d 4d 8h 50m 5m per year
    2.5h 14m 1.5m 8s 0.8s per day

    View Slide

  12. DEPTH *
    * SYNCHRONOUS

    View Slide

  13. QUALITY

    View Slide

  14. LOOSE COUPLING
    OVER
    CANONICAL MODEL

    View Slide

  15. AVOID
    END-TO-END TESTS

    View Slide

  16. VERIFY CONTRACTS
    IF: A == C && B == C
    THEN: A == B

    View Slide

  17. DESIGN FOR FAILURE

    View Slide

  18. RETRY

    View Slide

  19. CIRCUIT BREAKER
    KEEP CALM AND FALLBACK

    View Slide

  20. FIX
    AS ASAP AS POSSIBLE

    View Slide

  21. PERFORMANCE

    View Slide

  22. PERFORMANCE TESTS
    EXPENSIVE
    INACCURATE
    TRICKY

    View Slide

  23. PRODUCTION TRAFFIC
    IS USUALLY ON PRODUCTION

    View Slide

  24. MONITORING
    APPLICATION PERFORMANCE MANAGEMENT

    View Slide

  25. ANSCOMBE'S QUARTET

    View Slide

  26. PERCENTILES
    P50, P90, P95, P99

    View Slide

  27. P??
    P95?
    P99?
    P99.5?

    View Slide

  28. 10 REQUESTS PER PAGE
    P90: 100% slow page views
    P95: 50% slow page views
    P99: 10% slow page views

    View Slide

  29. P99
    10 PAGES PER SESSION
    MEANS 100% FRUSTRATED USERS

    View Slide

  30. MONITOR
    P99.9 OR P99.95

    View Slide

  31. AUTOMATION *
    * AS A CODE

    View Slide

  32. PIPELINES AS A CODE

    View Slide

  33. INFRASTRUCTURE AS A CODE

    View Slide

  34. CONFIGURATION AS A CODE

    View Slide

  35. View Slide

  36. QUESTIONS?

    View Slide

  37. THANKS

    View Slide

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

    View Slide