Code in the cloud with eclipse che and docker / snowcamp.io 2017

Post on 13-Apr-2017

80 views 0 download

transcript

SnowCamp.io 2017 - 9th February

#eclipseche

Code in the cloud with Eclipse Che and Docker

Florent Benoit (@florentbenoit) - Codenvy

Agenda

Introduction to Eclipse Che

Live Demo

Workspace Portability

A Workspace when you Need It!

The Developer Environment Configuration Problem

Working on multiple projects, technologies

Working in teams with style...

All differents - but all goods

Documentation, Scripts ?

READ THE SOURCE LUKE !!

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

Why can’t we have anyone, at anytime be able to 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 Runtimes

Configuration

Workspaces include projects and config

IDE RuntimesProject Files

WorkspaceToday

Redefine the workspace

IDE RuntimesProject Files

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

Runtimes InsideCollaborativeProgrammableVersionableExtensible

Universal workspace

Workspaces bring their own runtimes

Machine runtime defined by Dockerfileor Composefile

Projects are mounted into the runtimes

Projects rely on workspace runtimes

Workspaces define commands

mvn clean install

start mysql

deploy project

Commands are executed as processes in workspace runtimes

Workspaces provide 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. Debug

Runtime InsideCollaborativeProgrammableVersionableExtensible

Universal workspace

Swagger!

Runtime InsideCollaborativeProgrammableVersionableExtensible

Universal workspace

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

Development

Production

Runtime InsideCollaborativeProgrammableVersionableExtensible

Universal workspace

Growing the base of plug-ins...

Language Server Protocol (LSP)

PHPC#C++

PowerShellR

XText

Interface to connect language analysis into any development tool

Runtimes InsideCollaborativeProgrammableVersionableExtensible

Universal workspace

Reproducible and portable developer workspaces

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

$ docker run eclipse/che dir up

Live Demo: Che dir

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"

Load or create new workspace

Securely onboard developer

http://url/factory?repo=a_project

The dream realized

Developer Workspace

Open source project Badging

Developer Workspace

https://codenvy.io/f?name=my-petclinic&user=fbenoitcodenvycom

JIRA integration

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...

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

Questions ?

Thank you