java application servers are dead! - short version

23
Java App Servers are Dead! Eberhard Wolff Freelancer Head Technology Advisory Board adesso http://ewolff.com

Upload: eberhard-wolff

Post on 06-Jul-2015

779 views

Category:

Documents


0 download

DESCRIPTION

Java Application Server have long dominated the middleware market. This presentations show the weaknesses of them and some alternatives. Short version of http://de.slideshare.net/ewolff/java-application-servers-are-dead

TRANSCRIPT

Page 1: Java Application Servers Are Dead! - Short Version

Java App Servers are

Dead!Eberhard Wolff

Freelancer Head Technology Advisory Board adesso

http://ewolff.com

Page 2: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

App Server... •  …container for multiple applications

•  ... infrastructure

•  …deployment

•  …monitoring

Page 3: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

Multiple Applications

•  Isolation •  ClassLoader •  Can lead to non-trivial problems

App Server App 1 App 2 App 3 App 4

Page 4: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

Isolation •  ClassLoader is not enough •  CPU? •  Memory? •  Filesystems? •  Applications are not truly isolated •  This isolation is what Operating

Systems do

Page 5: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

What It Is More Like…

App Server App 1

App Server App 1

App Server App 1

App Server App 1

App Server App 1

App Server App 1

Cluster

Page 6: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

Infrastructure: Net / Threads •  Support i.e. for HTTP and thread

pooling

•  Connection pooling

•  Can be done inside the application •  Embedded servers (Tomcat, Jetty)

Page 7: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

Infrastructure: Libraries •  EJB, CDI, JPA, JSF... •  Version tied to App Server version •  App depends on Application Server •  New libraries can’t be used until new

App Server in production •  Number of commercially supported

Java EE 7 servers? •  Zero

Page 8: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

Infrastructure: Libraries •  Usually not every need covered •  …so additional libraries are used •  App Server libraries can be replaced by

libraries •  Makes application more portable •  If you need additional libraries

anyway… •  …why not just package all of them?

Page 9: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

Infrastructure: Application independent?

•  Each application has its own infrastructure

•  E.g. database connections •  + specific configuration

Page 10: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

Dependencies App Server / Application

App Server

Application

Libraries Infrastructure

Specific configuration

Cyclic dependency i.e. one component

1 App Server per Application

Page 11: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

You Don‘t Agree? •  Can you deploy your application on a different server? •  On a different version of the same server? •  Without modifications to the server? •  Do you deploy other applications on the App Server? •  Could you? •  Is the application server or an installation script in your version control?

Page 12: Java Application Servers Are Dead! - Short Version

Application Serversare just

another part of the Application

Page 13: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

Deployment •  Deployment Format: WAR, EAR, JAR... •  Can’t define dependencies outside

application •  i.e. App Server version, database etc •  Operations usually work with deb, RPM… •  Completely different tool chain •  Also: Usually Unix services to start

applications

Page 14: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

Monitoring •  Provided by JMX

•  Can be integrated in SMNP etc •  J

•  Works outside App Servers, too

Page 15: Java Application Servers Are Dead! - Short Version

App Server are needed for

monitoring & deployment

Page 16: Java Application Servers Are Dead! - Short Version

App Server come with a proprietary

Ops Tool Set

Page 17: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

App Server... •  …container for multiple applications

•  ... provide infrastructure

•  …support deployment

•  …support monitoring

1 App per server ..or per cluster

App Server part of the application

Deployment & monitoring OK but not standard tools

Page 18: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

The Price We Pay

App Server

Slow Turn Around

Standard OPs Tools

Continuous Delivery

Micro Services

App Server specific OPs tools

Deployment complex

One infrastructure doesn’t fit all

One App Server per Micro Service? Smaller

deployment units

Page 19: Java Application Servers Are Dead! - Short Version

What now??

Page 20: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

The Re-Rise of the Applications •  Create a JAR files •  …that contains a main class •  Custom infrastructure •  E.g. HTTP server •  Or Batch •  …

Page 21: Java Application Servers Are Dead! - Short Version

Spring BootActuator &

CRaSH Demo

Page 22: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

Technologies •  Spring Boot

•  Dropwizard by Yammer

•  Vert.x

•  Play Framework

Page 23: Java Application Servers Are Dead! - Short Version

Eberhard Wolff - @ewolff

Thank You!!

[email protected] @ewolff