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

Post on 20-Mar-2020

0 views 0 download

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

Build Java Apps Faster with SAAS Dev EnvsTyler Jewell

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

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

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

Inefficiency…

CODENVY MAKES

Developer Environments

FastSecure

ExtensibleInstant

SAAS Public CloudEnterprise On-Premises Cloud

Downloadable SDK

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

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

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

Designed for Complex Enterprise Projects

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%

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!

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

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

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

Other Musings aka Appendix

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

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

RATE OF CHANGE

& AGILE

Production EnvironmentsROC: 1 per Release

Contributor EnvironmentsROC: ^^ Exponential ^^

Agile increases ROC, compounding the sync problem.

Continuous Development

OUR METHODOLODY

Development Production

Extend “infrastructure as code” to developer environments.

Continuous Development

Conf igura t ion Env i ronment

SEPARATE

Step 1 of 3: Separate configuration from its environment.

IDE

Project

CodeDebugger

Builder

Auto-Creation

Environment ConfigConfig

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

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

THE RESULTS?DEVELOPERSCODE

ADMINS CONFIGURE

MANAGERSMONITOR1 2 3

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

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

$

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

High

Low

Low High

Traditional IDE, Codenvy, or Both?

(Power Devs)(Contributor Devs)

Value of env automation.

Coding time on one project.

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.

The Codenvy Cloud

ENTERPRISE PLATFORM

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

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.

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

Demo

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

SDK Development

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

Click to edit Master text styles

– Second level

Third level– Fourth level

» Fifth level

© 2013 Codenvy - All rights reserved.

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

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!”);

}

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”);

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