Code in the cloud with Eclipse Che and Docker

50
Eclipse Con EU 2016 - 25th October Florent Benoit (@florentbenoit) - Codenvy Stevan Le Meur (@stevanLM) - Codenvy #eclipseche Code in the cloud with Eclipse Che and Docker

Transcript of Code in the cloud with Eclipse Che and Docker

Page 1: Code in the cloud with Eclipse Che and Docker

Eclipse Con EU 2016 - 25th October

Florent Benoit (@florentbenoit) - CodenvyStevan Le Meur (@stevanLM) - Codenvy

#eclipseche

Code in the cloud with Eclipse Che and Docker

Page 2: Code in the cloud with Eclipse Che and Docker

Agenda

Introduction to Eclipse Che

Live Demo

Workspace Portability

A Workspace when you Need It!

Page 3: Code in the cloud with Eclipse Che and Docker

The Developer Environment Configuration Problem

Page 4: Code in the cloud with Eclipse Che and Docker

Working on multiple projects, technologies

Page 5: Code in the cloud with Eclipse Che and Docker

Working in teams with style...

All differents - but all goods

Page 6: Code in the cloud with Eclipse Che and Docker

Documentation, Scripts ?

READ THE SOURCE LUKE !!

Page 7: Code in the cloud with Eclipse Che and Docker

Manual, Error Prone and - in hours, days, weeks?

Page 8: Code in the cloud with Eclipse Che and Docker

Why can’t we have anyone, at anytime be able to contribute to a project without installing software?

Page 9: Code in the cloud with Eclipse Che and Docker

Open source <> community

Page 10: Code in the cloud with Eclipse Che and Docker

Agile development feels more natural

Page 11: Code in the cloud with Eclipse Che and Docker

Iterate in-the-moment with users

Page 12: Code in the cloud with Eclipse Che and Docker

What is needed to make a contribution?

IDE Project Files Runtimes

Page 13: Code in the cloud with Eclipse Che and Docker

Configuration

Workspaces include projects and config

IDE RuntimesProject Files

WorkspaceToday

Page 14: Code in the cloud with Eclipse Che and Docker

Redefine the workspace

IDE RuntimesProject Files

Page 15: Code in the cloud with Eclipse Che and Docker

Eclipse Che is an open source project to make workspaces universal.

Page 16: Code in the cloud with Eclipse Che and Docker

Runtimes InsideCollaborativeProgrammableVersionableExtensible

Universal workspace

Page 17: Code in the cloud with Eclipse Che and Docker

Workspaces bring their own runtimes

Machine runtime defined by Dockerfileor Composefile

Page 18: Code in the cloud with Eclipse Che and Docker

Projects are mounted into the runtimes

Projects rely on workspace runtimes

Page 19: Code in the cloud with Eclipse Che and Docker

Workspaces define commands

mvn clean install

start mysql

deploy project

Commands are executed as processes in workspace runtimes

Page 20: Code in the cloud with Eclipse Che and Docker

Workspaces provide their own browser IDE

Page 21: Code in the cloud with Eclipse Che and Docker

Desktop IDEs can connect over SSH

Page 22: Code in the cloud with Eclipse Che and Docker

Workspaces are hosted in Che’s server

Page 23: Code in the cloud with Eclipse Che and Docker

Eclipse Che bring its own browser IDEto provide new developer experience

Page 24: Code in the cloud with Eclipse Che and Docker

Runtime InsideCollaborativeProgrammableVersionableExtensible

Universal workspace

Page 25: Code in the cloud with Eclipse Che and Docker

Workspaces are shareable

Page 26: Code in the cloud with Eclipse Che and Docker

Workspaces are portable

Page 27: Code in the cloud with Eclipse Che and Docker

Live Demo: Introduction to Eclipse Che

1. Terminal2. Editor3. Java intellisense4. Commands5. Debug

Page 28: Code in the cloud with Eclipse Che and Docker

Runtime InsideCollaborativeProgrammableVersionableExtensible

Universal workspace

Page 29: Code in the cloud with Eclipse Che and Docker

