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

How system for Harley-Davidson 115th anniversary with 110 000 attendees has been built

Tomas Jukin
September 22, 2018

How system for Harley-Davidson 115th anniversary with 110 000 attendees has been built

Tomáš will tell you a story how a small (10 people) company from Prague called Juicymo successfully built an information system and three mobile apps for a huge event with 110 000 attendees. It was an epic journey which started 2 years ago. It's full of funny moments, challenges and lessons learned. I will share it with you. DevOps included!

The talk was presented at the WebExpo 2018 conference in Prague. The video is available here: https://slideslive.com/38910598/how-system-for-harleydavidson-115th-anniversary-with-110-000-attendees-has-been-built

Tomas Jukin

September 22, 2018
Tweet

More Decks by Tomas Jukin

Other Decks in Programming

Transcript

  1. How the system for 

    Harley-Davidson 

    115th Anniversary
    with 110 000 attendees
    has been built
    Tomáš Jukin
    Co-Founder at Juicymo
    @Inza

    View full-size slide

  2. What is a key skill for creating
    system for 100 000+ users?

    View full-size slide

  3. @Inza
    Co-Founder at Juicymo
    Tomáš Jukin

    View full-size slide

  4. @Inza
    Co-Founder at Juicymo
    Tomáš Jukin

    View full-size slide

  5. @Inza
    Co-Founder at Juicymo
    Tomáš Jukin

    View full-size slide

  6. @Inza
    Co-Founder at Juicymo
    Tomáš Jukin

    View full-size slide

  7. @Inza
    Co-Founder at Juicymo
    Tomáš Jukin

    View full-size slide

  8. The Meeting
    @Inza @JuicymoEN

    View full-size slide

  9. The Meeting
    @Inza @JuicymoEN
    How it all started

    View full-size slide

  10. Monday
    5. 9. 2016
    @Inza @JuicymoEN

    View full-size slide

  11. @Inza @JuicymoEN

    View full-size slide

  12. The
    IT Guy
    @Inza @JuicymoEN

    View full-size slide

  13. The
    IT Guy
    @Inza @JuicymoEN
    The

    Event
    Manager

    View full-size slide

  14. The
    IT Guy
    @Inza @JuicymoEN
    The

    Event
    Manager
    The

    Event
    Coordinator

    View full-size slide

  15. The
    IT Guy
    @Inza @JuicymoEN
    The

    Event
    Manager
    The

    Event
    Coordinator
    The

    CEO

    View full-size slide

  16. The
    IT Guy
    @Inza @JuicymoEN
    The

    Event
    Manager
    The

    Event
    Coordinator
    The

    CEO

    View full-size slide

  17. The
    IT Guy
    @Inza @JuicymoEN
    The

    Event
    Manager
    The

    Event
    Coordinator
    The

    Project
    Manager
    The

    CEO

    View full-size slide

  18. The Event
    @Inza @JuicymoEN

    View full-size slide

  19. 5 - 8 July 2018
    In Prague
    @Inza @JuicymoEN

    View full-size slide

  20. 115th Anniversary 

    of Harley-Davidson
    @Inza @JuicymoEN

    View full-size slide

  21. 110 000 attendees
    @Inza @JuicymoEN

    View full-size slide

  22. 110 000 attendees
    @Inza @JuicymoEN
    within 4 days

    View full-size slide

  23. 110 000 attendees
    @Inza @JuicymoEN
    within 4 days
    40 000 at once (!)

    View full-size slide

  24. 110 000 attendees
    @Inza @JuicymoEN
    within 4 days
    40 000 at once (!)
    30 000 on bike (!!!)

    View full-size slide

  25. I have one concern only - how we will process
    40 000 bikers if they arrive in one day…
    @Inza @JuicymoEN
    — the event manager

    February 2018

    View full-size slide

  26. The System
    @Inza @JuicymoEN

    View full-size slide

  27. E-Shop: 30 / 5 / 2017 - 8 / 7 / 2018

    System: 1 / 7 / 2018 - 8 / 7 / 2018
    @Inza @JuicymoEN

    View full-size slide

  28. We need just a simple system. It will be an
    e-shop where tickets can be bought and
    mobile app to process them at the entrance.
    @Inza @JuicymoEN

    View full-size slide

  29. and few “details” …
    @Inza @JuicymoEN

    View full-size slide

  30. @Inza @JuicymoEN

    View full-size slide

  31. 1. More than tickets in the e-shop
    @Inza @JuicymoEN

    View full-size slide

  32. 1. More than tickets in the e-shop
    2. Only ticket owners can buy them
    @Inza @JuicymoEN

    View full-size slide

  33. 1. More than tickets in the e-shop
    2. Only ticket owners can buy them
    3. 115 additional items
    @Inza @JuicymoEN

    View full-size slide

  34. 1. More than tickets in the e-shop
    2. Only ticket owners can buy them
    3. 115 additional items
    4. Around 100 places to redeem them
    @Inza @JuicymoEN

    View full-size slide

  35. 1. More than tickets in the e-shop
    2. Only ticket owners can buy them
    3. 115 additional items
    4. Around 100 places to redeem them
    5. 300 000 users
    @Inza @JuicymoEN

    View full-size slide

  36. 1. More than tickets in the e-shop
    2. Only ticket owners can buy them
    3. 115 additional items
    4. Around 100 places to redeem them
    5. 300 000 users
    6. Up to 80 000 at once
    @Inza @JuicymoEN

    View full-size slide

  37. @Inza @JuicymoEN

    View full-size slide

  38. 7. Buy for friends
    @Inza @JuicymoEN

    View full-size slide

  39. 7. Buy for friends
    8. 6 languages
    @Inza @JuicymoEN

    View full-size slide

  40. 7. Buy for friends
    8. 6 languages
    9. 115 additional items
    @Inza @JuicymoEN

    View full-size slide

  41. 7. Buy for friends
    8. 6 languages
    9. 115 additional items
    10. Payment gateway
    @Inza @JuicymoEN

    View full-size slide

  42. 7. Buy for friends
    8. 6 languages
    9. 115 additional items
    10. Payment gateway
    11. EET
    @Inza @JuicymoEN

    View full-size slide

  43. 7. Buy for friends
    8. 6 languages
    9. 115 additional items
    10. Payment gateway
    11. EET
    12. SLA Request time <1s at peak end user
    @Inza @JuicymoEN

    View full-size slide

  44. The Users
    @Inza @JuicymoEN

    View full-size slide

  45. The
    Organiser

    View full-size slide

  46. The
    Supervisor
    The picture is
    illustrative

    View full-size slide

  47. The
    Accounting

    Lady
    The picture is
    illustrative

    View full-size slide

  48. The
    DevOps
    Guys

    View full-size slide

  49. The
    Wild

    Hostess

    View full-size slide

  50. The Frontend
    @Inza @JuicymoEN

    View full-size slide

  51. Responsive
    E-Shop

    View full-size slide

  52. Biker
    Mobile App

    View full-size slide

  53. Scanner
    Mobile App

    View full-size slide

  54. The Backend
    @Inza @JuicymoEN

    View full-size slide

  55. @Inza @JuicymoEN
    Backend

    View full-size slide

  56. @Inza @JuicymoEN
    Supervizor
    Dashboard
    Backend
    Admin
    Wild Hostess
    Admin
    Finder
    Dashboard
    Backend

    View full-size slide

  57. @Inza @JuicymoEN
    Supervizor
    Dashboard
    Monitoring Big Data
    Onsite
    Support
    Backend
    Admin
    Wild Hostess
    Admin
    Finder
    Dashboard
    SLA

    Disaster

    Recovery
    Backend

    View full-size slide

  58. @Inza @JuicymoEN
    Supervizor
    Dashboard
    Monitoring Big Data
    Onsite
    Support
    Backend
    Admin
    Wild Hostess
    Admin
    Finder
    Dashboard
    SLA

    Disaster

    Recovery
    Backend

    View full-size slide

  59. The DevOps
    @Inza @JuicymoEN

    View full-size slide

  60. The DevOps
    @Inza @JuicymoEN
    For the monstrosity ;)

    View full-size slide

  61. @Inza @JuicymoEN

    View full-size slide

  62. @Inza @JuicymoEN
    Riding

    Biker

    View full-size slide

  63. @Inza @JuicymoEN
    Walking

    Biker
    Riding

    Biker

    View full-size slide

  64. @Inza @JuicymoEN
    Walking

    Biker
    Riding

    Biker
    Organiser

    View full-size slide

  65. @Inza @JuicymoEN
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess

    View full-size slide

  66. @Inza @JuicymoEN
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor

    View full-size slide

  67. @Inza @JuicymoEN
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    Accounting Lady

    View full-size slide

  68. @Inza @JuicymoEN
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    E-Shop

    Backend
    Accounting Lady

    View full-size slide

  69. @Inza @JuicymoEN
    E-Shop

    Frontend
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    E-Shop

    Backend
    HTTPs
    Accounting Lady

    View full-size slide

  70. @Inza @JuicymoEN
    E-Shop

    Frontend
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    E-Shop

    Backend
    HTTPs
    Accounting Lady
    Admin

    View full-size slide

  71. @Inza @JuicymoEN
    E-Shop

    Frontend
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    E-Shop

    Backend
    HTTPs
    Accounting Lady
    Admin
    Payment

    Gateway
    HTTPs

    View full-size slide

  72. @Inza @JuicymoEN
    E-Shop

    Frontend
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    E-Shop

    Backend
    HTTPs
    Accounting Lady
    Admin
    Payment

    Gateway
    HTTPs
    EET

    View full-size slide

  73. @Inza @JuicymoEN
    E-Shop

    Frontend
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    E-Shop

    Backend
    HTTPs
    Accounting Lady
    Admin
    Payment

    Gateway
    HTTPs
    EET
    XML

    Fujky

    View full-size slide

  74. @Inza @JuicymoEN
    E-Shop

    Frontend
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    E-Shop

    Backend
    HTTPs
    Accounting Lady
    Admin
    Payment

    Gateway
    HTTPs
    EET
    XML

    Fujky
    Biker

    App
    Scanner

    App

    View full-size slide

  75. @Inza @JuicymoEN
    E-Shop

    Frontend
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    HTTPs
    Accounting Lady
    Admin
    Payment

    Gateway
    HTTPs
    EET
    XML

    Fujky
    Biker

    App
    Scanner

    App
    API
    HTTPs

    REST
    E-Shop

    Backend

    View full-size slide

  76. @Inza @JuicymoEN
    E-Shop

    Frontend
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    HTTPs
    Accounting Lady
    Admin
    Payment

    Gateway
    HTTPs
    EET
    XML

    Fujky
    Biker

    App
    Scanner

    App
    API
    HTTPs

    REST
    E-Shop

    Backend
    CRM
    ERP
    Mail Server

    View full-size slide

  77. @Inza @JuicymoEN
    E-Shop

    Frontend
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    HTTPs
    Accounting Lady
    Admin
    Payment

    Gateway
    HTTPs
    EET
    XML

    Fujky
    Biker

    App
    Scanner

    App
    API
    HTTPs

    REST
    E-Shop

    Backend
    CRM
    ERP
    Mail Server Financial 

    .xls export

    View full-size slide

  78. @Inza @JuicymoEN
    E-Shop

    Frontend
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    HTTPs
    Accounting Lady
    Admin
    Payment

    Gateway
    HTTPs
    EET
    XML

    Fujky
    Biker

    App
    Scanner

    App
    API
    HTTPs

    REST
    E-Shop

    Backend
    CRM
    ERP
    Mail Server Financial 

    .xls export
    Wild Hostess 

    Dashboard

    View full-size slide

  79. @Inza @JuicymoEN
    E-Shop

    Frontend
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    HTTPs
    Accounting Lady
    Admin
    Payment

    Gateway
    HTTPs
    EET
    XML

    Fujky
    Biker

    App
    Scanner

    App
    API
    HTTPs

    REST
    E-Shop

    Backend
    CRM
    ERP
    Mail Server Financial 

    .xls export
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard

    View full-size slide

  80. @Inza @JuicymoEN
    Admin
    API
    Payment

    Gateway
    CRM
    EET
    ERP
    Mail Server
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    E-Shop

    Frontend
    Biker

    App
    Scanner

    App
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    Financial 

    .xls export
    Kibana
    Elastic

    Search
    E-Shop

    Backend
    XML

    Fujky
    HTTPs
    HTTPs
    HTTPs

    REST HTTPs
    Accounting Lady

    View full-size slide

  81. @Inza @JuicymoEN
    Admin
    API
    Payment

    Gateway
    CRM
    EET
    ERP
    Mail Server
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    E-Shop

    Frontend
    Biker

    App
    Scanner

    App
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    Financial 

    .xls export
    Kibana
    Elastic

    Search
    E-Shop

    Backend
    XML

    Fujky
    HTTPs
    HTTPs
    HTTPs

    REST HTTPs
    Accounting Lady
    Paranoia !!!

    View full-size slide

  82. @Inza @JuicymoEN
    Admin
    API
    Payment

    Gateway
    CRM
    EET
    ERP
    Mail Server
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    E-Shop

    Frontend
    Biker

    App
    Scanner

    App
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    Financial 

    .xls export
    Grafana
    Influx
    Kibana
    Elastic

    Search
    E-Shop

    Backend
    XML

    Fujky
    HTTPs
    HTTPs
    HTTPs

    REST HTTPs
    Accounting Lady

    View full-size slide

  83. @Inza @JuicymoEN
    Admin
    API
    Payment

    Gateway
    CRM
    EET
    ERP
    Mail Server
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    E-Shop

    Frontend
    Biker

    App
    Scanner

    App
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    Financial 

    .xls export
    Grafana
    Influx
    Kibana
    Elastic

    Search
    E-Shop

    Backend
    XML

    Fujky
    HTTPs
    HTTPs
    HTTPs

    REST HTTPs
    Accounting Lady

    View full-size slide

  84. @Inza @JuicymoEN
    Admin
    API
    Payment

    Gateway
    CRM
    EET
    ERP
    Mail Server
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    E-Shop

    Frontend
    Biker

    App
    Scanner

    App
    Walking

    Biker
    Riding

    Biker
    Organiser
    Wild Hostess Supervisor
    Happy 

    Accounting Lady
    Financial 

    .xls export
    Grafana
    Influx
    Kibana
    Elastic

    Search
    E-Shop

    Backend
    XML

    Fujky
    HTTPs
    HTTPs
    HTTPs

    REST HTTPs

    View full-size slide

  85. @JuicymoEN
    Admin
    API
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    E-Shop

    Backend
    @Inza
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor

    View full-size slide

  86. @JuicymoEN
    Admin
    API
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    E-Shop

    Backend
    Ruby on Rails App
    @Inza
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor

    View full-size slide

  87. @JuicymoEN
    Admin
    API
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor
    E-Shop

    Backend
    Ruby on Rails App
    HTTP 

    Reverse Proxy 

    Load Balancer

    (scalable)
    @Inza

    View full-size slide

  88. @JuicymoEN
    Admin
    API
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor
    E-Shop

    Backend
    Ruby on Rails App
    HTTP 

    Reverse Proxy 

    Load Balancer

    (scalable)
    @Inza

    View full-size slide

  89. @JuicymoEN
    Admin
    API
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor
    E-Shop

    Backend
    Ruby on Rails App
    HTTP 

    Reverse Proxy 

    Load Balancer

    (scalable)
    HTTP 

    Reverse Proxy 

    Cache

    (scalable)
    @Inza

    View full-size slide

  90. @JuicymoEN
    Admin
    API
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor
    E-Shop

    Backend
    Ruby on Rails App
    HTTP 

    Reverse Proxy 

    Load Balancer

    (scalable)
    HTTP 

    Reverse Proxy 

    Cache

    (scalable)
    @Inza

    View full-size slide

  91. @JuicymoEN
    Admin
    API
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor
    E-Shop

    Backend
    Ruby on Rails App
    HTTP 

    Reverse Proxy 

    Load Balancer

    (scalable)
    HTTP 

    Reverse Proxy 

    Cache

    (scalable)
    Postgres
    @Inza

    View full-size slide

  92. @JuicymoEN
    Admin
    API
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor
    E-Shop

    Backend
    Ruby on Rails App
    HTTP 

    Reverse Proxy 

    Load Balancer

    (scalable)
    HTTP 

    Reverse Proxy 

    Cache

    (scalable)
    HA 

    Postgres 

    16GB RAM
    HA 

    Postgres

    Replica 

    16GB RAM

    Another DC
    @Inza

    View full-size slide

  93. @JuicymoEN
    Admin
    API
    Mail 

    Server
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor
    E-Shop

    Backend
    Ruby on Rails App
    HTTP 

    Reverse Proxy 

    Load Balancer

    (scalable)
    HTTP 

    Reverse Proxy 

    Cache

    (scalable)
    HA 

    Postgres 

    16GB RAM
    HA 

    Postgres

    Replica 

    16GB RAM

    Another DC
    Ticket PDF

    Generation
    S3
    @Inza

    View full-size slide

  94. @JuicymoEN
    Admin
    API
    Mail 

    Server
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor
    E-Shop

    Backend
    Ruby on Rails App
    HTTP 

    Reverse Proxy 

    Load Balancer

    (scalable)
    HTTP 

    Reverse Proxy 

    Cache

    (scalable)
    HA 

    Postgres 

    16GB RAM
    HA 

    Postgres

    Replica 

    16GB RAM

    Another DC
    Ticket PDF

    Generation
    S3
    @Inza

    View full-size slide

  95. @JuicymoEN
    Admin
    API
    Mail 

    Server
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor
    E-Shop

    Backend
    Ruby on Rails App
    HTTP 

    Reverse Proxy 

    Load Balancer

    (scalable)
    HTTP 

    Reverse Proxy 

    Cache

    (scalable)
    HA 

    Postgres 

    16GB RAM
    HA 

    Postgres

    Replica 

    16GB RAM

    Another DC
    Ticket PDF

    Generation
    S3
    @Inza
    Background Jobs

    Processor

    Sidekiq

    View full-size slide

  96. @JuicymoEN
    Admin
    API
    Mail 

    Server
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor
    E-Shop

    Backend
    Ruby on Rails App
    HTTP 

    Reverse Proxy 

    Load Balancer

    (scalable)
    HTTP 

    Reverse Proxy 

    Cache

    (scalable)
    HA 

    Postgres 

    16GB RAM
    HA 

    Postgres

    Replica 

    16GB RAM

    Another DC
    Redis
    Ticket PDF

    Generation
    S3
    @Inza
    Background Jobs

    Processor

    Sidekiq

    View full-size slide

  97. @JuicymoEN
    Admin
    API
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor
    E-Shop

    Backend
    Ruby on Rails App
    HTTP 

    Reverse Proxy 

    Load Balancer

    (scalable)
    HTTP 

    Reverse Proxy 

    Cache

    (scalable)
    HA 

    Postgres 

    16GB RAM
    HA 

    Postgres

    Replica 

    16GB RAM

    Another DC
    Background Jobs

    Processor

    Sidekiq
    Redis
    @Inza

    View full-size slide

  98. @JuicymoEN
    Admin
    API
    Wild Hostess 

    Dashboard
    Supervisor

    Dashboard
    Walking Biker
    Riding Biker
    Organiser
    Wild Hostess
    Supervisor
    E-Shop

    Backend
    Ruby on Rails App
    HTTP 

    Reverse Proxy 

    Load Balancer

    (scalable)
    HTTP 

    Reverse Proxy 

    Cache

    (scalable)
    HA 

    Postgres 

    16GB RAM
    HA 

    Postgres

    Replica 

    16GB RAM

    Another DC
    Background Jobs

    Processor

    Sidekiq
    Redis
    @Inza
    6 x 2,5 GB RAM
    10 x 

    1 GB RAM
    2 x 

    16 GB RAM

    View full-size slide

  99. Any Questions?
    @Inza @JuicymoEN

    View full-size slide

  100. • https://www.flickr.com/photos/59592200@N05/7221589246/

    • https://www.flickr.com/photos/60243770@N00/3123775954/
    CC Photo Credits

    View full-size slide