SlideShare a Scribd company logo
Behind the
scenes of a
grown-up web
application
Kerstin Puschke
YAPC::EU 2014
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
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
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
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
xing.com
August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 6
perl
rails
rails
rails
mobile
...
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
Frontend
•  HTML
•  Javascript
•  jquery
•  backbone
August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 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
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
...
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
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
...
The camel has been growing...
August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 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
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
Still at work
August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 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
Perl App
August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 18
•  ~30M external requests / day
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
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
Taking care
August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 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
Provisioning Development VMs
August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 23
•  Vagrant & Chef
Version Control
August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 24
•  Github >1800 repositories
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
Monitoring
August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 26
•  logjam
Monitoring
August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 27
•  graphite
Monitoring
August 14 // Behind the scenes of a grown-up web application // Kerstin Puschke // YAPC::EU 2014 28
•  cube
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
The professional network
www.xing.com
Thank you
for your
attention!
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
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

More Related Content

PDF
NoSQL und CouchDB
PDF
Linux slides fort_2013_upload
PDF
In der Ruhe liegt die Kraft
PDF
oEmbed (on rails)
PDF
Timetable identity
PDF
Not only SQL - CouchDB und andere NoSQL-Datenbanken
PDF
TestDisk User Manual
PDF
Linux- und Windows Rechner…
NoSQL und CouchDB
Linux slides fort_2013_upload
In der Ruhe liegt die Kraft
oEmbed (on rails)
Timetable identity
Not only SQL - CouchDB und andere NoSQL-Datenbanken
TestDisk User Manual
Linux- und Windows Rechner…

Viewers also liked (16)

PDF
Grundlagen der Kommandozeile unter Unix/Linux (Folien)
PDF
Rsyslog - Deutsche Qualitätsarbeit für Linux
PDF
Grundlagen der Kommandozeile unter Unix/Linux (Handout)
PDF
NoSQL-Datenbanken am Beispiel CouchDB
PDF
Einstieg in relationale Datenbanken mit MySQL (Handout)
ODP
Linux monitoring
PDF
Einstieg in relationale Datenbanken mit MySQL (Folien)
PPTX
Nmon Analysis - Performance monitoring tool for LINUX and AIX
PDF
3 infomeeting
PDF
Extreme Linux Performance Monitoring and Tuning
PDF
Windows command prompt a to z
PDF
Webentwicklung mit PHP und MySQL
PPT
Linux monitoring and Troubleshooting for DBA's
PPT
Linux Troubleshooting
PPT
Course on Ehtical Hacking - Introduction
PDF
The New CSS Layout - dotCSS
Grundlagen der Kommandozeile unter Unix/Linux (Folien)
Rsyslog - Deutsche Qualitätsarbeit für Linux
Grundlagen der Kommandozeile unter Unix/Linux (Handout)
NoSQL-Datenbanken am Beispiel CouchDB
Einstieg in relationale Datenbanken mit MySQL (Handout)
Linux monitoring
Einstieg in relationale Datenbanken mit MySQL (Folien)
Nmon Analysis - Performance monitoring tool for LINUX and AIX
3 infomeeting
Extreme Linux Performance Monitoring and Tuning
Windows command prompt a to z
Webentwicklung mit PHP und MySQL
Linux monitoring and Troubleshooting for DBA's
Linux Troubleshooting
Course on Ehtical Hacking - Introduction
The New CSS Layout - dotCSS
Ad

Similar to Behind the scenes of a grown-up web application (20)

PDF
Your first web application. From Design to Launch
PDF
Google App Engine Update 2012
PDF
Aloha on-rails-2009
PPT
re:Connect - There is an App for that! Where is yours?
PDF
App engine devfest_mexico_10
PDF
App engine cloud_comp_expo_nyc
PDF
Don Schwarz App Engine Talk
PDF
AppScale Talk at SBonRails
PDF
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
KEY
Dc summit dhc final
KEY
Building an Open Source Application Strategy
PPTX
Build Web Applications
PDF
Intro to App Engine - Agency Dev Day NYC 2011
PPTX
The world is not black and white – Impact of decisions over the lifetime of a...
PPTX
Using WordPress as a web application platform
PDF
PDF
App Engine Overview Cloud Futures Publish
PDF
What is Google App Engine?
PDF
Spring into the Cloud - JDC2012 Cairo, Egypt
PDF
Javaedge 2010-cschalk
Your first web application. From Design to Launch
Google App Engine Update 2012
Aloha on-rails-2009
re:Connect - There is an App for that! Where is yours?
App engine devfest_mexico_10
App engine cloud_comp_expo_nyc
Don Schwarz App Engine Talk
AppScale Talk at SBonRails
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
Dc summit dhc final
Building an Open Source Application Strategy
Build Web Applications
Intro to App Engine - Agency Dev Day NYC 2011
The world is not black and white – Impact of decisions over the lifetime of a...
Using WordPress as a web application platform
App Engine Overview Cloud Futures Publish
What is Google App Engine?
Spring into the Cloud - JDC2012 Cairo, Egypt
Javaedge 2010-cschalk
Ad

Recently uploaded (20)

PDF
💰 𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓 💰
PPTX
Introduction to Information and Communication Technology
PPT
FIRE PREVENTION AND CONTROL PLAN- LUS.FM.MQ.OM.UTM.PLN.00014.ppt
DOC
Rose毕业证学历认证,利物浦约翰摩尔斯大学毕业证国外本科毕业证
PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PDF
Tenda Login Guide: Access Your Router in 5 Easy Steps
PPTX
Module 1 - Cyber Law and Ethics 101.pptx
PDF
An introduction to the IFRS (ISSB) Stndards.pdf
PDF
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
DOCX
Unit-3 cyber security network security of internet system
PDF
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
PPTX
Introduction to cybersecurity and digital nettiquette
PPTX
Power Point - Lesson 3_2.pptx grad school presentation
PDF
Introduction to the IoT system, how the IoT system works
PPT
isotopes_sddsadsaadasdasdasdasdsa1213.ppt
PPTX
Job_Card_System_Styled_lorem_ipsum_.pptx
PPTX
Funds Management Learning Material for Beg
PPT
Ethics in Information System - Management Information System
PPT
Design_with_Watersergyerge45hrbgre4top (1).ppt
PDF
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
💰 𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓 💰
Introduction to Information and Communication Technology
FIRE PREVENTION AND CONTROL PLAN- LUS.FM.MQ.OM.UTM.PLN.00014.ppt
Rose毕业证学历认证,利物浦约翰摩尔斯大学毕业证国外本科毕业证
INTERNET------BASICS-------UPDATED PPT PRESENTATION
Tenda Login Guide: Access Your Router in 5 Easy Steps
Module 1 - Cyber Law and Ethics 101.pptx
An introduction to the IFRS (ISSB) Stndards.pdf
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
Unit-3 cyber security network security of internet system
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
Introduction to cybersecurity and digital nettiquette
Power Point - Lesson 3_2.pptx grad school presentation
Introduction to the IoT system, how the IoT system works
isotopes_sddsadsaadasdasdasdasdsa1213.ppt
Job_Card_System_Styled_lorem_ipsum_.pptx
Funds Management Learning Material for Beg
Ethics in Information System - Management Information System
Design_with_Watersergyerge45hrbgre4top (1).ppt
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...

Behind the scenes of a grown-up web application

  • 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
  • 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