Building a Web Platform: Javaâ„¢ Technology at Ning

29
2007 JavaOne SM Conference | Session TS-6039 | TS-6039 Building a Web Platform: Java™ Technology at Ning Diego Doval Brian McCallister Martin Traverso Ning, Inc. http://www.ning.com/

Transcript of Building a Web Platform: Javaâ„¢ Technology at Ning

Page 1: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 |

TS-6039

Building a Web Platform: Java™ Technology at NingDiego DovalBrian McCallisterMartin Traverso

Ning, Inc.http://www.ning.com/

Page 2: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 2

(nĭng) noun

1. a web platform for creating social networks

Ning Definition

Page 3: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 3

Freedom

Creativity

Page 4: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 4

Page 5: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 5

• Individual copies of applications• Customization and control

• All the way down to the source code• Everything is an API• Backwards compatibility• Scale

• … and do it on the cheap. We’re a startup!

Our Platform Requirements

Our Platform Requirements

Page 6: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 6

Conceptual Design

Conceptual Design

Page 7: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 7

JIT architecture

Just-In-Time Architecture

Page 8: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 8

Spin Cycle

Codename: Spin Cycle

Goals• Launch service• Prove the concept• Start evolving the

architecture immediately

Page 9: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 9

Spin Cycle Architecture

Spin Cycle Architecture

Page 10: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 10

Lessons for Spin Cycle

Spin Cycle Lessons • One Tomcat can handle a lot!• Monolithic architecture a good start• Planned obsolescence works

Page 11: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 11

Spin Cycle

Codename: Rebar

Goals• Scale, scale,

scale• Lots of

applications• Granular

scalability

Page 12: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 12

Rebar Architecture

Rebar Architecture

Page 13: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 13

Rebar Architecture: A Close Up

Rebar Closeup

Page 14: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 14

Rebar Lessons

Rebar Lessons • Don’t fear radical change• Components can scale independently• Operations factors into design• Planned obsolescence works!

Page 15: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 15

Rocky

Codename: Rocky

Goals• Huge applications• Solve large scale

concurrent writes• Maximize

availability

Page 16: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 16

Rocky Diagram

Rocky Architecture

Page 17: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 17

Rocky Architecture: A Close Up

Rocky Closeup

Page 18: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 18

Rocky Lessons Learned

Rocky Lessons • HTTP-based APIs = Good• Embrace the tools you use • Planned obsolescence works!

Page 19: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 19

Today

Today• Over a dozen Core types• Multiple internal clusters• Hundreds of servers and Solaris™ Zones

Page 20: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 20

Java, Really

Java Technology Is Good

• Small Team / Huge System• Performance• Stability

Page 21: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 21

HTTP Is Good

GET / HTTP/1.1Host: javaone.ning.comConnection: close

Page 22: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 22

Atom API

The Atom API

Page 23: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 23

Embrace Open Source

Embrace Open Source

• It is Different• Use the Source

• Understand it• Find the bugs• Optimize It

Page 24: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 24

Managing Geometric Growth

Managing Geometric Growth

Page 25: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 25

JIT Architecture

Just-In-Time Architecture

… + Java Technology

Page 26: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 26

Freedom

Creativity

Goals, redux

Page 27: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 27

Results, redux

Page 28: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 | 28

Q&A

Page 29: Building a Web Platform: Javaâ„¢ Technology at Ning

2007 JavaOneSM Conference | Session TS-6039 |

TS-6039

Building a Web Platform: Java Technology at NingDiego DovalBrian McCallisterMartin Traverso

Ning, Inc.http://www.ning.com/