44
Platform as Art: A Developer’s Perspective Ashley Streb, Vice President of Technology

Platform as Art: A Developer’s Perspective

Embed Size (px)

DESCRIPTION

Keynote presentation from Webmaniacs 2008, presented by Ashley Streb of Brightcove. Posted with the permission of the author.

Citation preview

Page 1: Platform as Art: A Developer’s Perspective

Platform as Art: A Developer’s Perspective

Ashley Streb, Vice President of Technology

Page 2: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.2

Start at the end

Media enables us to

Touch

Inspire

Entertain

Build, create and be passionate about Adobe!

Page 3: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.3

Agenda

Platform as a Service (PaaS) Landscape

Brightcove’s Media PaaS

The Making of a Platform with Adobe Technology

Q + A

Page 4: Platform as Art: A Developer’s Perspective

Platform as a Service (PaaS) Landscape

Defining “Platform as a Service”

PaaS: What, where and how

Page 5: Platform as Art: A Developer’s Perspective

Defining “Platform as a Service”

Page 6: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.6

Services through Cloud Computing

Consume broad range of services on demand

No Software or Servers!

Easy to scale with infrastructure in the cloud

Dynamically adapt compute power

Take advantage of utility metered models

Tap into operational excellence and economies of scale

Page 7: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.7

Three Broad Categories

Infrastructure

Amazon EC2/S3, Google AppEngine, Sun Grid, 3Tera, IBM Blue Cloud

Software

Brightcove, Salesforce, NetSuite, Omniture, Ning, SpringCM

Platform

Brightcove, Salesforce, Ning, LongJump, Intuit QuickBase, Bungee Labs Connect

Page 8: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.8

Platform Defined

A "platform" is an expressive medium.

Many existing platforms: Windows, SymbianOS, Flex

Ability to build and create

Platform as a Service

Create, consume, deploy and run in “the cloud”

Page 9: Platform as Art: A Developer’s Perspective

PaaS: What, where and how

Page 10: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.10

PaaS: What

Problem, what problem?

Targeted capabilities

Example: Consumer Platform

Backend Applications

Fast, sexy UIs

Tap into Internet fabric

Analytics/Reporting

Page 11: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.11

PaaS: Where

Marc Andreessen Blog

Access API: Flickr, yelp.

Plug-in API: Facebook, MySpace

Runtime Environment: BungeeConnect

RuntimeEnvironment

Plug-in API(plug into core interface)

Access API(consume from cloud)

Page 12: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.12

PaaS: How

How can we build and create?

Different types of developers

Need a blend of toolsCode SDKs

WYSIWYGTool

XMLDSL

Web serviceAPIs

Application

Page 13: Platform as Art: A Developer’s Perspective

Brightcove’s Media PaaS – the “How”

Page 14: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.14

Media PaaS – the “How”

Templating WYSIWYG Tool

Web service APIs

Runtime Engine, Player APIs

Page 15: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.15

Templating Example

Page 16: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.16

Templating Usage

WYSIWYG Interface

Control colors, styles, themes and policies

Fast, easy, custom!

Page 17: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.17

Web service Example

Page 18: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.18

Rendering Engine, Player API Examples

Page 19: Platform as Art: A Developer’s Perspective

Stats

Process & Team Organization

Infrastructure and Architecture

The Making of a Platform with Adobe Technology

Page 20: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.20

Stats

135 Million Unique Users/month (as of 6 – 9 months ago)

~2 billion server transactions/month

1.5 Petabytes (1,500,000 GBs) of media delivered/month

Thousands of platform users, hundreds of major media brands, 50 television networks, newspaper and magazine publishers, and all the major record labels in the US

Page 21: Platform as Art: A Developer’s Perspective

Process & Team Organization

Page 22: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.22

Process

We use the Scrum Methodology

Month long sprints

2x2 major release schedule

Cross-functional team, 4 – 9 people

Stand-up, user stories, story points, PO, burndown, retrospective

Operate 10 teams across 3 geographies

Page 23: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.23

Process

Common language across the entire organization.

