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

1,133 views
1,068 views

Published on

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!

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
1,133
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • The Top 4 Developer Priorities are: Incremental Publishing This is the most frequent (and hence most important) developer task. It must be easy (robust, consistent, fast) to make changes in a running application Simple Configuration It must be easy to configure the server for an application, compare changes, share among a team, and promote to production Problem Determination Applications are always broken 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 Performance Performance focus for development (single user, low throughput) is very different than production. Incremental publishing, startup, and app install must work well on older laptops with slower hard drives and constrained memory Lets look at each in turn starting with Incremental Publishing.
  • Java EE | Lightning Fast Developers Are Only As Fast As Their Tools | Simon Maple & Alasdair Nottingham

    1. 1. <ul>Lightning fast developers are only as fast as their tools Simon Maple & Alasdair Nottingham </ul>wasdev.net
    2. 2. <ul>Now </ul><ul><li>On 7 th October 2011, IBM released the WebSphere Application Server V8.5 Alpha </li></ul><ul><ul><li>Extremely fast startup times
    3. 3. Tailored for developers
    4. 4. Lightweight
    5. 5. Simple Management
    6. 6. Modular design
    7. 7. Dynamic runtime
    8. 8. Eclipse based tools
    9. 9. WAS fidelity
    10. 10. WASdev community </li></ul></ul>
    11. 11. <ul>Frequency of Development Tasks </ul><ul><li>Common development tasks include:
    12. 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. </li></ul><ul>Hourly Daily Weekly Monthly </ul><ul>Frequency </ul><ul><li>Modify file within an application
    13. 13. Debug a problem in an application
    14. 14. Restart/redeploy application
    15. 15. Restart server
    16. 16. Share code with team
    17. 17. Change app structure (add/remove a module/bundle)
    18. 18. Make config change
    19. 19. Share config change with team
    20. 20. Reproduce problem from another environment
    21. 21. Upgrade to new service release
    22. 22. Create application
    23. 23. Install server </li></ul><ul>fastest faster fast </ul><ul>Time to complete </ul>
    24. 24. <ul>Key Developer Concerns </ul><ul>Incremental Publishing </ul><ul>Problem Determination </ul><ul>Performance </ul><ul>Simple Configuration </ul>
    25. 25. <ul>Simple Configuration </ul><ul>Every application requires some form of server configuration. It must be easy to configure the server and work among a team </ul><ul><li>Typical development tasks include: </li></ul><ul><ul><li>Creating new profiles, or cloning an existing server
    26. 26. Configuring the server to support an application </li></ul></ul><ul><ul><ul><li>Simple configuration changes (e.g. adding a data source) should be equally simple to do, and not require any special admin/production knowledge </li></ul></ul></ul><ul><ul><li>Sharing configurations (and changes) among a large team </li></ul></ul><ul><ul><ul><li>Configuration must be portable to different locations, and easy to apply onto an existing server </li></ul></ul></ul><ul><ul><li>Comparing two configurations to understand the differences </li></ul></ul><ul><ul><ul><li>Configuration must be simple and human readable </li></ul></ul></ul><ul><ul><li>Versioning a configuration in source control
    27. 27. Moving an application between development machines </li></ul></ul>
    28. 28. <ul>Key Developer Concerns </ul><ul>Incremental Publishing </ul><ul>Problem Determination </ul><ul>Performance </ul><ul>Simple Configuration </ul>
    29. 29. <ul>Problem Determination </ul><ul>Applications are always broken 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 </ul><ul><li>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. 30. The console (SysOut/SysErr) is for humans, not logging. It should: </li></ul><ul><ul><li>Be clear and concise, informing the user with simple messages
    31. 31. Clearly identify the location of problems in the application, helping developers to identify bugs
    32. 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. 33. Clearly differentiate between internal errors and an error in the application </li></ul></ul>
    34. 34. <ul>Key Developer Concerns </ul><ul>Performance </ul><ul>Simple Configuration </ul><ul>Incremental Publishing </ul><ul>Problem Determination </ul>
    35. 35. <ul>Incremental Publishing </ul><ul>It must be easy to debug and make changes to a running application </ul><ul><li>Incremental publishing is the most frequent (and hence most important) developer task. It must: </li></ul><ul><ul><li>Be consistent and predictable – otherwise developers will resort to doing a slower app or server restart
    36. 36. Be robust – same behavior as reinstalling/restarting the app
    37. 37. Have minimal loss of context – to reduce retesting
    38. 38. Be fine-grained – or it won’t perform (esp. remote)
    39. 39. Be fast enough – compare with Java debugging (near instantaneous) </li></ul></ul><ul><li>Doing this well requires: </li></ul><ul><ul><li>Good ‘loose config’ – ability to run from arbitrary structures on disk, to reduce copying
    40. 40. Incremental/delta publishing
    41. 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 didn’t/can’t </li></ul></ul><ul><li>Must be consistent across programming models! </li></ul>
    42. 42. <ul>Key Developer Concerns </ul><ul>Performance </ul><ul>Problem Determination </ul><ul>Simple Configuration </ul><ul>Incremental Publishing </ul>
    43. 43. <ul>Performance </ul><ul>The server must be responsive to changes that are made during development </ul><ul><li>Performance focus for development (single user, low throughput) is very different than production
    44. 44. Server must work well on older laptops, with slower hard drives, constrained memory, and shared with tools, email, and web browser
    45. 45. The most important paths are: </li></ul><ul><ul><li>Incremental publishing
    46. 46. Startup time
    47. 47. Installing an application </li></ul></ul><ul><li>Should scale appropriately with the size/requirements of the application </li></ul>
    48. 48. <ul>What's the Liberty Profile? </ul><ul><li>WAS V8.5 Alpha introduces: </li></ul><ul><li>A new dynamic profile of WAS which is focused FIRST on the development experience </li></ul><ul><ul><li>Small footprint test server runtime
    49. 49. Simplified, shareable config
    50. 50. Fastest possible server start-up </li></ul></ul><ul><li>Fidelity with full-profile WAS </li></ul><ul><ul><li>Same containers, QoS as full-profile WAS
    51. 51. But radically refactored to focus on the development experience
    52. 52. Extreme dynamicity to start what the app requires and no more </li></ul></ul><ul><li>Initially focused on dev/test of web, mobile and OSGi apps. </li></ul>
    53. 53. <ul>Highly composable runtime based on ‘features’ </ul><ul>runtime services config model </ul><ul>Java EE support </ul><ul>WAS Extensions </ul><ul>Full WAS profile </ul><ul>Liberty profile </ul><ul>runtime (osgi) services </ul><ul>http transport </ul><ul>webcontainer </ul><ul>app manager </ul><ul>jsp </ul><ul>jsf </ul><ul>runtime (osgi) services </ul><ul>http transport </ul><ul>webcontainer </ul><ul>app manager </ul><ul>web app security </ul><ul>servlet-3.0 </ul><ul>jsf-2.0 webAppSecurity-1.0 </ul>
    54. 54. <ul><li>Free & frictionless download of developer tools
    55. 55. Extends Eclipse JEE Helios (3.6) and Indigo (3.7)
    56. 56. Available from: </li></ul><ul><ul><li>New WASdev community site: http://wasdev.net
    57. 57. Within Eclipse (Help  MarketPlace)
    58. 58. Eclipse Marketplace web site http://marketplace.eclipse.org/ </li></ul></ul><ul>Get the WebSphere Dev Tools Easily </ul><ul>wasdev.net </ul>
    59. 59. <ul><li>Free & frictionless download of the WAS runtime for development & test
    60. 60. New lightweight “WAS Liberty profile” is now available through the WAS V8.5 Open Alpha program.
    61. 61. A zip download for web application development - 25 MB . Available from: </li></ul><ul><ul><li>New WASdev community site: http://wasdev.net
    62. 62. Within the WebSphere Development Eclipse </li></ul></ul><ul>Get the WAS Runtime Easily </ul>wasdev.net
    63. 63. <ul>Summary </ul><ul><li>WAS V8.5 Alpha includes a lightweight, composable “Liberty” profile of WAS. </li></ul><ul><ul><li>With high fidelity to WAS V8 production environment
    64. 64. Focusing on the needs of the developer </li><ul><li>Reduce overhead of common development tasks
    65. 65. Suitable for modest development hardware </li></ul></ul></ul><ul><li>WebSphere Developer Tools for Eclipse deliver tools for the most popular WAS programming models as Eclipse features.
    66. 66. Free with no time limit for development use </li></ul><ul><ul><li>Accelerates development time to productivity. </li></ul></ul>wasdev.net

    ×