succeed with eclipse: large scale - eclipsecon 2020 · 11/14/16 5 wamas dimensions of scale our...
TRANSCRIPT
1
Succeed with Eclipse: Large Scale
11/14/16
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
3
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!
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
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 • •
711/14/16
Scope for today
An
d m
ore
to
co
me!
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
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
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.
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.
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)
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
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
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
1611/14/16
Deployment, Updates, Monitoring
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!
1811/14/16
Q/A
‣ Questions welcome!‣ Find me after the talk outside‣ If I’m nowhere to be found, drop me a mail
‣ Please don’t forget to rate this talk! - Thank You!
19
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.