Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with...

43
Build Java Apps Faster with SAAS Dev Envs Tyler Jewell http://codenvy.com , @CodenvyHQ http://github.com/codenvy/sdk

Transcript of Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with...

Page 1: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Build Java Apps Faster with SAAS Dev EnvsTyler Jewell

http://codenvy.com, @CodenvyHQhttp://github.com/codenvy/sdk

Page 2: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

CODENVY OVERVIEW

125,000 USERSOver 55 countries25 of the Fortune 100Largest day: 4000 concurrent developers

PRODUCTSCodenvy Developer Env Cloud | SAASCodenvy Developer Env Cloud | On-PremisesCodenvy IDECodenvy SDK for Plug-In DevelopmentCodenvy Factories for Sales & Support

COMPANYFounded: 2013HQ: San Francisco, CA50 Employees, based in 3 countries

CUSTOMERS

Page 3: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Costs & RisksDEVELOPMENTINEFFICIENCIESConfiguring Projects

Changing Branches

Switching Between Tasks

Updating Tools & Plug-Ins

Long Debug Cycles

TEAMCONCERNSTribal Knowledge

BYOD Incompatibilities

Environment Debt

Time Tracking

LinkedIn Study: “Developers spend 13 hrs / wk configuring their environment.”

CORPORATERISKSIP Security

External Threat Vectors

Page 4: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Inefficiency…

Page 5: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

CODENVY MAKES

Developer Environments

FastSecure

ExtensibleInstant

SAAS Public CloudEnterprise On-Premises Cloud

Downloadable SDK

Page 6: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

How A Developer Environment Cloud

WORKSProvision InstantlyInstall nothing.. No download. No maintenance. Complete and comprehensive. Create environments for every task.

1

Use Existing ALM ToolsUse your favorite desktop IDE or our browser IDE. Integrate existing ALM systems with the CLI & API.

2

Clone, Embed, and ShareSingle click copying and sharing environments. Link and embed in other products. Restrict access with privacy.

Scale DevelopmentAdd CPU & RAM to environments. Maximum density with minimal hardware. Connect identity & firewalled systems.

Manage, Analyze, and ExtendQuarantine IP, set feature restrictions, and track time. Automate internal processes with custom extensions.

3

4

5

ProjectCodeSCM ClientCode AssistantsCompilerBuilderUnit TesterPackagerRunnerDeployerALM ConnectorsPlug-Ins

Provision

Clone

Share

Edit

Embed

Restrict

Scale

Quarantine

Analyze

Extend

Page 7: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

PROVISIONING:

FACTORIES

Never ending steps, manually executed.

Failure and abandonment rates high.

Shorter setup cycles. Predictable configuration.

Testable and part of continuous delivery processes.

OLD WAYhttp://codenvy.com/factory?....

OUR WAY: 1 CLICK

Page 8: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Examples & Demos

Example 1: Launch Via CLI

Example 2: Java Mobile App

Example 3: AngularJS.org Example Launch

Example 4: Chef OpsCode Editor

Example 5: Eclipse IDE Plug-In

Example 6: ESB Drag & Drop Sequence Editor

Page 9: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Designed for Complex Enterprise Projects

Page 10: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Fast

Install nothing, cached clientSeparation processingMulti-user developmentMulti-user processingBuilder providersCentralized dependency mgmtAutomated, cached dependenciesDocker runner recipesPre-configured, cached runnersFactories for instant accessQueues for multi-processingAnticipatory elasticity

Secure

Public / private projectsQuarantine environmentsTokened accees to servicesSecure protocolsOn premises installationBehavioral restrictionsMultiple workspaces

Fast, secure and extensible environments to eliminate cost & risk.

Extensible

Add / remove plug-insClient- and server- extensionsThemesEditor & keybinding choiceSwap builder & runnersCustomize packaged envrionmentsCustom RAM allocationsAuthor custom extensionsExtension tooling

1/3 the time & cost of VDI, desktop DIY, cloud IDEs, or VagrantCompliance violations reduced by 90%

Page 11: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Our Codenvy

PRODUCTS

On-Premises: Codenvy Developer Environment Cloud A secure and scalable system that runs on your hardware. Superior support and maintenance with Codenvy Updater service included. Per user pricing with special packages for commercial, academic, startup, and open source organizations.

