Java EE | Lightning Fast Developers Are Only As Fast As Their Tools | Simon Maple & Alasdair Nottingham
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 1,198 views

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 ...

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!

Statistics

Views

Total Views
1,198
Views on SlideShare
1,198
Embed Views
0

Actions

Likes
0
Downloads
7
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 Java EE | Lightning Fast Developers Are Only As Fast As Their Tools | Simon Maple & Alasdair Nottingham Presentation Transcript

    • Lightning fast developers are only as fast as their tools Simon Maple & Alasdair Nottingham
    wasdev.net
    • Now
    • On 7 th October 2011, IBM released the WebSphere Application Server V8.5 Alpha
      • Extremely fast startup times
      • Tailored for developers
      • Lightweight
      • Simple Management
      • Modular design
      • Dynamic runtime
      • Eclipse based tools
      • WAS fidelity
      • WASdev community
    • Frequency of Development Tasks
    • Common development tasks include:
    • 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
    • Debug a problem in an application
    • Restart/redeploy application
    • Restart server
    • Share code with team
    • Change app structure (add/remove a module/bundle)
    • Make config change
    • Share config change with team
    • Reproduce problem from another environment
    • Upgrade to new service release
    • Create application
    • Install server
      fastest faster fast
      Time to complete
    • Key Developer Concerns
      Incremental Publishing
      Problem Determination
      Performance
      Simple Configuration
    • 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
      • 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
      • Moving an application between development machines
    • Key Developer Concerns
      Incremental Publishing
      Problem Determination
      Performance
      Simple Configuration
    • 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
    • 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
    • The console (SysOut/SysErr) is for humans, not logging. It should:
      • Be clear and concise, informing the user with simple messages
      • Clearly identify the location of problems in the application, helping developers to identify bugs
      • Never show stack traces, unless they come from the application. Users should never be able to tell the server is written in Java
      • Clearly differentiate between internal errors and an error in the application
    • Key Developer Concerns
      Performance
      Simple Configuration
      Incremental Publishing
      Problem Determination
    • 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
      • Be robust – same behavior as reinstalling/restarting the app
      • Have minimal loss of context – to reduce retesting
      • Be fine-grained – or it won’t perform (esp. remote)
      • 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
      • Incremental/delta publishing
      • 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
    • Must be consistent across programming models!
    • Key Developer Concerns
      Performance
      Problem Determination
      Simple Configuration
      Incremental Publishing
    • 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
    • Server must work well on older laptops, with slower hard drives, constrained memory, and shared with tools, email, and web browser
    • The most important paths are:
      • Incremental publishing
      • Startup time
      • Installing an application
    • Should scale appropriately with the size/requirements of the application
    • What's the Liberty Profile?
    • WAS V8.5 Alpha introduces:
    • A new dynamic profile of WAS which is focused FIRST on the development experience
      • Small footprint test server runtime
      • Simplified, shareable config
      • Fastest possible server start-up
    • Fidelity with full-profile WAS
      • Same containers, QoS as full-profile WAS
      • But radically refactored to focus on the development experience
      • Extreme dynamicity to start what the app requires and no more
    • Initially focused on dev/test of web, mobile and OSGi apps.
    • 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
    • Free & frictionless download of developer tools
    • Extends Eclipse JEE Helios (3.6) and Indigo (3.7)
    • Available from:
      • New WASdev community site: http://wasdev.net
      • Within Eclipse (Help  MarketPlace)
      • Eclipse Marketplace web site http://marketplace.eclipse.org/
      Get the WebSphere Dev Tools Easily
      wasdev.net
    • Free & frictionless download of the WAS runtime for development & test
    • New lightweight “WAS Liberty profile” is now available through the WAS V8.5 Open Alpha program.
    • A zip download for web application development - 25 MB . Available from:
      • New WASdev community site: http://wasdev.net
      • Within the WebSphere Development Eclipse
      Get the WAS Runtime Easily
    wasdev.net
    • Summary
    • WAS V8.5 Alpha includes a lightweight, composable “Liberty” profile of WAS.
      • With high fidelity to WAS V8 production environment
      • Focusing on the needs of the developer
        • Reduce overhead of common development tasks
        • Suitable for modest development hardware
    • WebSphere Developer Tools for Eclipse deliver tools for the most popular WAS programming models as Eclipse features.
    • Free with no time limit for development use
      • Accelerates development time to productivity.
    wasdev.net