java ee | lightning fast developers are only as fast as their tools | simon maple & alasdair...

Download Java EE | Lightning Fast Developers Are Only As Fast As Their Tools | Simon Maple & Alasdair Nottingham

If you can't read please download the document

Upload: jax-london

Post on 15-May-2015

841 views

Category:

Technology


0 download

DESCRIPTION

2011-11-01 | 03:00 PM - 03:50 PM | Developer productivity is paramount. We cannot live in a world where developers are resting, drinking coffee, enjoying themselves or talking to other people. This does not produce code. Unacceptable! The new WebSphere Application Server V8.5 Alpha tools and runtime have been designed around developer productivity. They truly are super lightweight and lightning fast. We will look at how the Liberty Profile has been designed to meet the high expectations of a development environment, while maintaining it's best of breed attributes around robustness, scalability and transactional integrity. Don't just take my word for it, there will be live demos so you can see the server start in seconds for your own eyes! With developer tools this fast, we can afford to spend some time away from coding, so there will be some coffee related prizes during the session!

TRANSCRIPT

  • 1.
    • Lightning fast developers are only as fast as their tools Simon Maple & Alasdair Nottingham
    wasdev.net

2.

  • Now
  • On 7 thOctober 2011, IBM released the WebSphere Application Server V8.5 Alpha
    • Extremely fast startup times
  • 3. Tailored for developers

4. Lightweight 5. Simple Management 6. Modular design 7. Dynamic runtime 8. Eclipse based tools 9. WAS fidelity 10. WASdev community 11.

  • Frequency of Development Tasks
  • Common development tasks include:

12. All tasks should be as painless as possible, with special emphasis on the more frequent ones. If the time taken to accomplish these tasks is an impediment to the development, the cost of the fidelity of the test server runtime is challenged.

  • Hourly Daily Weekly Monthly
  • Frequency
  • Modify file within an application

13. Debug a problem in an application 14. Restart/redeploy application 15. Restart server 16. Share code with team 17. Change app structure (add/remove a module/bundle) 18. Make config change 19. Share config change with team 20. Reproduce problem from another environment 21. Upgrade to new service release 22. Create application 23. Install server

  • fastest faster fast
  • Time to complete

24.

  • Key Developer Concerns
  • Incremental Publishing
  • Problem Determination
  • Performance
  • Simple Configuration

25.

  • Simple Configuration
  • Every application requires some form of server configuration. It must be easy to configure the server and work among a team
  • Typical development tasks include:
    • Creating new profiles, or cloning an existing server
  • 26. Configuring the server to support an application
      • Simple configuration changes (e.g. adding a data source) should be equally simple to do, and not require any special admin/production knowledge
    • Sharing configurations (and changes) among a large team
      • Configuration must be portable to different locations, and easy to apply onto an existing server
    • Comparing two configurations to understand the differences
      • Configuration must be simple and human readable
    • Versioning a configuration in source control
  • 27. Moving an application between development machines

28.

  • Key Developer Concerns
  • Incremental Publishing
  • Problem Determination
  • Performance
  • Simple Configuration

29.

  • Problem Determination
  • Applications arealwaysbroken during development, due to bugs, missing or incomplete code, or bad configuration. The server must make it easy for developers to identify and resolve problems within their application
  • Runtime must be robust, and react well to malformed apps. It should allow as much of the app to run as possible, so that a bug in one area does not block testing in another

30. The console (SysOut/SysErr) is for humans, not logging. It should:

    • Be clear and concise, informing the user with simple messages
  • 31. Clearly identify the location of problems in the application, helping developers to identify bugs

32. Never show stack traces, unless they come from the application. Users should never be able to tell the server is written in Java 33. Clearly differentiate between internal errors and an error in the application 34.

  • Key Developer Concerns
  • Performance
  • Simple Configuration
  • Incremental Publishing
  • Problem Determination

35.

  • Incremental Publishing
  • It must be easy to debug and make changes to a running application
  • Incremental publishing is the most frequent (and hence most important) developer task. It must:
    • Be consistent and predictable otherwise developers will resort to doing a slower app or server restart
  • 36. Be robust same behavior as reinstalling/restarting the app

37. Have minimal loss of context to reduce retesting 38. Be fine-grained or it wont perform (esp. remote) 39. Be fast enough compare with Java debugging (near instantaneous)

  • Doing this well requires:
    • Good loose config ability to run from arbitrary structures on disk, to reduce copying
  • 40. Incremental/delta publishing

41. Auto-update/restart the runtime must react to changes and make them live, or tell the user (including return code for tools) why it didnt/cant

  • Must be consistent across programming models!

42.

  • Key Developer Concerns
  • Performance
  • Problem Determination
  • Simple Configuration
  • Incremental Publishing

43.

  • Performance
  • The server must be responsive to changes that are made during development
  • Performance focus for development (single user, low throughput) is very different than production

44. Server must work well on older laptops, with slower hard drives, constrained memory, and shared with tools, email, and web browser 45. The most important paths are:

    • Incremental publishing
  • 46. Startup time

47. Installing an application

  • Should scale appropriately with the size/requirements of the application

48.

  • What's the Liberty Profile?
  • WAS V8.5 Alpha introduces:
  • A new dynamic profile of WAS which is focused FIRST onthe development experience
    • Small footprint test server runtime
  • 49. Simplified, shareable config

50. Fastest possible server start-up

  • Fidelity with full-profile WAS
    • Same containers, QoS as full-profile WAS
  • 51. But radically refactored to focus on the development experience

52. Extreme dynamicity to start what the app requires and no more

  • Initially focused on dev/test of web, mobile and OSGi apps.

53.

  • Highly composable runtime based on features
  • runtime services config model
  • Java EE support
  • WAS Extensions
  • Full WAS profile
  • Liberty profile
  • runtime (osgi)services
  • http transport
  • webcontainer
  • app manager
  • jsp
  • jsf
  • runtime (osgi)services
  • http transport
  • webcontainer
  • app manager
  • web app security
  • servlet-3.0
  • jsf-2.0 webAppSecurity-1.0

54.

  • Free & frictionless download ofdeveloper tools

55. Extends Eclipse JEE Helios (3.6) and Indigo (3.7) 56. Available from:

    • New WASdev community site:http://wasdev.net
  • 57. Within Eclipse (Help MarketPlace)

58. Eclipse Marketplace web site http://marketplace.eclipse.org/

  • Get the WebSphere Dev Tools Easily
  • wasdev.net

59.

  • Free & frictionless download of theWAS runtimefor development & test

60. New lightweight WAS Liberty profile is now available through the WAS V8.5 Open Alpha program. 61. A zip download for web application development -25 MB . Available from:

    • New WASdev community site:http://wasdev.net
  • 62. Within the WebSphere Development Eclipse
  • Get the WAS Runtime Easily

wasdev.net 63.

  • Summary
  • WAS V8.5 Alpha includes a lightweight, composable Liberty profile of WAS.
    • Withhigh fidelityto WAS V8 productionenvironment
  • 64. Focusing on the needs of the developer
  • Reduce overhead of common development tasks

65. Suitable for modest development hardware

  • WebSphere Developer Tools for Eclipsedeliver tools for the most popular WASprogramming models as Eclipse features.

66. Free with no time limit for development use

    • Accelerates development time to productivity.

wasdev.net