Codenvy SDK for Plug-In DevelopmentBased upon open & free eclipse projects. Convert legacy Eclipse plug-ins to the cloud..

Codenvy Factories for Sales & SupportIncrease sales and reduce costs with branded environments for sales, training and support.

LOGO

SAAS: Codenvy Developer Environment Cloud A public cloud with support and hardware. Allocate RAM, configure runners for always-on operation, or use the organization add-on to manage multiple workspaces and queues.Get a free account, or a premium account starting at $1/month with 2GB of RAM!

Page 12: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Our Codenvy

STORIES

On-Premises: Codenvy Developer Environment Cloud

Codenvy SDK for Plug-In Development

Codenvy Factories for Sales & SupportLOGO

SAAS: Codenvy Developer Environment Cloud

Page 13: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

125,000

>15%

12

Users

MoM Growth

Hours/DayFor Top Users

WE ARE ALL THE ENVY!

“Developers get up and running fast!”

“Killer IDE”“faster than Eclipse”

“improves developer collaboration”

- G o o g l e

- B l o g g e r- I n f o W o r l d

- T h e A p p G a p

Page 14: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

http://codenvy.com, @CodenvyHQhttp://github.com/codenvy/sdk

Page 15: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Other Musings aka Appendix

Page 16: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

The CelebrityThe engineer we try to hire … because he has vision and communicates it brilliantly.

Who are your

Devs?The Power DevThe engineer with near magical abilities. We love and fear them.

The Contributor DevEveryone else who touches code: engineers, QA, docs, operations, design, and PM. They are the heart of a project.

>50

5

1

Page 17: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

The Sync Problem

1COMMIT

Code Repo

Integration

DevOpsPower Developer Contributor Developer

Environments

2SYNC

Code , T e s t , IDE , P l ug - In , & A r t i f a c t

C r ea t i on

Automated Not Automated

Des i gn , QA , Suppor t , Do cs , Pa r t ne r s , Mg rs

Page 18: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

RATE OF CHANGE

& AGILE

Production EnvironmentsROC: 1 per Release

Contributor EnvironmentsROC: ^^ Exponential ^^

Agile increases ROC, compounding the sync problem.

Page 19: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Continuous Development

OUR METHODOLODY

Development Production

Extend “infrastructure as code” to developer environments.

Page 20: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Continuous Development

Conf igura t ion Env i ronment

SEPARATE

Step 1 of 3: Separate configuration from its environment.

Page 21: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

IDE

Project

CodeDebugger

Builder

Auto-Creation

Environment ConfigConfig

Step 2 of 3: Create, clone and merge environments with automation.

Page 22: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Control the Environment

Policies

Step 3 of 3: Apply resource and access policies across environments.

Set R/W permiss ions

Al loca te HW quo tas

Res t r i c t code copy ing

Moni tor usage

Quaran t ine asse ts

Page 23: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

THE RESULTS?DEVELOPERSCODE

ADMINS CONFIGURE

MANAGERSMONITOR1 2 3

Page 24: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Evolution of Dev Environments

rlogin / telnet

Client Access Server Systems SaaS Dev Envs

1 Mainframe1

Hosted IDE1

A) StorageB) IdentityC) DevicesD) MonitorsE) Identity

Responsive Client3

1970s

1990s

2010s

RDP / VNC2

Physical Servers2

VPS / TS3

Shared Access:4VM + Web Client2

Development Cloud3

Page 25: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

VM: Web IDE1) Each account given personal VM

2) VM loads and runs embedded IDE client

3) Centralized VM provisioning and identityWeb IDE vs.

Dev CloudDevelopment Cloud1) Virtualized account and workspace

2) Centralized functions for editor, build, debug, etc.

3) Dynamic allocation of HW to users & function

4) Hosted APIs for key developer workflows

5) Analytics and monitoring of activity

$

Page 26: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

COMMUTERChromebooks

Vacationers

NEW CODE BASE INTRODUCTIONInterns on Projects

Developers New to a Project

Promote to Primary Workbench

PRIMARY WORKBENCHMulti-Computer Workspaces

Offshore Access

Eclipse Alternative

