Paris JUG 2016 - March 22
Stevan Le Meur (@stevanLM) - CodenvyFlorent Benoit (@florentbenoit) - CodenvyStéphane Tournié (@stournie) - Serli Sun Tan (@sunsengdavidtan) - SerliJeff Maury (@jeffmaury) - RedHat
#eclipseche
Eclipse Che: The Next-Gen Eclipse IDE
Agenda - 1
Introduction to Eclipse Che
Live Demo
Workspace Portability
A Workspace when you Need It!
Agenda - 2
Extending Eclipse Che
Live Demo
Openshift Plug-In
Live Pair Programming
The Developer Environment Configuration Problem
Setting Up Development Environments
TeamsNewcomers Various skillsHeterogeneous tastesPermissions on machine
Large numberDifferent technologiesAbility to quickly switch
Projects DocumentationManual installationPlay with configuration filesScripts to boot
Manual, Error Prone and - in hours, days, weeks?
Different EnvironmentsDeveloper - … … - Production
http
App Server
developer
DB
3-parts
FS ...
OS Versions Conf
https
App Server
Service 1
3-parts
Tool 1
OS Versions Conf
haproxy
prod instances
Service 2 Tool 2
DB FS
...Production complexity hard to reproduce for developers
Embarrassed.Ashamed.Defeated.
Why can’t it just &%$@# work??
Anyone, anytime can contribute to a project without installing software.
Open source <> community
Agile development feels more natural
Iterate in-the-moment with users
What is needed to make a contribution?
IDE Project Files Runtime
Configuration
Workspaces include projects and config
IDE RuntimeProject Files
Workspace
config server
JetBrains Oomph
config + install peer-2-peer
Flux
How to share your workspace...
IDE IDE + Projects Projects
How do you sync the runtime?
RuntimeRuntime
sharing controlling scaling
Localhost runtime has constraints
Redefine the workspace
IDE RuntimeProject Files
A universal workspace leads to universal contributions.
No credit card is more acceptedWorkspace
Eclipse Che is an open source project to make workspaces universal.
Runtime InsideCollaborativeProgrammableVersionableExtensible
Universal workspace
Workspaces bring their own runtimes
Machine runtime defined by Dockerfile
Projects are mounted into the runtime
Projects rely on workspace runtime
Workspaces define commands
mvn clean install
start mysql
deploy project
Commands are executed as processes in workspace runtime
Workspaces serve their own browser IDE
Desktop IDEs can connect over SSH
Workspaces are hosted in Che’s server
Eclipse Che bring its own browser IDEto provide new developer experience
Runtime InsideCollaborativeProgrammableVersionableExtensible
Universal workspace
Workspaces are shareable
Workspaces are portable
Live Demo: Introduction to Eclipse Che
1. Terminal2. Editor3. Java intellisense4. Commands5. Debug6. Save to the cloud
Demo recap
Creation of a workspace and project
Editor Overview
Interacting with Stacks - Commands
Debugger
Runtime InsideCollaborativeProgrammableVersionableExtensible
Universal workspace
Runtime InsideCollaborativeProgrammableVersionableExtensible
Universal workspace
What happens if your workspace contains runtimes identical to those in production?
Development
Production
Red Hat:Jeff Maury
In the next session
Runtime InsideCollaborativeProgrammableVersionableExtensible
Universal workspace
Growing the base of plug-ins...
Runtime InsideCollaborativeProgrammableVersionableExtensible
Universal workspace
Load or create new workspace
Securely onboard developer
http://someurl/factory?id=a_project
The dream realized
Developer Workspace
Open source project Badging
Developer Workspace
Codenvy open source
4 GB Workspaces
Visual Studio Team Services
Visual Studio Team Services + Codenvy
Live Demo
1. Manage your tasks on Visual Studio Team Services2. Developer & Pull request flow3. Reviewer workspace
Jenkins integration
Get started with Eclipse Che
Sources github.com/eclipse/che
Dev List che-dev@eclipse.org
IRC #eclipseche
Gittergitter.im/eclipse/che
And of course...BETA
eclipse.org/che Getting started guides Downloads Documentations Contribution guide
Extending Eclipse Che
Agenda - 2
Extending Eclipse Che
Live Demo
Openshift Plug-In
Live Pair Programming
Extensions, Plug-Ins and Assemblies
Extension
Che Core Assembly
Plug-InsServer
Desktop App
App Server + Plug-Ins + Installer
Extension
Extension
Java + Javascript + CSS
Java + Javascript + CSS
Java + Javascript + CSS
Growing the base of plug-ins...
Live Demo
Hello world Plug-In
Custom stack + project template
Custom assembly
Demo recap
Extensibility: Customize without creating plug-ins
Extensibility: Develop plug-ins
Creating new assemblies
Red Hat:Jeff Maury
Opensource PAAS for developers and devops.● Docker● Kubernetes● Build/packaging tools
OpenShift and Che provide on-demand production replicas for developers.
● Instant deployment in production● CD after marketing request● Scalability● Integration testing (Arquillian)