devnation
TRANSCRIPT
Contribute to a Project in Seconds with Eclipse Che & Codenvy
Tyler Jewell
The Application TrinityDeliver AppsDevelop Apps
issue mgmt
Host Apps
source code repo
agile ide
workspace
check out & build code
unit testquality control
package & archiving
integration testing
deploy to test environment
deploy to pre-production
acceptance testing
deploy to production
continuous
integration
testing framewor
ks
artifact repository
packaging & build tools
release mgmt
code quality analysis
test
pre-production
production
100 firms including Atlassian, JetBrains, Puppet, Chef, Ansible, ZeroTurnaround, IBM, Electric Cloud, Coverity, Sonatype, JFrog, and
so on...
Responsible For
Developer Workspace
Dev cycle
Edit Build
Run
Transition
Commit
Deploy
Sync FTP
Configuration
Import
Create
Git SVN
The Developer Workspace
Toolchain | Security | Isolation | Resources | Dependencies | Reporting
Localhost is not cloneable, shareable, scalable or compliant.
Code Repository | Asset Repository | CI / CD | Issue Management System | LDAP / Active Directory
APIsMiddlewareDatabases
PaaS
The Developer WorkspaceYour TargetsYour Editors
Your Toolchain
Responsible For
Developer Workspace
Dev cycle
Edit Build
Run
Transition
Commit
Deploy
Sync FTP
Configuration
Import
Create
Git SVN
Toolchain | Security | Isolation | Resources | Dependencies | Reporting
Reality: Workspace Configuration via WikiDjango
and PHP with
Eclipse
Tomcat with
IntelliJ
Compile and
install Ruby
Mozilla Webmake
r with Vagrant
Continuous delivery demands repeatability - but developer workspace configuration is individual &
complex.
Codenvy: A Developer Workspace CloudDevelop in mega workspaces with unlimited resources.
Use your tools or ours - no compromises.
DevOps create ready-to-debug projects integrated with their tool chain while adhering to internal coding and governance practices.
Developers edit, build and debug without thrashing using any IDE (even vi, emacs, or IntelliJ).
DevOpsDevelopers Automation and GovernanceWorkspaces, Web IDE and Offline Sync
Provision developer workspaces that are simply shareable and securely managed.
Craft code anywhere in non-thrashing mega workspaces that never run out of resources.
Codenvy Offerings
Codenvy On-PremWorkspaces behind your firewall
connected to your systems with custom Che extensions.
Open source SDK for creating custom workspaces supported by Codenvy, IBM, SAP, and WSO2.
Eclipse Che
built on
Multi-user, multi-tenant, secure, scalable, and compliant.
Single user for desktop, embedded, or hosted workspaces.
Codenvy SaaSSelf-service workspaces for
150K users and 400K projects.
Workspace Governance
Teams want modern architectures without absorbing their complexity
DevOps want versionable workspaces integrated with their tool chain
CIOswant IP governance controls and enforceable coding practices
Developers want environments ready to code with nothing to install
How we deliver: 1. Recipes that define workspaces.
2. Automation to manage workspace lifecycle.
3. Microservices to scale developer tasks.
4. Workflow that enforces corporate coding policies.
5. Analytics to benchmark developer performance.
Your TargetsYour IDEs
Codenvy Makes Development Boundless
MachinesMicroservices Nodes
syntax
refactor
clone
build
package
run
debug
query
merge
compile
APIsDatabases
PaaSMiddlewar
e
Workflow
contribute
pull request
corporate
hack
Developer Workspace
Your ToolchainCode Repository | Asset Repository | CI / CD | Issue Management System | LDAP /
Active Directory
StoriesCodenvy and Eclipse Che make 1M developers more productive and efficient.
Products Differentiate With CodenvyWhite Label & EmbeddedWSO2 rewriting 15 Eclipse plug-ins for WSO2 Developer Studio.
SAP uses Che as standard for Hana Cloud developer tooling across a dozen R&D teams.
YouthDigital created custom training platform for 100,000 students learning Minecraft modding in Java.
Private & Confidential
On-prem deployment.
Replace desktop VMs and Eclipse to eliminate 2 week setup per developer.
DevOps-driven adoption for 250 engineers.
Codenvy Delivers Organizational Governance
Private & Confidential
SaaS self-service adoption.
Nuxeo trainers eliminate 1 day setup / class with on-demand workspace for corporate students.
Monthly classes followed by R&D adoption to embed within Nuxeo cloud.
Teams Save Time and Money
Private & Confidential
Open and ExtensibleEclipse Che and Codenvy
Eclipse Che Extensibility
Che Kernel
Java Extension(you author)
deploysas
GWT Extension(you author) compiles
into
Che REST Services
Workspace Project Builder
+ many more...
loads
Cross-Browser JavaScript AppCodenvy
IDEWizard
Panels Editors
Che combines a kernel, developer REST services, machines and a JavaScript cloud IDE.
Developers customize Che by writing extensions at any tier, overriding any behavior.
Codenvy is a multi-tenant system that runs Eclipse Che extensions.
BrowserDesktop
IDECLI
Rich Clients
runs in
Servlet Runtime
SDK
uses
Custom Clients(you author)
Custom Machines(you author)
invokes, registers, listens
Machines
Dockerdeploys as
Process
reuses
launches
Eclipse Che Codenvy Platform Distribution
Plu
g-I
n
Plu
g-I
n
Plu
g-I
n
Plu
g-I
n
Plu
g-I
n
IDE + SDK
Elastic Docker Machine Pool
Code
Developer Microservice Plug-Ins
Build Run Source Query
Source
External Integration Plug-Ins
CI PaaS Issue Identity
Languages
Eclipse Che ExtensionsEditors Projects
OperationsHA Tenancy
Metering
Security
API CLI Browser Mobile
Automation ManagementFactorie
sContrib Admin
Analytics
Codenvy: Secure, Scalable Platform
Installation
update.codenvy.comNotices
Accounts
BinariesInstaller
s
OfferingsSaaS @
On-Prem @
Managed @codenvy.co
mYour Datacenter Any Datacenter
1-Node n-NodeCentOS
6CentOS
7
Cloud MarketplacesIBM AWS Google ...
Kernel
javajavascri
ptc++
maven gradle 55+
Your Extensions
Che Extensions
project builder
REST APIrunner
auth factoryanalytic
s
The Che Glossary
Che 4.0: Project - Machine - Env Abstraction
Object Purpose Composition Manages For User Creates In
Account Object contains the information about billing, subscription, and organizations owned. An administrative unit, used by managers and admins to bucket groups of users and resources together, with different allocation polices & controls.
has 1 .. n account/ownerhas 0 .. n account/memberhas 0 .. n account/manager
NameBillingOwnerMembersResource limits (gbh) via subsResource limits (ram) via subs
Codenvy System UD
Workspace A thin layer that binds the set of projects and their source code to a single working machine aggregate.
has 1 .. 1 dev machinehas 0 .. n projectshas 0 .. n environmentshas 1 .. n ws/adminhas 0 .. n ws/memberhas 0 .. n ws/stakeholder
Dev machine recipeDev machine instance per user
Codenvy / Che UDIDE
Project A single project, mapped to a single source repository, that has type. A module is a project that is a child of another project.
has 1 .. 1 typehas 1 .. 1 source repositoryhas 0 .. n ACLshas 0 .. n modules
Source repositoryPublic / private
Codenvy / Che UDIDE
Environment An abstraction that contains a networked group of machines used to provide runtime capabilities for a set of projects.
has 1 .. 1 recipehas 1 .. n machineshas 1 .. 1 networkhas 0 .. n proj-machine-map
Run machinesRun networksLinkage between project & machine
Codenvy / Che IDE
Getting Started with Che
Source: github.com/codenvy/cheDeveloper Mailing List: [email protected] Meetings: wiki.eclipse.org/cheIRC: #eclipseche (routes to slack)
Note: Currently 1000 issues open on Che, hosted at Codenvy’s private Jira. We are working to export into bugzilla.
Che Extension
@Singleton
public class AngularJSProjectType extends ProjectType {
public AngularJSProjectType() {
super("AngularJS", "AngularJS Project", true, false);
setDefaultRunner("system:/javascript/webapp/grunt");
addRunnerCategories(Arrays.asList(RunnerCategory.JAVASCRIPT.toString()));
}
}
@Singleton
@Extension(title = "AngularJS")
public class AngularJsExtension extends JsExtension {
@Inject
public AngularJsExtension(IconRegistry iconRegistry, AngularJSResources resources) {
super(Const.ANGULAR_JS_ID, iconRegistry, resources);
}
}
plugin-angularjs/core/client/src/main/java/com/codenvy/plugin/angularjs/core/client/
plugin-angularjs/core/server/src/main/java/com/codenvy/plugin/angularjs/core/server/project/type
Thank You
Containers Shift Burdens Away From DevOps
ContainersRepos Libraries NodesFolders & Files
How to maintain a versionabl
e mapping?
Containers and CompositionImagine a developer working on a 3-tier application using containers. The container configuration can change frequently.
Web Client
API Microservice
Local Database
Web Client
API Microservice
Shared, Central Database
Web Client
API Microservice
Database
Rapid Authoring
Docker Compose is a step forward...
Staged Data Networked