HACKATHONSPrototyping

API / SDK Evangelism

Group Coding

SEPARATION OF DUTIESEnvironments for support, docs, and QA

On-demand environments for front-end devs

CONTROL IP DRIFTRestrict download of code clones

Monitor offshore teams

USE CASES

Page 27: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

High

Low

Low High

Traditional IDE, Codenvy, or Both?

(Power Devs)(Contributor Devs)

Value of env automation.

Coding time on one project.

Page 28: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Coding time on one project.

Value of env automation.

High

Low

Low High

Traditional IDE, Codenvy, or Both?

Codenvy is more efficient

Traditional IDE is more efficient

(Power Devs)(Contributor Devs)

Desktop tools provide constant automation.

Page 29: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

The Codenvy Cloud

Page 30: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

ENTERPRISE PLATFORM

Page 31: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

CODENVY SPECIAL SAUCE:

FACTORIES

Sales, POC, and Training cycles are slow.

Conversion and abandonment rates suffer.

Shorter sales cycles. Predictable POCs. Lead

scoring and closed loop selling to developers.

Setup Desktop Editor

Download Build System

Download Runtime

Download ISV Plug-In

Setup ISV Account & Plug-In

Download Sample App

OLD WAYLaunch Factory

CODENVY WAY

Page 32: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

HOW FACTORIES WORK

Publish App

I S V / T E A C H E R PROSPECT / STUDENT CODENVY

1Click!2

Code, Build, Test, Share

LOVE!!!4

Seconds later…

Provision Environment3

Environments featuring your code

Track & Optimize5

Shareable via URL or embed on Web

Granular tracking

Benchmark activityDisable and restrict access

Close sales with frictionless POC process.

Create exercises and distribute openly.

See what campaigns result in conversions.

Disable by usage, password, or hostname.

Page 33: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Editor

Project

Code

Runner

Builder

SDK

Codenvy SDK: Create packaged extensions (plug-ins) for Codenvy.com, Codenvy Enterprise, and Codenvy Factories. Or, build your own system using the free and open Codenvy SDK runtime.

PaaS

ContinuousIntegration

CodeRepository

SQL EditingESB Sequence EditorGit, Subversion

AngularJS Auto-CompletionData MappingCloud Bridges

Page 34: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Demo

Page 35: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

SDK Development

Page 36: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

Page 37: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

Page 38: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

Page 39: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

Page 40: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

A plug-in is a packaged extension:

– Authored with Java, Guice, GIN, and GWT

– Can be debugged with both Java and JavaScript debuggers

– Compiled and packaged using maven

– Unit tested with JUnit

– Converted into lazy-loaded, optimized JavaScript at runtime

– Can be packaged as a JAR file for deployment into the SDK

– Can be turned on / off from within the IDE

Plug-Ins: SDK Development Environment

Page 41: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

Plug-In: Hello World

public class HelloWorldExtension extends Action {

@Inject

public HelloWorldAction() {

super (“Hello World”);

}

@Override

public void actionPerformed(ActionEvent event) {

Window.alert(“Hello World!”);

}

Page 42: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

Plug-In: Hello World

@Inject

public JavaExtension(ActionManager am,

ConsolePart, cp,

HelloWorldAction hwa) {

// Register the Hello World Action to this system.

am.registerAction(“Some Random ID”, hwa);

// Retrieve the main menu.

menu = am.getAction(IdeActions.GROUP_MAIN_CONTEXT_MENU);

// Add our action to the menu, last position.

menu.add(hwa, Constraints.LAST);

// Print a console output just for the fun of it.

cp.printf(“Hello World”);

Page 43: Build Java Apps Faster with SAAS Dev Envs - London JUG.pdf · Increase sales and reduce costs with branded environments for sales, training and support. LOGO SAAS: Codenvy Developer

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

Editor: Undo, rules, annotations, codeassistant, history, outline, parser.

UI: Menus, frames, views, parts, prefs, keybinding, wizard.

Modeling: EMF / GMF layer for rich design models.

IDE: PaaS, events & notifications, resources.

Server: Builder, Runner, cloud automation

Plug-Ins: SDK APIs for Extending Tooling

Demo: AngularJS Plug-In w/ Auto Complete