SlideShare una empresa de Scribd logo
1 de 15
OSGi at a Large-Scale Enterprise Lessons from eBay Justin Early, Sangjin Lee, & DebashisSaha eBay Inc.
Agenda Case for enterprise OSGi Speaking of scale... Migration challenges & observations IDE & build Tooling benefits Closing 2
Case for enterprise OSGi For all its virtues, OSGi is still a hard sell in (large scale) enterprises Why? 3
Case for enterprise OSGi Modularity: warm Runtime dynamism: not so much Operations needs predictability JavaEE containers are becoming OSGi ready: warm 4
Modularity Modularity is perhaps the best driver for OSGi in the enterprise Reduce surface areas Reduce coupling and increase cohesion However, modularity benefits are hard to quantify What is a PRACTICAL metric that demonstrates the compelling value of a modular architecture? Reduced coupling? Reduced build time? 5
Cost-benefit analysis Modularity benefits are long term, but the migration pain is immediate The very SCALE which necessitates the modularity discussion also makes migration very expensive 6
It feels like... 7
Speaking of scale... eBay’s code base has Thousands of jars Tens of thousands of packages Hundreds of thousands of classes Tens of millions of lines of code Even the simplest refactoring can become very expensive 8
Migration observations Everything needs to be in a bundle We’re finding a lot of existing problems to clean up Starting from a “super” bundle 9
Migration challenges What should be my module granularity? Package control policy Import-Package v. Require-Bundle (ala split packages) Dynamic classloading and resource loading 10
Migration challenges Limiting use of OSGi services Scale of development teams: training and support 11
Eclipse and OSGi Java Jars
Evolution ,[object Object]
Convert Jars to Bundles using aQute's BND tool
Convert Library Projects into one plugin project using PDE tooling and use use it for build and compile time.,[object Object]

Más contenido relacionado

Similar a OSGi at eBay

OSGi at eBay: JavaOne 2010
OSGi at eBay: JavaOne 2010OSGi at eBay: JavaOne 2010
OSGi at eBay: JavaOne 2010Sangjin Lee
 
Best Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim WardBest Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim Wardmfrancis
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPRobert MacLean
 
New Features of OBIEE 11.1.1.6.x
New Features of OBIEE 11.1.1.6.x New Features of OBIEE 11.1.1.6.x
New Features of OBIEE 11.1.1.6.x Capgemini
 
Lessons learned from a large scale OSGi web app
Lessons learned from a large scale OSGi web appLessons learned from a large scale OSGi web app
Lessons learned from a large scale OSGi web appPaul Bakker
 
Why we should consider Open Hybrid Cloud.pdf
Why we should  consider Open Hybrid Cloud.pdfWhy we should  consider Open Hybrid Cloud.pdf
Why we should consider Open Hybrid Cloud.pdfMasahiko Umeno
 
TechEvent 2019: Build Oracle DBaaS in the Swisscom Enterprise Cloud - but SAF...
TechEvent 2019: Build Oracle DBaaS in the Swisscom Enterprise Cloud - but SAF...TechEvent 2019: Build Oracle DBaaS in the Swisscom Enterprise Cloud - but SAF...
TechEvent 2019: Build Oracle DBaaS in the Swisscom Enterprise Cloud - but SAF...Trivadis
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Nuxeo
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the CloudBert Ertman
 
Tetap Agile dengan Arsitektur Monolith - Ziya El Arief
Tetap Agile dengan Arsitektur Monolith - Ziya El AriefTetap Agile dengan Arsitektur Monolith - Ziya El Arief
Tetap Agile dengan Arsitektur Monolith - Ziya El AriefDicodingEvent
 
Introducing OSGi Technology to Existing Projects - Nils Hofseth Andersen
Introducing OSGi Technology to Existing Projects - Nils Hofseth AndersenIntroducing OSGi Technology to Existing Projects - Nils Hofseth Andersen
Introducing OSGi Technology to Existing Projects - Nils Hofseth Andersenmfrancis
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolithAgile integration: Decomposing the monolith
Agile integration: Decomposing the monolithJudy Breedlove
 
practical-guide-to-modularity with Java osgi
practical-guide-to-modularity with Java osgipractical-guide-to-modularity with Java osgi
practical-guide-to-modularity with Java osgiGabrielBran5
 
Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Mirco Hering
 
A selection of short stories where Azure DevOps saved the bacon
A selection of short stories where Azure DevOps saved the baconA selection of short stories where Azure DevOps saved the bacon
A selection of short stories where Azure DevOps saved the baconMatteo Emili
 
Benefits of OSGi in Practise
Benefits of OSGi in PractiseBenefits of OSGi in Practise
Benefits of OSGi in PractiseDavid Bosschaert
 
OSGi Sticker Shock Eclipse Con 2010
OSGi Sticker Shock   Eclipse Con 2010OSGi Sticker Shock   Eclipse Con 2010
OSGi Sticker Shock Eclipse Con 2010ericjohnson
 
Introduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptxIntroduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptxHARSHITJAIN068
 

Similar a OSGi at eBay (20)

OSGi at eBay: JavaOne 2010
OSGi at eBay: JavaOne 2010OSGi at eBay: JavaOne 2010
OSGi at eBay: JavaOne 2010
 
Best Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim WardBest Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim Ward
 
OSGI,
OSGI,OSGI,
OSGI,
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
 
New Features of OBIEE 11.1.1.6.x
New Features of OBIEE 11.1.1.6.x New Features of OBIEE 11.1.1.6.x
New Features of OBIEE 11.1.1.6.x
 
