Stop wasting your time with Java build toolsHenning BlohmHenning.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 andconfigurationExecution Environment
Just works!You do not! In fact, this is how• Large business solutions (SAP ABAP),• Your favorite scripting language,• Even...
This is also how Z2 works!Z2-Environment:• Pull from various sources• Do whatever is needed to run
Development with Z2
Scale outSee also http://www.z2-environment.net/blog/2013/01/z2-deployment-potpourri/
BenefitsNo build engineering→ No local build config, fast dev setupSmaller checkouts, no deploy→ Less re-compiling, faster...
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 buildsExample: SaaS project in production• ca. 350 kLoC Java in 15 Maven modules• Full mvn rebuild (w/o tests) ...
Development workflow1. Pull changes / clone the whole project2. Make sure IDE can deploy & run the apps3. Change & Commit4...
Lots of frequently broken assumptions:• Do you have the right runtime config?• Does you IDE produce the real output?• Are ...
What is happening here?Build tool + IDE + Youvs.A structural mismatch!
Yet another case of impedance mismatchProject Structure≠Execution & Deployment Model
Is that really so bad?• Problem stays small if projects stay small• Successful applications however:• Do not stay small• D...
So Maven does not deliver?Maven solves an importantcollaboration problem:Sharing assets amongindependent organizationsThe ...
Part 3:Z2 & a demonstration
Overcome the impedance mismatchIn Z2:• Repository structure = runtime model• Deploy becomes Synchronize
For example:A Java component that holdsimplementation and API types of the modulecom.zfabrik.sample.digester.adminA Web ap...
DemoNow, let’s take a look (demo)
Is there a technology barrier?Typically, Java frameworks are coming alongnicely with Z2. For example:• Spring• Spring Aspe...
Modes of Operation• Full-fletched w/ Worker Processes• Most-flexible, most powerful• Inside another Web Container• If that...
SummaryJava Build tools for business solutions are aremnant of the pastIf you do not need to deploy on Websphereet al, con...
Want to be involved?Z2 is Open-Source SoftwareIf you think this interesting and useful, if youwant to participate, adapt, ...
Powered-by
Wiki & Forum:http://redmine.z2-environment.net/Blog:http://www.z2-environment.net/blog/
Where would you rather be?
Upcoming SlideShare
Loading in...5
×

130511 stop wasting_your_time

121

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
121
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

130511 stop wasting_your_time

  1. 1. Stop wasting your time with Java build toolsHenning BlohmHenning.blohm@zfabrik.de – ZFabrik Software KG
  2. 2. Part 1:No need for build infrastructure–In particular not for large projects
  3. 3. What‘s missing?Why would you need more than that?Source code andconfigurationExecution Environment
  4. 4. Just works!You do not! In fact, this is how• Large business solutions (SAP ABAP),• Your favorite scripting language,• Even stuff like Apache OfBizwork.Note: I did not say compile-free!
  5. 5. This is also how Z2 works!Z2-Environment:• Pull from various sources• Do whatever is needed to run
  6. 6. Development with Z2
  7. 7. Scale outSee also http://www.z2-environment.net/blog/2013/01/z2-deployment-potpourri/
  8. 8. BenefitsNo build engineering→ No local build config, fast dev setupSmaller checkouts, no deploy→ Less re-compiling, faster roundtripsSystem-centric→ Always up-to-date, always integratedPull-approach→ Easy to scale-out
  9. 9. Does this work … really?Can you do normal Java Apps with that?Absolutely!Just wait a few minutes…
  10. 10. Part 2:Why build tools are actually harmful
  11. 11. Real world buildsExample: 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. 12. Development workflow1. Pull changes / clone the whole project2. Make sure IDE can deploy & run the apps3. Change & Commit4. Rebase, re-build, re-deploy, re-test5. Push6. Wait for CI to show a green light
  13. 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. 14. What is happening here?Build tool + IDE + Youvs.A structural mismatch!
  15. 15. Yet another case of impedance mismatchProject Structure≠Execution & Deployment Model
  16. 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 versionedsmall projects easily• Productivity goes down
  17. 17. So Maven does not deliver?Maven solves an importantcollaboration problem:Sharing assets amongindependent organizationsThe re-use mechanisms stopworking well at more complexsolutions.It does not scale that well withinone organization what workscollaboratively on one solution!
  18. 18. Part 3:Z2 & a demonstration
  19. 19. Overcome the impedance mismatchIn Z2:• Repository structure = runtime model• Deploy becomes Synchronize
  20. 20. For example:A Java component that holdsimplementation and API types of the modulecom.zfabrik.sample.digester.adminA Web app component that will be loadedby the Web container. In this case a VaadinApplication with Spring.Another Java component. This one holdsdomain definitions and is re-used fromother modules.
  21. 21. DemoNow, let’s take a look (demo)
  22. 22. Is there a technology barrier?Typically, Java frameworks are coming alongnicely with Z2. For example:• Spring• Spring AspectJ• Hibernate• Hadoop & HBase• Groovy• Jax-WS• Vaadin• RAP• BIRT• …
  23. 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. 24. SummaryJava Build tools for business solutions are aremnant of the pastIf you do not need to deploy on Websphereet al, consider leaving that past behind
  25. 25. Want to be involved?Z2 is Open-Source SoftwareIf you think this interesting and useful, if youwant to participate, adapt, or improve:Get in touch with us!
  26. 26. Powered-by
  27. 27. Wiki & Forum:http://redmine.z2-environment.net/Blog:http://www.z2-environment.net/blog/
  28. 28. Where would you rather be?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×