succeed with eclipse: large scale - eclipsecon 2020 · 11/14/16 5 wamas dimensions of scale our...

20
1 Succeed with Eclipse: Large Scale 11/14/16

Upload: others

Post on 12-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

1

Succeed with Eclipse: Large Scale

11/14/16

Page 2: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

211/14/16

Introduction

‣ Markus Duft – Software Architect‣ Working for Salomon Automation since 2005‣ [email protected]

‣ Salomon Automation GmbH – part of the privately held SSI Schaefer group‣ More than 9,000 employees worldwide - ~900 in IT

‣ WAMAS – WArehouse MAnagement System‣ Standard logistics software for manual and fully automated warehouses and combinations‣ Supports the entire intralogistics process chain‣ WMS (“keeping track of stuff”) and MFS (“moving stuff around” – incl. hardware control)‣ Java/Eclipse based WAMAS 5 around since 2007

Page 3: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

3

Page 4: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

411/14/16

What is it all about?

‣ We are using Eclipse in both infrastructure and applications since 10 years‣ We are very successful with it‣ We want to give something back, and share our knowledge and ideas‣ Sorry, but there is no one-fits-all, because:

‣ Different use cases‣ Different environments‣ Different customer types‣ Different application requirements

‣ Still, feel free to pick up ideas!

Page 5: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

511/14/16

WAMAS Dimensions of ScaleOur experience with large scale

• 3M LOC, 800 bundles• 150-200 developers• More than 15 Eclipse technologies• Dozens of nightly and CI builds• Over 13K all time Eclipse installations• 1.200 worldwide customer installations (24/7)• 50-1000 RCP processes per customer

• Databases from ~10G to ~7T• Hundreds of attached devices and PLCs

Page 6: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

611/14/16

Where does Scalability matter?

‣ Everywhere!‣ Three major areas derived:

‣ IDE/Infrastructure (Builds, …)‣ Platform/Product core‣ Deployment

Codebase • • •

Developers • •

IDE / Infrastructure •

Customer installations • •

Processes per Installation • •

Page 7: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

711/14/16

Scope for today

An

d m

ore

to

co

me!

Page 8: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

811/14/16

IDE / Infrastructure

‣ Central management of Eclipse‣ Using Genuitec Secure Delivery Center‣ Eclipse based, built around P2‣ Simple configuration of Eclipse packages

▶ Install wizard▶ Extra software▶ Preferences▶ Workspace setup▶ Updates

Page 9: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

911/14/16

IDE / Infrastructure

‣ Tight integration with version control simplifies workspace setup‣ Triggered by starting Eclipse on empty Workspace or manually‣ Wizard that allows cloning, checkout, import of projects, keeping projects in sync

Page 10: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

10

IDE / Infrastructure

‣ Better Launch Configuration management‣ Easier to launch – directly accessible‣ Plugin dependency management. Selected plugins calculated automatically.‣ „Stable“ files, default launch configurations change too often, merge-ability.

Page 11: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

1111/14/16

IDE / Infrastructure

‣ Unified build infrastructure. No extra configuration for nightlies, CI builds‣ WAMAS Power Build: Eclipse build on steroids (with restrictions).‣ All configuration is extracted from existing metadata in OSGi Bundles.

Page 12: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

1211/14/16

IDE / Infrastructure

‣ Integrated Modeling using Xtext DSLs‣ Replaced binary .XML.ZIP UML models‣ Easy to merge text files‣ Integrated way to express metadata‣ Layout information integrated into language (relative positioning)‣ Export model report (HTML documentation)

Page 13: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

1311/14/16

Runtime, Platform, Product Core

‣ Going with Eclipse Releases since 2007‣ Using BIRT, DTP, ECF, EMF, GEF, Jetty, Nebula Widgets, Xtext, RAP, Tabris, …‣ Separate “Target Platform” since 2012, before: “Running Platform”

‣ Forced to do the split because of Eclipse 4.2.1 move for IDE‣ Target Platform DSL and Generator by Obeo helps a lot

Page 14: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

1411/14/16

Runtime, Platform, Product Core

‣ RAP support with true single source‣ We have a framework on top of SWT, so RAP is pretty much a framework issue‣ We have approximately 800 SWT based dialogs in total

‣ ECF support instead of RMI‣ RMI was the only non-OSGi friendly technology in our Application‣ Single RMI Registry prevented scaling across multiple Servers

Page 15: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

1511/14/16

Deployment, Updates, Monitoring

‣ Using Genuitec Secure Delivery Center‣ Actually built to manage Eclipse, we extended it to manage our RCP processes‣ SDC is based on Eclipse and P2‣ Manages and builds client application installers as well as server processes‣ Monitors Server processes and provides feedback on application health

▶ Also for remote maintenance, support, ...‣ Fast upgrade/downgrade of application instances

‣ IDE extensions to integrate into SDC‣ Allows creation of hotfixes from workspace state‣ Allows remote process control and monitoring‣ Allows attaching remote debugger

Page 16: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

1611/14/16

Deployment, Updates, Monitoring

Page 17: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

1711/14/16

Conclusion

▶ It pays to have people improve the environment – a lot!▶ Otherwise every developer improves for himself

▶ Don’t fear Eclipse internals! Get your hands on and improve it!▶ Even if it’s “only” for your use case

▶ There is no one-fits-all recipe for scaling▶ We can scale with Eclipse!▶ Eclipse (itself) can scale!

Page 18: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

1811/14/16

Q/A

‣ Questions welcome!‣ Find me after the talk outside‣ If I’m nowhere to be found, drop me a mail

[email protected]

‣ Please don’t forget to rate this talk! - Thank You!

Page 19: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

19

Page 20: Succeed with Eclipse: Large Scale - EclipseCon 2020 · 11/14/16 5 WAMAS Dimensions of Scale Our experience with large scale • 3M LOC, 800 bundles • 150-200 developers • More

2011/14/16

Copyright

© 2016 Salomon Automation GmbH, Mitglied der SSI Schäfer Unternehmensgruppe, alle Rechte vorbehalten

© 2016 Salomon Automation GmbH, member of the SSI Schaefer group, all rights reserved

Dieses Dokument darf ohne vorherige schriftliche Genehmigung von Salomon Automation GmbH, Mitglied der SSI Schäfer Unternehmensgruppe weder vervielfältigt, noch weitergeleitet, noch in einem Datenabfragesystem gespeichert werden; das beinhaltet wenn auch nicht ausschließlich, Schriftstücke, Druck, Lochkarten, Filme, Mikrofilme oder Mikrofiche, Tonbänder oder CDs oder jede andere Form elektronischer Medien einschließlich optisch lesbare Tonbänder oder CDs, Laser CDs und jede andere Form der elektronischen Speicherung.

This document may neither be reproduced, transmitted nor stored in a retrieval system, including but not limited to, written material, printed matter, punch cards, film, microfilm or microfiche, magnetic tapes or discs or any other electronic media form including optically readable tapes or discs, laser discs, and any other form of computer storage, without the prior written consent of Salomon Automation GmbH, member of the SSI Schaefer group.

Offenbarte Gegenstände und/oder Konzepte der vorliegenden Dokumentation sind oder werden noch durch gewerbliche Schutzrechte geschützt.

Disclosed matters and/or concepts of the present documentation are or will be protected by intellectual property rights.