+ All Categories
Home > Technology > MARRYING UMBRACO AND NODE.JS

MARRYING UMBRACO AND NODE.JS

Date post: 12-Aug-2015
Category:
Upload: ralf-sohl
View: 195 times
Download: 6 times
Share this document with a friend
Popular Tags:
19
1 1 . J U N E 2 0 1 5 C O D E G A R D E N 1
Transcript

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”

Education: • Self-taught • DTU Dropout (Mathematics)

Previous experience: • Freelancing since 13 • DTU HPC

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

180Artists

3.000

Festivalgoers

130.000Media people

5.000

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.

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

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

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

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

PROS

• Easy to auto-scale

• Extremely fast

• No 3rd party codebaseto maintain (“Native”)

CONS

• Still no scaling of uncacheablecomputations

9

TIMELINE OF ARCITECHTURAL CONSIDERATIONS @ UMWELT

Pure umbraco Umbraco + node Umbraco + Heavy Caching

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

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.

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

S P OT I F Y

S O U N D C LO U D

FAC E B O O K

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


Recommended