Swagger!

Page 30: Code in the cloud with Eclipse Che and Docker

Runtime InsideCollaborativeProgrammableVersionableExtensible

Universal workspace

Page 31: Code in the cloud with Eclipse Che and Docker

What happens if your workspace contains runtimes identical to those in production?

Development

Production

Page 32: Code in the cloud with Eclipse Che and Docker

Runtime InsideCollaborativeProgrammableVersionableExtensible

Universal workspace

Page 33: Code in the cloud with Eclipse Che and Docker

Growing the base of plug-ins...

Page 34: Code in the cloud with Eclipse Che and Docker

Language Server Protocol (LSP)

PHPC#C++

PowerShellR

XText

Interface to connect language analysis into any development tool

Page 35: Code in the cloud with Eclipse Che and Docker

Runtimes InsideCollaborativeProgrammableVersionableExtensible

Universal workspace

Page 36: Code in the cloud with Eclipse Che and Docker

Reproducible and portable developer workspaces

Page 37: Code in the cloud with Eclipse Che and Docker

Che dir: reproducible and portable developer workspaces

SETUP- Docker- Eclipse Che CLI

CLONE

WORK

$ git clone https//github.com/che-samples/web-java-spring-petclinic

$ che dir up

Page 38: Code in the cloud with Eclipse Che and Docker

Live Demo: Che dir

Page 39: Code in the cloud with Eclipse Che and Docker

Che dir: reproducible and portable developer workspaces

# Defines name of the workspace

workspace.name = “happy”

# Define the Docker image to use to power the workspace's runtime

# This must conform to a Che recipe type:

workspace.runtime.image.location="codenvy/alpine_jdk8"

# Defines memory allocated to the workspace's runtime

workspace.ram = 2048

# Commands are processes that users execute in the IDE.

# Commands will appear in the drop down on the tool bar.

workspace.commands[0].name = "my-first-command"

workspace.commands[0].type = "mvn"

workspace.commands[0].commandLine = "mvn clean install -f ${current.project.path}"

workspace.commands[0].attributes.previewUrl = "http://${server.port.8080}/${current.project.relpath}"

# A command that will be executed after the workspace is loaded.

# Reference the name of a command defined above.

workspace.postload.actions[0].name="my-second-command"

Page 40: Code in the cloud with Eclipse Che and Docker

Load or create new workspace

Securely onboard developer

http://url/factory?repo=a_project

Page 41: Code in the cloud with Eclipse Che and Docker

The dream realized

Developer Workspace

Page 42: Code in the cloud with Eclipse Che and Docker

Open source project Badging

Developer Workspace

Page 43: Code in the cloud with Eclipse Che and Docker

JIRA integration

Page 44: Code in the cloud with Eclipse Che and Docker

Jenkins integration

Page 45: Code in the cloud with Eclipse Che and Docker

Get started with Eclipse Che

Sources github.com/eclipse/che

Dev List [email protected]

IRC #eclipseche

Gittergitter.im/eclipse/che

Page 46: Code in the cloud with Eclipse Che and Docker

Workshop: Extending Eclipse Che to build custom cloud IDEs Tuesday, 9:00 AM

Code in the Cloud with Eclipse Che & Docker Tuesday, 2:45 PM

Introduction to Eclipse Che extensibility model Wednesday, 11:00 AM

Build an Extension for Eclipse Che - An Experience Report Thursday, 11:00 AM

Sessions

@eclipse_che

Language Server Protocol Explained Wednesday, 4:00 PM

Page 47: Code in the cloud with Eclipse Che and Docker

The cloud workspace virtual event.Tuesday, November 15, 2016 at 11:00am EST

https://www.eclipse.org/che/checonf/

Page 48: Code in the cloud with Eclipse Che and Docker

And of course...BETA

eclipse.org/che Getting started guides Downloads Documentations Contribution guide

Page 49: Code in the cloud with Eclipse Che and Docker

Questions ?

Page 50: Code in the cloud with Eclipse Che and Docker

Thank you