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

Behind the scenes of a grown-up web application

Behind the scenes of a grown-up web application

Behind the scenes of a grown-up web application - YAPC::EU 2014, Sofia, Bulgaria

Kerstin Puschke

August 24, 2014
Tweet

More Decks by Kerstin Puschke

Other Decks in Technology

Transcript

  1. Who am I Contact •  http://www.kpuschke.eu •  twitter: @titanoboa42 • 

    https://www.xing.com/profile/ Kerstin_Puschke software engineer at XING Hamburg •  xing.com social network for business professionals •  about 14M users •  debian, perl, javascript, ruby on rails, mysql, redis, riak, . . . We’re hiring! http://corporate.xing.com/ english/company/careers-at-xing/ August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 2
  2. Outline August 14 // Behind the scenes of a grown-up

    web application // Kerstin Puschke // YAPC::EU 2014 3 •  Technology & Architecture •  programming languages, databases, storage,... •  applications, APIs & asynchronous communication •  Development Process and Tools •  development and test environments •  version control •  continous integration, deployment
  3. How it all began 10 years ago - Perl &

    MySQL August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 4
  4. The camel has been growing Today - Perl & MySQL

    & more August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 5
  5. xing.com August 14 // Behind the scenes of a grown-up

    web application // Kerstin Puschke // YAPC::EU 2014 6 perl rails rails rails mobile ...
  6. Backend •  Perl •  Ruby on Rails •  Scala • 

    Hadoop •  Elastic Search •  Insect / Arachnid August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 7
  7. Frontend •  HTML •  Javascript •  jquery •  backbone August

    14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 8
  8. Storage, Databases & Cache •  MySQL •  Redis •  Memcache

    •  Swift / Open Stack •  Riak August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 9
  9. Perl „core“ August 14 // Behind the scenes of a

    grown-up web application // Kerstin Puschke // YAPC::EU 2014 10 perl „core“ rails rails rails mobile ...
  10. Rails August 14 // Behind the scenes of a grown-up

    web application // Kerstin Puschke // YAPC::EU 2014 11 perl „core“ rails jobs rails ... rails events mobile rails ... rails ~ 20 apps
  11. Communication •  REST API •  RabbitMQ AMQP •  plus Beetle

    August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 12 perl „core“ rails jobs rails public API rails events mobile rails ...
  12. The camel has been growing... August 14 // Behind the

    scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 13
  13. Dissolving Profile August 14 // Behind the scenes of a

    grown-up web application // Kerstin Puschke // YAPC::EU 2014 14 perl „core“ rails rails (public API) rails mobile rails profile frontend
  14. Shadow calls August 14 // Behind the scenes of a

    grown-up web application // Kerstin Puschke // YAPC::EU 2014 15 old app new app user request worker amqp message shadow call
  15. Still at work August 14 // Behind the scenes of

    a grown-up web application // Kerstin Puschke // YAPC::EU 2014 16
  16. Perl App August 14 // Behind the scenes of a

    grown-up web application // Kerstin Puschke // YAPC::EU 2014 17 •  ~600k lines of code, ~300k lines of perl code
  17. Perl App August 14 // Behind the scenes of a

    grown-up web application // Kerstin Puschke // YAPC::EU 2014 18 •  ~30M external requests / day
  18. Perl App August 14 // Behind the scenes of a

    grown-up web application // Kerstin Puschke // YAPC::EU 2014 19 •  ~360M internal REST requests / day, 6k / second
  19. Perl App August 14 // Behind the scenes of a

    grown-up web application // Kerstin Puschke // YAPC::EU 2014 20 DC1 DC2 2 x 6 application server 2 x 18 API Server 2 x 4 worker server
  20. Taking care August 14 // Behind the scenes of a

    grown-up web application // Kerstin Puschke // YAPC::EU 2014 21
  21. Office Locations August 14 // Behind the scenes of a

    grown-up web application // Kerstin Puschke // YAPC::EU 2014 22 Hamburg, Munich, Vienna, Barcelona ~520 people from ~28 countries, ~80 engineers
  22. Provisioning Development VMs August 14 // Behind the scenes of

    a grown-up web application // Kerstin Puschke // YAPC::EU 2014 23 •  Vagrant & Chef
  23. Version Control August 14 // Behind the scenes of a

    grown-up web application // Kerstin Puschke // YAPC::EU 2014 24 •  Github >1800 repositories
  24. Continuous Integration & Deployment August 14 // Behind the scenes

    of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 25 •  Jenkins CI ~30 projects, ~250 build jobs •  weekly to continuous deployment
  25. Monitoring August 14 // Behind the scenes of a grown-up

    web application // Kerstin Puschke // YAPC::EU 2014 26 •  logjam
  26. Monitoring August 14 // Behind the scenes of a grown-up

    web application // Kerstin Puschke // YAPC::EU 2014 27 •  graphite
  27. Monitoring August 14 // Behind the scenes of a grown-up

    web application // Kerstin Puschke // YAPC::EU 2014 28 •  cube
  28. famous last words die "WTF?"; # should not be possible

    August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 29
  29. Who am I Contact •  http://www.kpuschke.eu •  twitter: @titanoboa42 • 

    https://www.xing.com/profile/ Kerstin_Puschke software engineer at XING Hamburg •  xing.com social network for business professionals •  about 14M users •  debian, perl, javascript, ruby on rails, mysql, redis, riak, . . . We’re hiring! http://corporate.xing.com/ english/company/careers-at-xing/ August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 31
  30. Credits Map •  The map on slide 21 was created

    as a screenshot from http://umap.openstreetmap.fr •  Map background credits Outdoors (OSM) Tiles © Gravitystorm / map data OpenStreetMap August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 32