Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

App Server - Do You Really Need It?

No description
by

Eberhard Wolff

on 2 January 2017

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of App Server - Do You Really Need It?

Application Server
Do you really need it?

Eberhard Wolff
Twitter: @ewolff
Freelance Consultant / Trainer
Head Technology Advisory Board, adesso AG

App Server
= Deployment &
Ops Model

Dev:
Benefits

One Stop
Infrastructure

Slow Turn
Around

Dev:
Challenges

Debugging
more complex

Portability
Ops:
Benefits

Common
Infrastructure

Deployment
What now?
PaaS
Container-less Deployment
Have you ever seen a Java EE application without additional libs?
API version tied to Applicaton Server version
Servlets, JSP, JTA, EJB, CDI, JSF, ...
Hard to even update application to a new Application Server version
Considerable effort
Only Dev -
Ops is locked in
New API version available only after considerable time
Code
Package as WAR / EAR...
Install
Unpack
Test
Why??
Solutions: JRebel, Arquillian
Special setup / tools needed
Application
App Server
Infrastructure
specific
configuration
Can you deploy your app
on a different server?
on a different version of the same server?
Do you deploy other apps on the same server?
Could you?
Is the app server / installation script in the version control?
Tuned for an application
App Server are for interactive apps
What about
Batch
Integration
Map / Reduce
Monitoring
WAR, EAR, JAR
Java proprietary
Broader use:
deb RPM MSI ...
Lots of deployment tools for cluster / company wide rollouts
JMX
(+ e.g. SNMP)
Logs
+ Logstash / Kibana / ELK
or Graylog2
or Splunk
Metrics
Graphite
etc
Nowadays:
Monitoring
by REST / JSON
Common infrastructure
...again
(Often)
less flexibility
On premise / Java:
Little adoption
One JAR
App
+all libraries
+ embedded HTTP server
+ monitoring support
+ log parsing
Standard deployment & monitoring
Infrastructure fits application
Features
& version
Easier deployment
Turn around faster
Debugging
out-of-the-box
Spring Boot
Dropwizard
Spring Boot
Demo
Java EE:
http://bit.ly/JEEContainerless
What remains
More apps per JVM
Less overhead
Better for e.g. virtualization
But: bad isolation - one app can crash the whole server
CPU
Memory
File system
No isolation for
Isolation left to the operating system
More reasons
DevOps: Dev get used to Ops tools
Need for simpler infrastructure
Continuous Delivery
Micro Services
Java proprietary tools less attractive
App Server in Use?
Investment
Change
monitoring
deployment
build
migrate App
Java EE: ?
Spring Boot
Benefits
Faster turn around
Easier
tests
debugging
deployment
One deployment & monitoring tool less
No App Server in Use?
Container-less with Java EE: ?
Otherwise:
Get rid of the App Server!
App Server and Application must be compatible
Version & configuration
Commercial Support?
Strategic technology decisions?
Application &
App Server are
really one
Full transcript