Lessons learned from a large scale OSGi web app
Lessons learned from a large scale OSGi web appLessons learned from a large scale OSGi web app
Lessons learned from a large scale OSGi web app
 
Why we should consider Open Hybrid Cloud.pdf
Why we should  consider Open Hybrid Cloud.pdfWhy we should  consider Open Hybrid Cloud.pdf
Why we should consider Open Hybrid Cloud.pdf
 
TechEvent 2019: Build Oracle DBaaS in the Swisscom Enterprise Cloud - but SAF...
TechEvent 2019: Build Oracle DBaaS in the Swisscom Enterprise Cloud - but SAF...TechEvent 2019: Build Oracle DBaaS in the Swisscom Enterprise Cloud - but SAF...
TechEvent 2019: Build Oracle DBaaS in the Swisscom Enterprise Cloud - but SAF...
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the Cloud
 
GlassFish v3 - Architecture
GlassFish v3 - ArchitectureGlassFish v3 - Architecture
GlassFish v3 - Architecture
 
Tetap Agile dengan Arsitektur Monolith - Ziya El Arief
Tetap Agile dengan Arsitektur Monolith - Ziya El AriefTetap Agile dengan Arsitektur Monolith - Ziya El Arief
Tetap Agile dengan Arsitektur Monolith - Ziya El Arief
 
Introducing OSGi Technology to Existing Projects - Nils Hofseth Andersen
Introducing OSGi Technology to Existing Projects - Nils Hofseth AndersenIntroducing OSGi Technology to Existing Projects - Nils Hofseth Andersen
Introducing OSGi Technology to Existing Projects - Nils Hofseth Andersen
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolithAgile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
 
practical-guide-to-modularity with Java osgi
practical-guide-to-modularity with Java osgipractical-guide-to-modularity with Java osgi
practical-guide-to-modularity with Java osgi
 
Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015
 
A selection of short stories where Azure DevOps saved the bacon
A selection of short stories where Azure DevOps saved the baconA selection of short stories where Azure DevOps saved the bacon
A selection of short stories where Azure DevOps saved the bacon
 
Benefits of OSGi in Practise
Benefits of OSGi in PractiseBenefits of OSGi in Practise
Benefits of OSGi in Practise
 
OSGi Sticker Shock Eclipse Con 2010
OSGi Sticker Shock   Eclipse Con 2010OSGi Sticker Shock   Eclipse Con 2010
OSGi Sticker Shock Eclipse Con 2010
 
Introduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptxIntroduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptx
 

OSGi at eBay

  • 1. OSGi at a Large-Scale Enterprise Lessons from eBay Justin Early, Sangjin Lee, & DebashisSaha eBay Inc.
  • 2. Agenda Case for enterprise OSGi Speaking of scale... Migration challenges & observations IDE & build Tooling benefits Closing 2
  • 3. Case for enterprise OSGi For all its virtues, OSGi is still a hard sell in (large scale) enterprises Why? 3
  • 4. Case for enterprise OSGi Modularity: warm Runtime dynamism: not so much Operations needs predictability JavaEE containers are becoming OSGi ready: warm 4
  • 5. Modularity Modularity is perhaps the best driver for OSGi in the enterprise Reduce surface areas Reduce coupling and increase cohesion However, modularity benefits are hard to quantify What is a PRACTICAL metric that demonstrates the compelling value of a modular architecture? Reduced coupling? Reduced build time? 5
  • 6. Cost-benefit analysis Modularity benefits are long term, but the migration pain is immediate The very SCALE which necessitates the modularity discussion also makes migration very expensive 6
  • 8. Speaking of scale... eBay’s code base has Thousands of jars Tens of thousands of packages Hundreds of thousands of classes Tens of millions of lines of code Even the simplest refactoring can become very expensive 8
  • 9. Migration observations Everything needs to be in a bundle We’re finding a lot of existing problems to clean up Starting from a “super” bundle 9
  • 10. Migration challenges What should be my module granularity? Package control policy Import-Package v. Require-Bundle (ala split packages) Dynamic classloading and resource loading 10
  • 11. Migration challenges Limiting use of OSGi services Scale of development teams: training and support 11
  • 12. Eclipse and OSGi Java Jars
  • 13.
  • 14. Convert Jars to Bundles using aQute's BND tool
  • 15.

Notas del editor

  1. Do we need to adopt Plugin Development Environment (PDE) or Java Development Envrionment? Do we change how we develop or can we just use POJO projects?We find that PDE in eclipse can build plugins if we handcraft manifest.mf and use the manifest editorWe have used BND to generate manifest.mf and export bundles from our existing POJO build processWhat (headless) build framework will scale?Module-aware builds – like the idea of javac wrapper to compile from a list of modules
  2. Can OSGi help with managing a Java API other than basic Java access?Developer classpath construction is minimized: this is important with a very large number of librariesTools to help exploring the modulesPromising Workspace materialization leveraging OSGi metadataControl packages that are exportedControl packages that are shared between modules (friend)Control packages that are internal.API baseline management and tooling is being added to PDE tooling in EclipseCompiler will highlight packages that are discouraged from usage and not available for usage.Number of dependencies have increased the size of the classpath causing order issues and issues with cross packages which could be caught with a module system.Visual tools for seeing dependencies no development cost these tools use OSGI manifest data to create tree.Tools to author manifest files already available in EclipseClass path container simplifies view in Eclipse no more filtering out libraries from External.Find bundle / jar compile time dependencies that are unused is a tool within Eclipse.Find all classes used from this bundle is now possible.