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

Code to Current Account

Code to Current Account

Presented with Simon Vans-Colina at Hashidays London

mattheath

June 12, 2017
Tweet

More Decks by mattheath

Other Decks in Programming

Transcript

  1. Code to 

    Current Account
    @simonvc & @mattheath

    View full-size slide

  2. @simonvc @mattheath

    View full-size slide

  3. @simonvc @mattheath

    View full-size slide

  4. Legacy banks

    View full-size slide

  5. Number of banks running entirely* free* software.

    View full-size slide

  6. Number of banks running entirely* free* software.

    View full-size slide

  7. Rebuild everything
    * Go microservices
    * Git as Change management
    * Realtime and API

    View full-size slide

  8. Go ❤
    * Emphasis on

    correctness
    * Performant
    * Lean

    View full-size slide

  9. "Plan to throw your first one away."
    Mesos -> Kubernetes
    RabbitMQ -> LinkerD
    Cloud Formation -> Terraform

    View full-size slide

  10. github.com/hashicorp/vault/
    pull/2241
    Cassandra storage backend

    View full-size slide

  11. 0
    40
    80
    160
    120
    Feb
    2015
    June
    2017
    200
    Number of services
    240

    View full-size slide

  12. Service
    Service

    View full-size slide

  13. Service
    Service Service
    Service

    View full-size slide

  14. Service
    Service Service
    Service
    HTTP
    HTTP

    View full-size slide

  15. Service Discovery
    Load Balancing
    Timeouts and Expirations
    Retries
    Rate Limiting
    Connection Pooling
    Circuit Breaking
    Failure Detection
    Metrics and Tracing
    Interrupts
    Context Propagation

    View full-size slide

  16. Service
    Service Service
    Service
    HTTP
    HTTP
    ?

    View full-size slide

  17. Service
    Service Service
    Service
    HTTP
    HTTP
    linkerd

    View full-size slide

  18. Service
    Service Service
    Service
    HTTP
    HTTP
    linkerd
    service
    discovery

    View full-size slide

  19. Service Discovery
    Load Balancing
    Timeouts and Expirations
    Retries
    Rate Limiting
    Connection Pooling
    Circuit Breaking
    Failure Detection
    Metrics and Tracing
    Interrupts
    Context Propagation

    View full-size slide

  20. Service
    Service Service
    Service
    HTTP
    HTTP
    linkerd
    service
    discovery

    View full-size slide

  21. Service
    Service Service
    Service
    Service
    linkerd
    host A
    Service

    View full-size slide

  22. Service
    Service Service
    Service
    linkerd
    host B
    Service Service
    Service
    Service Service
    Service
    Service
    linkerd
    host A
    Service
    Service
    Service Service
    Service
    Service
    linkerd
    host C
    Service

    View full-size slide

  23. Service
    Service Service
    Service
    linkerd
    host B
    Service Service
    Service
    Service Service
    Service
    Service
    linkerd
    host A
    Service
    Service
    Service Service
    Service
    Service
    linkerd
    host C
    Service

    View full-size slide

  24. Service
    Service Service
    Service
    linkerd
    host B
    Service Service
    Service
    Service Service
    Service
    Service
    linkerd
    host A
    Service
    Service
    Service Service
    Service
    Service
    linkerd
    host C
    Service

    View full-size slide

  25. Service
    Service Service
    Service
    linkerd
    host B
    Service Service
    Service
    Service Service
    Service
    Service
    linkerd
    host A
    Service
    Service
    Service Service
    Service
    Service
    linkerd
    host C
    Service

    View full-size slide

  26. Service
    Service Service
    Service
    linkerd
    host B
    Service Service
    Service
    Service Service
    Service
    Service
    linkerd
    host A
    Service
    Service
    Service Service
    Service
    Service
    linkerd
    host C
    Service

    View full-size slide

  27. Amazon 

    eu-west-1

    View full-size slide

  28. Amazon 

    eu-west-1

    View full-size slide

  29. Amazon 

    eu-west-1
    colocation

    dc 1
    colocation

    dc 2

    View full-size slide

  30. Amazon 

    eu-west-1
    colocation

    dc 1
    colocation

    dc 2

    View full-size slide

  31. Amazon 

    eu-west-1
    colocation

    dc 1
    colocation

    dc 2

    View full-size slide

  32. Amazon 

    eu-west-1
    colocation

    dc 1
    colocation

    dc 2
    BGP
    BGP
    BGP
    BGP

    View full-size slide

  33. Amazon 

    eu-west-1
    colocation

    dc 1
    colocation

    dc 2

    BGP
    BGP

    View full-size slide

  34. Amazon 

    eu-west-1
    colocation

    dc 1
    colocation

    dc 2


    View full-size slide

  35. third parties
    colocation
    AWS
    Hardware

    VPN device

    View full-size slide

  36. third parties
    colocation
    AWS
    Hardware

    VPN device
    VPN client

    View full-size slide

  37. third parties
    colocation
    AWS
    “connectivity” pod
    Quagga
    (BGP)
    services
    Hardware

    VPN device
    VPN client

    BGP

    View full-size slide

  38. third parties
    colocation
    AWS
    “connectivity” pod
    Quagga
    (BGP)
    services ??????
    VPN client

    BGP

    View full-size slide

  39. third parties
    colocation
    AWS
    “connectivity” pod
    Quagga
    (BGP)
    services ??????
    VPN client

    BGP

    View full-size slide

  40. third parties
    colocation
    “connectivity” pod
    Quagga
    (BGP)
    VPN client

    BGP

    View full-size slide

  41. third parties
    colocation
    “connectivity” pod
    Quagga
    (BGP)
    VPN client

    BGP

    View full-size slide

  42. third parties
    colocation
    “connectivity” pod
    Quagga
    (BGP)
    VPN client

    BGP

    View full-size slide

  43. third parties
    colocation
    “connectivity” pod
    Quagga
    (BGP)
    VPN client

    BGP
    Linux HA
    Linux HA

    View full-size slide

  44. third parties
    colocation
    “connectivity” pod
    Quagga
    (BGP)
    VPN client

    BGP
    Linux HA
    Linux HA

    View full-size slide

  45. third parties
    colocation
    “connectivity” pod
    Quagga
    (BGP)
    VPN client

    BGP

    View full-size slide

  46. active standby

    View full-size slide

  47. active standby

    View full-size slide

  48. active standby

    View full-size slide

  49. active standby

    View full-size slide

  50. standby active

    View full-size slide

  51. third parties
    colocation
    AWS
    “connectivity” pod
    Quagga
    (BGP)
    services ??????
    VPN client

    BGP

    View full-size slide

  52. third parties
    colocation
    AWS
    “connectivity” pod
    Quagga
    (BGP)
    services
    HA VPN

    Appliance
    VPN client

    BGP

    View full-size slide

  53. Amazon 

    eu-west-1

    View full-size slide

  54. Build: Terraform
    Secure: Vault
    Develop: Vagrant
    Provision: Packer

    View full-size slide

  55. monzo.com/careers

    View full-size slide

  56. monzo.com/careers

    View full-size slide