erlang web framework: chicago boss

18
Erlang Web Framework Cuong Thai www.htk-inc.com [email protected]

Upload: barcamp-saigon

Post on 12-Jan-2015

1.936 views

Category:

Technology


1 download

DESCRIPTION

Presentation at BarcampSaigon 2013 - RMIT 7th July Presenter: Cường Thái

TRANSCRIPT

Page 1: Erlang web framework: Chicago boss

Erlang Web Framework

Cuong Thaiwww.htk-inc.com

[email protected]

Page 2: Erlang web framework: Chicago boss

1. Why Erlang?● concurrency● distributed● fault-tolerance

2. Are you kidding me?● 10 times faster than PHP● c10k, 1000msg/sec, 24hours, 78Mb

3. Database-driven website.

Content

Page 3: Erlang web framework: Chicago boss

Concurrency

Concurrency for our web applications and API backends means that we'd like our htop look like this

Page 4: Erlang web framework: Chicago boss

Concurrency

Erlang is easy capable of spawning hundreds of thousands of processes on a single system running on commodity hard-ware.

Page 5: Erlang web framework: Chicago boss

Distributed

You can have a number of machines across net-work happily chatting with another.

Bill Zoey

Rick Daryl

Page 6: Erlang web framework: Chicago boss

Distributed

Process communication by copying

Location transparency (clustering)

Bill Zoey

RickRickRickRickRickRick Daryl

Page 7: Erlang web framework: Chicago boss

Fault-tolerance

Page 8: Erlang web framework: Chicago boss

Fault-tolerance

Page 9: Erlang web framework: Chicago boss

Fault-tolerance

Page 10: Erlang web framework: Chicago boss

Fault-tolerance

Page 11: Erlang web framework: Chicago boss

Fault-tolerance

Page 12: Erlang web framework: Chicago boss

Are you kidding me?

“With PHP framework you typically see page generation times between 150 and 600 milliseconds. Zotonic has a typical page generation time of 10 milliseconds or less.”

How about you, Chicago Boss?

Page 13: Erlang web framework: Chicago boss

siege -c15 http://localhost:8001/admin -b -t30s

** SIEGE 2.72

** Preparing 15 concurrent users for battle.

The server is now under siege...

Lifting the server siege... done.

Transactions: 21144 hits

Availability: 100.00 %

Elapsed time: 29.12 secs

Data transferred: 116.59 MB

Response time: 0.02 secs

Transaction rate: 726.10 trans/sec

Throughput: 4.00 MB/sec

Concurrency: 14.98

Successful transactions: 21144

Failed transactions: 0

Longest transaction: 0.05

Shortest transaction: 0.00

Page 14: Erlang web framework: Chicago boss

siege -c150 http://localhost:8001/admin -b -t30s

** SIEGE 2.72

** Preparing 150 concurrent users for battle.

The server is now under siege...

Lifting the server siege... done.

Transactions: 20247 hits

Availability: 100.00 %

Elapsed time: 29.32 secs

Data transferred: 111.64 MB

Response time: 0.22 secs

Transaction rate: 690.55 trans/sec

Throughput: 3.81 MB/sec

Concurrency: 149.36

Successful transactions: 20247

Failed transactions: 0

Longest transaction: 0.46

Shortest transaction: 0.01

Page 15: Erlang web framework: Chicago boss

Are you kidding me?

metabrew.comRichard Jones co-founded and was CTO of last.fm for 6 years

Page 16: Erlang web framework: Chicago boss

Database-driven website

● Hello World page● Hello World JSON● Hello World template● BossMQ

Page 17: Erlang web framework: Chicago boss

Q & A

Page 18: Erlang web framework: Chicago boss

Thank you for your attention!

Ref.● learnyousomeerlang.com

● Erlang and OTP in action (Martin Logan, Eric Merritt, Richard Carlsson)

● metabrew.com

● infrequently.org/2006/03/comet-low-latency-data-for-the-browser/

● zotonic.com/features

● github.com/evanmiller/ChicagoBoss/wiki/An-Evening-With-Chicago-Boss