SlideShare a Scribd company logo
1 of 28
Download to read offline
Stop wasting your time with Java build tools
Henning Blohm
Henning.blohm@zfabrik.de – ZFabrik Software KG
Part 1:
No need for build infrastructure
–
In particular not for large projects
What‘s missing?
Why would you need more than that?
Source code and
configuration
Execution Environment
Just works!
You do not! In fact, this is how
• Large business solutions (SAP ABAP),
• Your favorite scripting language,
• Even stuff like Apache OfBiz
work.
Note: I did not say compile-free!
This is also how Z2 works!
Z2-Environment:
• Pull from various sources
• Do whatever is needed to run
Development with Z2
Scale out
See also http://www.z2-environment.net/blog/2013/01/z2-deployment-potpourri/
Benefits
No build engineering
→ No local build config, fast dev setup
Smaller checkouts, no deploy
→ Less re-compiling, faster roundtrips
System-centric
→ Always up-to-date, always integrated
Pull-approach
→ Easy to scale-out
Does this work … really?
Can you do normal Java Apps with that?
Absolutely!
Just wait a few minutes…
Part 2:
Why build tools are actually harmful
Real world builds
Example: SaaS project in production
• ca. 350 kLoC Java in 15 Maven modules
• Full mvn rebuild (w/o tests) in 4.5 min
• Full deploy and restart in roughly 15 min
• Produces a few Web apps and some
Development workflow
1. Pull changes / clone the whole project
2. Make sure IDE can deploy & run the apps
3. Change & Commit
4. Rebase, re-build, re-deploy, re-test
5. Push
6. Wait for CI to show a green light
Lots of frequently broken assumptions:
• Do you have the right runtime config?
• Does you IDE produce the real output?
• Are you changes incorporated elsewhere?
Slow and error-prone!
Gets harder and harder!
What happened?
What is happening here?
Build tool + IDE + You
vs.
A structural mismatch!
Yet another case of impedance mismatch
Project Structure
≠
Execution & Deployment Model
Is that really so bad?
• Problem stays small if projects stay small
• Successful applications however:
• Do not stay small
• Do not de-compose into independently versioned
small projects easily
• Productivity goes down
So Maven does not deliver?
Maven solves an important
collaboration problem:
Sharing assets among
independent organizations
The re-use mechanisms stop
working well at more complex
solutions.
It does not scale that well within
one organization what works
collaboratively on one solution!
Part 3:
Z2 & a demonstration
Overcome the impedance mismatch
In Z2:
• Repository structure = runtime model
• Deploy becomes Synchronize
For example:
A Java component that holds
implementation and API types of the module
com.zfabrik.sample.digester.admin
A Web app component that will be loaded
by the Web container. In this case a Vaadin
Application with Spring.
Another Java component. This one holds
domain definitions and is re-used from
other modules.
Demo
Now, let’s take a look (demo)
Is there a technology barrier?
Typically, Java frameworks are coming along
nicely with Z2. For example:
• Spring
• Spring AspectJ
• Hibernate
• Hadoop & HBase
• Groovy
• Jax-WS
• Vaadin
• RAP
• BIRT
• …
Modes of Operation
• Full-fletched w/ Worker Processes
• Most-flexible, most powerful
• Inside another Web Container
• If that’s a given
• Command line
• Extends solution with CLII
Summary
Java Build tools for business solutions are a
remnant of the past
If you do not need to deploy on Websphere
et al, consider leaving that past behind
Want to be involved?
Z2 is Open-Source Software
If you think this interesting and useful, if you
want to participate, adapt, or improve:
Get in touch with us!
Powered-by
Wiki & Forum:
http://redmine.z2-environment.net/
Blog:
http://www.z2-environment.net/blog/
Where would you rather be?

More Related Content

What's hot

Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
DevOpsDays Tel Aviv
 

What's hot (20)

Cypress testing
Cypress testingCypress testing
Cypress testing
 
Devops e a nova cultura - TDC Florianopolis 2015
Devops e a nova cultura - TDC Florianopolis 2015Devops e a nova cultura - TDC Florianopolis 2015
Devops e a nova cultura - TDC Florianopolis 2015
 
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
 
React Native Intro
React Native IntroReact Native Intro
React Native Intro
 
Microservices Architecture: Nirvana or Nightmare
Microservices Architecture: Nirvana or NightmareMicroservices Architecture: Nirvana or Nightmare
Microservices Architecture: Nirvana or Nightmare
 
