Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

130511 stop wasting_your_time


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

130511 stop wasting_your_time

  1. 1. Stop wasting your time with Java build toolsHenning – 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
  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:
  28. 28. Where would you rather be?