Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
1 1 . J U N E 2 0 1 5
C O D E G A R D E N
1
WHO AM I
EMIL BAY
2
22 year old ”Full Stack Developer” at
Umwelt.
Primarily:
• Node.js
• DevOps
• Frontend “engineering”
E...
ROSKILDE FESTIVAL
Established
1971
Donations 1971-2013
€ 26.4 million 

3
2015 marks the
45th festival
Largest music festi...
MUSIKKEN
4
Vi vil ikke være en musikfestival for
alle.
Vi vil kun være for dem, der vil
udfordres, der vil flyttes, og som...
INTRODUCTION
OLD SYSTEM
• Typo3 based system
• Slow, crashing on a regular basis
• Hard to maintain, but publishing-wise a...
PROS
• Single technology
• Proven
• Experience
• SEO Friendly
CONS
• Hard to auto-scale
• “Deep fried” ≈ “Slow”
6
NOTES
Co...
PROS
• Easy to auto-scale
• Proven
• Experience
CONS
• “Deep fried” ≈ “Slow”
• Duplication of effort -
Implement Umbraco d...
PROS
• Easy to auto-scale
• Extremely fast
• “Baked” content
CONS
• Still no SEO
8
TIMELINE OF ARCITECHTURAL CONSIDERATION...
PROS
• Easy to auto-scale
• Extremely fast
• No 3rd party codebase

to maintain (“Native”)
CONS
• Still no scaling of unca...
FINAL TECHNOLOGY STACK
Technologies Integrations Providers
2-way sync with 3rd party app Fully integrated music player
(fa...
SOLUTION
ROSKILDE FESTIVAL
News, schedules, bandlists, fully
integrated musikplayer.
Close integration with 3rd party app
...
ARCHITECTURE
12
Umbraco v7.0
Maintain sitestructure & content.
Artists, stages, lineup for current
and all previous festiv...
13
DATAFORMAT
Umbraco v7.0 MongoDB NodeJS AngularJS
ARCHITECTURE
14
DEEPDIVE – JSON STRUCTURE FOR ARTISTS
15
H O L I D A Y
P H O T O S
16
PERFORMANCE PROBLEMS
17
FIXED
18
T H A N K S
19
Upcoming SlideShare
Loading in …5
×

MARRYING UMBRACO AND NODE.JS

1,224 views

Published on

The Session
For Roskilde Festival we needed a great CMS, but with rapid horizontal scaling. To solve this problem we chose Umbraco for the backoffice and a slim, stateless Node.js API server. This is our story.

http://www.codegarden15.com/sessions/marrying-umbraco-and-nodejs/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

MARRYING UMBRACO AND NODE.JS

  1. 1. 1 1 . J U N E 2 0 1 5 C O D E G A R D E N 1
  2. 2. WHO AM I EMIL BAY 2 22 year old ”Full Stack Developer” at Umwelt. Primarily: • Node.js • DevOps • Frontend “engineering” Education: • Self-taught • DTU Dropout (Mathematics) Previous experience: • Freelancing since 13 • DTU HPC
  3. 3. ROSKILDE FESTIVAL Established 1971 Donations 1971-2013 € 26.4 million 
 3 2015 marks the 45th festival Largest music festival in Northern Europe. Volunteers 21.000+ Performing bands 180 Artists 3.000 Festivalgoers 130.000 Media people 5.000
  4. 4. MUSIKKEN 4 Vi vil ikke være en musikfestival for alle. Vi vil kun være for dem, der vil udfordres, der vil flyttes, og som vil inspireres. Dem som vil noget nyt. Kommer man her for at se noget, man kender i forvejen, så er man gået forkert.
  5. 5. INTRODUCTION OLD SYSTEM • Typo3 based system • Slow, crashing on a regular basis • Hard to maintain, but publishing-wise and technically • Didn’t scale well under RF’s high, burst load REQUIREMENTS • Highly elastic scaling • Easy content editing • Stability • Integrated media experience • Media management • SEO Friendly TECHNICAL INSIGHTS • High read load (100 - 1000’s of reads a minute) • Low write load (few times a day/week) • Stateless • Lots of relational, structured data 5
  6. 6. PROS • Single technology • Proven • Experience • SEO Friendly CONS • Hard to auto-scale • “Deep fried” ≈ “Slow” 6 NOTES Could probably have worked with heavy caching in front, but we didn’t have experience deploying this at scale TIMELINE OF ARCITECHTURAL CONSIDERATIONS @ UMWELT Pure umbraco Umbraco + node Umbraco + node + mongo
  7. 7. PROS • Easy to auto-scale • Proven • Experience CONS • “Deep fried” ≈ “Slow” • Duplication of effort - Implement Umbraco data models in Javascript 7 NOTES Known as a “Two-tier CMS” where publishing and delivery are separate given their differing performance requirements TIMELINE OF ARCITECHTURAL CONSIDERATIONS @ UMWELT Pure umbraco Umbraco + node Umbraco + node + mongo
  8. 8. PROS • Easy to auto-scale • Extremely fast • “Baked” content CONS • Still no SEO 8 TIMELINE OF ARCITECHTURAL CONSIDERATIONS @ UMWELT Pure umbraco Umbraco + node Umbraco + node + mongo
  9. 9. PROS • Easy to auto-scale • Extremely fast • No 3rd party codebase
 to maintain (“Native”) CONS • Still no scaling of uncacheable
 computations 9 TIMELINE OF ARCITECHTURAL CONSIDERATIONS @ UMWELT Pure umbraco Umbraco + node Umbraco + Heavy Caching
  10. 10. FINAL TECHNOLOGY STACK Technologies Integrations Providers 2-way sync with 3rd party app Fully integrated music player (fallback) Livestreaming @ frontpage Sharing lineups on SoMeRecommendation engine for artists Fully integrated music player Easily maintain all historical lineups, artists and content Fully scalable API to support website and 3rd party apps Richmedia single-page app
  11. 11. SOLUTION ROSKILDE FESTIVAL News, schedules, bandlists, fully integrated musikplayer. Close integration with 3rd party app for use during the festival. Single-page app with fully customisable content from CMS.
  12. 12. ARCHITECTURE 12 Umbraco v7.0 Maintain sitestructure & content. Artists, stages, lineup for current and all previous festivals. MongoDB All CMS content persisted. Artists & lineups stored seperately. HTML snapshots stored seperately. NodeJS API Service bus AngularJS Rendering SPOTIFY SOUNDCLOUD FACEBOOK
  13. 13. 13 DATAFORMAT Umbraco v7.0 MongoDB NodeJS AngularJS
  14. 14. ARCHITECTURE 14
  15. 15. DEEPDIVE – JSON STRUCTURE FOR ARTISTS 15
  16. 16. H O L I D A Y P H O T O S 16
  17. 17. PERFORMANCE PROBLEMS 17
  18. 18. FIXED 18
  19. 19. T H A N K S 19

×