Adapt to changing market

Deep collaboration

It’s a marathon, not a sprint!

Page 24: Platform as Art: A Developer’s Perspective

Infrastructure and Architecture

Page 25: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.25

Brightcove’s Applications

Server

Consumer Players Business Applications

Media Publishing AdsVideo Player Photo Player

ServerServerServerServerServerServerServer

Page 26: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.26

Adobe Technology Used

ActionScript 2, ActionScript 3

Flex 1.5, Flex 2

AMF 0 (OpenAMF), AMF 3 (BlazeDS)

FMS 2.1, FMS 3.0

FlexBuilder

Page 27: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.27

Consumer Video Player

Page 28: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.28

Consumer Video Player Technology

ActionScript 3, AVM2

AMF3 as client/server communication protocol

• ~70K LOC written

• FlexBuilder as IDE/Developer Tool

• Migrated from AS2 Players

Page 29: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.29

Challenges

• Speed + Dynamic Experience

• Dynamic delivery of media

Page 30: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.30

Speed + Dynamic Experience

• AVM2 (97% penetration)

• Partition into libraries (~50% savings)

• Obfuscation/minification

• Consumer client load vs. business application load

0

2000

4000

6000

AS2 AS3

No Modules 341K

Player Load 169K

Menu 34K

Overlay Controls 40K

Volume Controls 16K

Ad Support 45K

Load Time in MS

SWF Size in KB

Page 31: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.31

Speed + Dynamic Experience continued….

• Client/Server communication– Think about how to organize

server calls– Think about wire protocol

• Getters vs. e4x, 13x faster access

• AMF Open specification; JMeter and other applications

010000200003000040000

AMF0 AMF3 XML

Payload in bytes

Page 32: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.32

Dynamic Delivery of Media

• Personalized underwear but not media?!

• Media files are BIG!

• PD vs. Streaming for video delivery

Page 33: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.33

Business Applications

Page 34: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.34

Business Applications Technology

• Flex 2, AVM2

– Flex vs. ActionScript vs. DHTML

• AMF3 as client/server communication protocol

• Cairngorm as micro-architecture

• ~100K LOC written, 150 Commands

• FlexBuilder as IDE/Developer Tool

• FlexUnit for unit testing

• Homegrown integration tool

Page 35: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.35

Challenges

• Development process

• Fast UI Responses

Page 36: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.36

Development process – skills and workflow

• Not enough Flex people! Training Java people.

• Work across technology lines

• Strong emphasis on design; auto-generate SWCs

Page 37: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.37

Development process – code layout

Common(Shared UI + Classes)

Services(Server Integration)

Parts(Cairngorm Specifics)

Ad Application Publishing ApplicationMedia Application

Page 38: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.38

Development process – code layout

• Each project contains own set of unit tests

• Shared project layers are compiled as SWC, enables faster compile

• Each project checks in .project, .actionScriptProperties and .flexProperties file

Page 39: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.39

Fast UI Responses

• AVM2

• How to get Data?

– Structure server API; initial view, lazy load, different types of DTOs

– Make clients intelligent about their needs

– Datagrid presentation strategies

Page 40: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.40

Servers on Fire!

Page 41: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.41

Server Technology Overview

• Java 6, 64 bit JVM

• Tomcat, Spring, Hibernate and Coherence

• BlazeDS as AMF gateway

• ~350K LOC

• JUnit, JMeter, Lunt

• Eclipse IDE, Emacs, Vi

Page 42: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.42

Challenges

• Low latency, high throughput

– Better user experience

– Minimize capex, Facebook was rumored to have raised 100M to buy 50K servers. That’s a lot of dough!

• Scale

Page 43: Platform as Art: A Developer’s Perspective

© 2006 Brightcove, Inc. All rights reserved. Company Confidential.43

Summary

• Understand PaaS and how to evaluate

• Case study of a successful company built on Adobe Platform

• Great platforms enable great applications - Go forth and create!

Page 44: Platform as Art: A Developer’s Perspective

Question and Answers

Drop me a line: [email protected]