Lap around ALM with Visual Studio and TFS 2013
Lap around ALM with Visual Studio and TFS 2013Lap around ALM with Visual Studio and TFS 2013
Lap around ALM with Visual Studio and TFS 2013
 
What Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java DevelopmentWhat Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java Development
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
 
Dev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsDev ops is more than CI+CD tools
Dev ops is more than CI+CD tools
 
Kanban stand-up meetings
Kanban stand-up meetingsKanban stand-up meetings
Kanban stand-up meetings
 
Kanban Methodology
Kanban MethodologyKanban Methodology
Kanban Methodology
 
A culture of Automation - Joe Smith - DevOpsDays Tel Aviv 2017
A culture of Automation - Joe Smith - DevOpsDays Tel Aviv 2017A culture of Automation - Joe Smith - DevOpsDays Tel Aviv 2017
A culture of Automation - Joe Smith - DevOpsDays Tel Aviv 2017
 
XRebel - Real Time Insight, Faster Apps
XRebel - Real Time Insight, Faster AppsXRebel - Real Time Insight, Faster Apps
XRebel - Real Time Insight, Faster Apps
 
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
 
Mercurial
MercurialMercurial
Mercurial
 
The Perfect Neos Project Setup
The Perfect Neos Project SetupThe Perfect Neos Project Setup
The Perfect Neos Project Setup
 
Aws, play! couch db scaling soa in the cloud
Aws, play! couch db  scaling soa in the cloudAws, play! couch db  scaling soa in the cloud
Aws, play! couch db scaling soa in the cloud
 
corporateJavascript
corporateJavascriptcorporateJavascript
corporateJavascript
 
With Great Power comes Great Responsibilities
With Great Power comes Great ResponsibilitiesWith Great Power comes Great Responsibilities
With Great Power comes Great Responsibilities
 
9 Productive Tips to Work Faster
9 Productive Tips to Work Faster9 Productive Tips to Work Faster
9 Productive Tips to Work Faster
 

Viewers also liked

Accelerated reliability techniques in the 21st century
Accelerated reliability techniques in the 21st centuryAccelerated reliability techniques in the 21st century
Accelerated reliability techniques in the 21st century
ASQ Reliability Division
 

Viewers also liked (7)

1004 z2 env_positioned
1004 z2 env_positioned1004 z2 env_positioned
1004 z2 env_positioned
 
talk at jazoon 12 in Zürich
talk at jazoon 12 in Zürichtalk at jazoon 12 in Zürich
talk at jazoon 12 in Zürich
 
1006 Z2 Intro Complete
1006 Z2 Intro Complete1006 Z2 Intro Complete
1006 Z2 Intro Complete
 
130605 buildfrei skalieren_fuer_bigdata
130605 buildfrei skalieren_fuer_bigdata130605 buildfrei skalieren_fuer_bigdata
130605 buildfrei skalieren_fuer_bigdata
 
Accelerated reliability techniques in the 21st century
Accelerated reliability techniques in the 21st centuryAccelerated reliability techniques in the 21st century
Accelerated reliability techniques in the 21st century
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Similar to 130511 stop wasting_your_time

Maintainable Javascript carsonified
Maintainable Javascript carsonifiedMaintainable Javascript carsonified
Maintainable Javascript carsonified
Christian Heilmann
 

Similar to 130511 stop wasting_your_time (20)

O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
 
Selecting the Best Javascript Web Framework
Selecting the Best Javascript Web FrameworkSelecting the Best Javascript Web Framework
Selecting the Best Javascript Web Framework
 
Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012
 
SE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsSE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-Tools
 
ADUF - Adaptable Design Up Front
ADUF -  Adaptable Design Up FrontADUF -  Adaptable Design Up Front
ADUF - Adaptable Design Up Front
 
Create first android app with MVVM Architecture
Create first android app with MVVM ArchitectureCreate first android app with MVVM Architecture
Create first android app with MVVM Architecture
 
Java Spring
Java SpringJava Spring
Java Spring
 
Build tool
Build toolBuild tool
Build tool
 
Maintainable Javascript carsonified
Maintainable Javascript carsonifiedMaintainable Javascript carsonified
Maintainable Javascript carsonified
 
Zend Code in ZF 2.0
Zend Code in ZF 2.0Zend Code in ZF 2.0
Zend Code in ZF 2.0
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
 
The Architect Way
The Architect WayThe Architect Way
The Architect Way
 
