Your SlideShare is downloading. ×
Behind the scenes of a grown-up web application
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Behind the scenes of a grown-up web application

274
views

Published on

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

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

Published in: Internet

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
274
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Behind the scenes of a grown-up web application Kerstin Puschke YAPC::EU 2014
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. xing.com August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 6 perl rails rails rails mobile ...
  • 7. 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
  • 8. Frontend •  HTML •  Javascript •  jquery •  backbone August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 8
  • 9. 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
  • 10. 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 ...
  • 11. 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
  • 12. 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 ...
  • 13. The camel has been growing... August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 13
  • 14. 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
  • 15. 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
  • 16. Still at work August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 16
  • 17. 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
  • 18. Perl App August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 18 •  ~30M external requests / day
  • 19. 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
  • 20. 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
  • 21. Taking care August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 21
  • 22. 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
  • 23. Provisioning Development VMs August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 23 •  Vagrant & Chef
  • 24. Version Control August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 24 •  Github >1800 repositories
  • 25. 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
  • 26. Monitoring August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 26 •  logjam
  • 27. Monitoring August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 27 •  graphite
  • 28. Monitoring August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 28 •  cube
  • 29. 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
  • 30. The professional network www.xing.com Thank you for your attention!
  • 31. 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
  • 32. 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