Slide 1

Slide 1 text

Eclipse Flux Eine Micro-Service-Architektur für cloud-basierte Entwicklungswerkzeuge Martin Lippert, Pivotal [email protected] @martinlippert

Slide 2

Slide 2 text

todays Desktop IDEs are great

Slide 3

Slide 3 text

but the world has changed

Slide 4

Slide 4 text

“Why can Google search the Internet in 10ms and Eclipse needs 5sec to open a type hierarchy?”

Slide 5

Slide 5 text

nowadays Ubiquitous, variable user interfaces Massively scalable compute and storage Seamless and automatic software and data delivery Always connected

Slide 6

Slide 6 text

developer tooling in the cloud ?

Slide 7

Slide 7 text

challenge #1 run in the cloud

Slide 8

Slide 8 text

challenge #2 no either-or, enable both

Slide 9

Slide 9 text

challenge #3 do not re-implement everything

Slide 10

Slide 10 text

http://www.eclipse.org/flux

Slide 11

Slide 11 text

Demo

Slide 12

Slide 12 text

the architecture

Slide 13

Slide 13 text

async

Slide 14

Slide 14 text

Eclipse IDE Asynchronous Messaging Workspace Repository Cloud Region A Backup Repository

Slide 15

Slide 15 text

Eclipse IDE Asynchronous Messaging Workspace Repository Cloud Region A Backup Repository File Sync

Slide 16

Slide 16 text

Eclipse IDE Asynchronous Messaging Workspace Repository Cloud Region A Backup Repository Browser Editor Local Storage

Slide 17

Slide 17 text

Eclipse IDE Asynchronous Messaging Workspace Repository Cloud Region A Backup Repository Browser Editor Local Storage File Sync &
 Live Sync File Sync

Slide 18

Slide 18 text

micro-services

Slide 19

Slide 19 text

Eclipse IDE Asynchronous Messaging Workspace Repository Cloud Region A Backup Repository Cloud Region B Java
 Service Browser Editor Local Storage

Slide 20

Slide 20 text

Eclipse IDE Asynchronous Messaging Workspace Repository Cloud Region A Java
 Service Browser Editor Local Storage Cloud Region B Scala
 Service Cloud Region C JavaScript Service

Slide 21

Slide 21 text

highly decoupled

Slide 22

Slide 22 text

Eclipse IDE Asynchronous Messaging Workspace Repository Cloud Region A Java
 Service Browser Editor Local Storage Cloud Region B Scala
 Service Cloud Region C JavaScript Service

Slide 23

Slide 23 text

Eclipse IDE Asynchronous Messaging Workspace Repository Cloud Region A Backup Repository Browser Editor Local Storage Cloud Region B Backup Repository …

Slide 24

Slide 24 text

highly distributed

Slide 25

Slide 25 text

Eclipse IDE Asynchronous Messaging Java Service Workspace Repository Cloud Region A Backup Repository Cloud Region B Java
 Service Browser Editor Local Storage

Slide 26

Slide 26 text

Eclipse IDE Asynchronous Messaging Workspace Repository Cloud Region A Java
 Service Browser Editor Local Storage Cloud Region B Scala
 Service Cloud Region C JavaScript Service

Slide 27

Slide 27 text

real-time data sync backbone

Slide 28

Slide 28 text

Eclipse IDE Asynchronous Messaging Workspace Repository Cloud Region A Backup Repository Cloud Region B Java
 Service Browser Editor Local Storage Live Sync &
 Service Results File Sync

Slide 29

Slide 29 text

the overall picture

Slide 30

Slide 30 text

Local Services Asynchronous Messaging Local Editors and IDEs Workspace Repository Cloud Region A Backup Repository Cloud Region B Java
 Service Browser Editor Local Storage GitHub Repository Cross- Reference Service JavaScript
 Service Scala
 Service Collab. Service Cloud Foundry Service Executor Service

Slide 31

Slide 31 text

design choices & early experiences

Slide 32

Slide 32 text

services are not “called” - they engage and react

Slide 33

Slide 33 text

there is no master - data sync in p2p style

Slide 34

Slide 34 text

decomposing existing IDEs into micro-services is hard - but possible

Slide 35

Slide 35 text

async is a different beast

Slide 36

Slide 36 text

everything is eventually consistent

Slide 37

Slide 37 text

offline remains a challenge

Slide 38

Slide 38 text

more Q&A

Slide 39

Slide 39 text

Thank You Martin Lippert, Pivotal [email protected] @martinlippert