Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
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