The JavaScript Delusion
The JavaScript DelusionThe JavaScript Delusion
The JavaScript Delusion
 
4 spring boot
4 spring boot4 spring boot
4 spring boot
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
 
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
Is Serverless The New Swiss Cheese? - AWS Seattle User GroupIs Serverless The New Swiss Cheese? - AWS Seattle User Group
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
 
Introduction to Spring & Spring BootFramework
Introduction to Spring  & Spring BootFrameworkIntroduction to Spring  & Spring BootFramework
Introduction to Spring & Spring BootFramework
 
Continuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUG
Continuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUGContinuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUG
Continuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUG
 
Angular + JHipster - JHipster Conf
Angular + JHipster - JHipster ConfAngular + JHipster - JHipster Conf
Angular + JHipster - JHipster Conf
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 

130511 stop wasting_your_time

  • 1. Stop wasting your time with Java build tools Henning Blohm Henning.blohm@zfabrik.de – ZFabrik Software KG
  • 2. Part 1: No need for build infrastructure – In particular not for large projects
  • 3. What‘s missing? Why would you need more than that? Source code and configuration Execution Environment
  • 4. Just works! You do not! In fact, this is how • Large business solutions (SAP ABAP), • Your favorite scripting language, • Even stuff like Apache OfBiz work. Note: I did not say compile-free!
  • 5. This is also how Z2 works! Z2-Environment: • Pull from various sources • Do whatever is needed to run
  • 7. Scale out See also http://www.z2-environment.net/blog/2013/01/z2-deployment-potpourri/
  • 8. Benefits No build engineering → No local build config, fast dev setup Smaller checkouts, no deploy → Less re-compiling, faster roundtrips System-centric → Always up-to-date, always integrated Pull-approach → Easy to scale-out
  • 9. Does this work … really? Can you do normal Java Apps with that? Absolutely! Just wait a few minutes…
  • 10. Part 2: Why build tools are actually harmful
  • 11. Real world builds Example: SaaS project in production • ca. 350 kLoC Java in 15 Maven modules • Full mvn rebuild (w/o tests) in 4.5 min • Full deploy and restart in roughly 15 min • Produces a few Web apps and some
  • 12. Development workflow 1. Pull changes / clone the whole project 2. Make sure IDE can deploy & run the apps 3. Change & Commit 4. Rebase, re-build, re-deploy, re-test 5. Push 6. Wait for CI to show a green light
  • 13. Lots of frequently broken assumptions: • Do you have the right runtime config? • Does you IDE produce the real output? • Are you changes incorporated elsewhere? Slow and error-prone! Gets harder and harder! What happened?
  • 14. What is happening here? Build tool + IDE + You vs. A structural mismatch!
  • 15. Yet another case of impedance mismatch Project Structure ≠ Execution & Deployment Model
  • 16. Is that really so bad? • Problem stays small if projects stay small • Successful applications however: • Do not stay small • Do not de-compose into independently versioned small projects easily • Productivity goes down
  • 17. So Maven does not deliver? Maven solves an important collaboration problem: Sharing assets among independent organizations The re-use mechanisms stop working well at more complex solutions. It does not scale that well within one organization what works collaboratively on one solution!
  • 18. Part 3: Z2 & a demonstration
  • 19. Overcome the impedance mismatch In Z2: • Repository structure = runtime model • Deploy becomes Synchronize
  • 20. For example: A Java component that holds implementation and API types of the module com.zfabrik.sample.digester.admin A Web app component that will be loaded by the Web container. In this case a Vaadin Application with Spring. Another Java component. This one holds domain definitions and is re-used from other modules.
  • 21. Demo Now, let’s take a look (demo)
  • 22. Is there a technology barrier? Typically, Java frameworks are coming along nicely with Z2. For example: • Spring • Spring AspectJ • Hibernate • Hadoop & HBase • Groovy • Jax-WS • Vaadin • RAP • BIRT • …
  • 23. Modes of Operation • Full-fletched w/ Worker Processes • Most-flexible, most powerful • Inside another Web Container • If that’s a given • Command line • Extends solution with CLII
  • 24. Summary Java Build tools for business solutions are a remnant of the past If you do not need to deploy on Websphere et al, consider leaving that past behind
  • 25. Want to be involved? Z2 is Open-Source Software If you think this interesting and useful, if you want to participate, adapt, or improve: Get in touch with us!
  • 28. Where would you rather be?