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

Coding Night 2015

Coding Night 2015

Christian Bäuerlein

July 17, 2015
Tweet

More Decks by Christian Bäuerlein

Other Decks in Technology

Transcript

  1. View Slide

  2. Hi!
    J
    Christian Bäuerlein • @fabrik42 • github.com/fabrik42

    View Slide

  3. Creating mobility
    using existing resources

    View Slide

  4. Creating mobility
    using existing resources
    Bringing together drivers and passengers
    to share a ride.

    View Slide

  5. 0-5 km
    Urban
    5 - 100 km
    Regional
    100 - 700 km
    Intercity

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. Speed Dating the
    flinc Tech Stack

    View Slide

  10. Backnet

    View Slide

  11. Load
    Balancer
    Load
    Balancer
    Rev.
    Proxy
    Rev.
    Proxy
    App
    Server
    App
    Server
    App
    Server
    App
    Server
    App
    Server
    ...
    Static
    Assets
    Caching
    DB
    Queue
    Ext.
    Service
    Worker
    Worker
    Worker
    Worker
    Worker
    ...
    Micro
    service
    Simplified version of our backnet server setup.

    View Slide

  12. Servers in Germany (owned by German Company)
    All Servers running in VMs
    Provisioning via Chef

    View Slide

  13. Ruby on Rails

    View Slide

  14. 5 Years

    View Slide

  15. > 330k Users

    View Slide

  16. ~100k LOC Ruby

    View Slide

  17. 20 API Clients
    RESTful JSON API
    oAuth 2 Provider
    Detailled test suite

    View Slide

  18. PostgreSQL

    View Slide

  19. Extensions

    View Slide

  20. Stored Procedures
    User Defined Functions

    View Slide

  21. Exceeded 32 Bit Int in 2013

    View Slide

  22. WE LOVE IT!

    View Slide

  23. Background Processing
    Sending Emails
    Calculating Routes
    Processing User Uploads
    External Services

    View Slide

  24. Essential part of our
    architecture
    Don‘t let the user wait.
    Don‘t let the user see errors from external services.
    Retry yourself in the background.
    Come back to the user later.

    View Slide

  25. Microservices
    Sending Email, Push, SMS
    Accessing/processing 3rd party services
    Ruby/Go/C++/Java

    View Slide

  26. Routing Server
    High Performance
    Tailored to the flinc use cases

    View Slide

  27. Business Intelligence

    View Slide

  28. Business Intelligence

    View Slide

  29. Testing

    View Slide

  30. ~7500 Tests

    View Slide

  31. ~3 min for full suite

    View Slide

  32. Rspec
    Jasmine
    Protractor

    View Slide

  33. Deployment

    View Slide

  34. Make your code
    accessible

    View Slide

  35. Communicate
    changes

    View Slide

  36. View Slide

  37. Thank you!
    flinc.org/jobs
    Christian Bäuerlein • @fabrik42 • github.com/fabrik42

    View Slide

  38. View Slide