SlideShare a Scribd company logo
1 of 63
Download to read offline
Java App
Servers are
Dead!
Eberhard Wolff
Freelancer
Head Technology Advisory Board adesso
http://ewolff.com
Eberhard Wolff - @ewolff
Code
Eberhard Wolff - @ewolff
2003
App Server =
Java EE or
Servlet
Container
Eberhard Wolff - @ewolff
An Application
on a server
needs an
Application Server!
Eberhard Wolff - @ewolff
Why??
The Price We Pay
What now?
Eberhard Wolff - @ewolff
App Server...
•  …container for multiple applications
•  ... infrastructure
•  …deployment
•  …monitoring
Eberhard Wolff - @ewolff
App Server...
•  …container for multiple applications
•  ... infrastructure
•  …deployment
•  …monitoring
Eberhard Wolff - @ewolff
Multiple Applications
•  Isolation
•  ClassLoader
•  Can lead to non-trivial problems
App Server
App 1 App 2 App 3 App 4
Eberhard Wolff - @ewolff
Isolation
•  ClassLoader is not enough
•  CPU?
•  Memory?
•  Filesystems?
•  Applications are not isolated
•  Even individual parts are not isolated
•  i.e. JMS might eat away resources
from web requests
Eberhard Wolff - @ewolff
Isolation is Impossible
•  Operating systems isolate processes
from each other
•  CPU, memory …
•  Resource allocation: #1 feature for
operating systems
•  Either the JVM becomes an
operating systems
•  …or isolation won’t be perfect
Eberhard Wolff - @ewolff
Multiple Applications
•  Is that really what happens?
•  Java EE spec talks about
“components”
•  not Apps
App Server
App 1 App 2 App 3 App 4
Eberhard Wolff - @ewolff
One Application
App Server
App 1 App 2 App 3 App 4
Eberhard Wolff - @ewolff
One Application
App Server
•  Component e.g. WAR, EJB JAR …
•  Different ClassLoader isolation
needed
•  OSGi like
•  Memory/CPU isolation still missing
Component 1 Component 2App
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
App Server:
container for
one
application
Eberhard Wolff - @ewolff
App Server...
•  …container for multiple applications
•  ... infrastructure
•  …deployment
•  …monitoring
Eberhard Wolff - @ewolff
App Server...
•  …container for multiple applications
•  ... infrastructure
•  …deployment
•  …monitoring
Eberhard Wolff - @ewolff
Infrastructure
•  Two Phase Commit
•  Net / Threads
•  APIs
Eberhard Wolff - @ewolff
Infrastructure:

Two Phase Commit
•  Idea: Coordinate multiple
transactional resources
•  A talk in its own right
•  2 DBs: Consider a different
architecture
•  DB + JMS: Tx Synchronization
might help
•  http://bit.ly/JMS-2PC
Eberhard Wolff - @ewolff
Infrastructure:

Two Phase Commit
•  Slows down the good case in favor
of the bad case
•  No 100% - 2PC can fail
•  Of limited use in distributed
systems
•  E.g. REST + 2PC?
•  NoSQL + 2PC?
•  Limits scalability
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)
Eberhard Wolff - @ewolff
Infrastructure: APIs
•  EJB, CDI, JPA, JSF...
•  Version tied to App Server version
•  App depends on Application Server
•  New APIs can’t be used until new
App Server in production
•  Version conflicts might arise
Eberhard Wolff - @ewolff
Infrastructure: APIs
•  Usually not every need covered
•  …so additional libraries are used
•  App Server APIs can be replaced by
libraries
•  Makes application more portable
Eberhard Wolff - @ewolff
Infrastructure:

Application independent?
•  Each application has its own
infrastructure
•  E.g. database connections
•  + specific configuration
•  Might even add its own libraries to
the AppServer
•  Big no-no if the App Server should
be application independent
Eberhard Wolff - @ewolff
Dependencies

App Server / Application
App Server
Application
Libraries
Infrastructure
Specific
configuration
Cyclic dependency
i.e. one component
Application
Servers

are just

another part of
the Application
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?
Eberhard Wolff - @ewolff
Application Server: Just One
Kind of Infrastructure 
•  App Server focus on interactive
(web) applications
•  Other types of application:
•  Batches
•  Integration
•  Map / Reduce
•  App Servers are no universal
infrastructure
Eberhard Wolff - @ewolff
App Server...
•  …container for multiple applications
•  ... infrastructure
•  …deployment
•  …monitoring
Eberhard Wolff - @ewolff
App Server...
•  …container for multiple applications
•  ... infrastructure
•  …deployment
•  …monitoring
Eberhard Wolff - @ewolff
Deployment
•  Deployment Format: WAR, EAR, JAR...
•  No way to 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
Eberhard Wolff - @ewolff
App Server...
•  …container for multiple applications
•  ... infrastructure
•  …deployment
•  …monitoring
Eberhard Wolff - @ewolff
App Server...
•  …container for multiple applications
•  ... infrastructure
•  …deployment
•  …monitoring
Eberhard Wolff - @ewolff
Monitoring
•  Provided by JMX
•  Can be integrated in SMNP etc J
•  New tools arise
•  Logs + Logstash / Kibana or Splunk
•  REST based monitoring resources
•  Scripts for monitoring
App Server are
needed for
monitoring &
deployment
App Server
come with
their own
Ops Tool Set
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 different tools
The Price

We Pay
Eberhard Wolff - @ewolff
Slower Turn Around
•  Code
•  Package a WAR
•  Install it
•  Have it unpacked
•  Test
•  Solutions: JRebel, Spring Loaded
•  But: Why is it done at all??
Why??
Eberhard Wolff - @ewolff
App Server: Complex
Deployment
•  Deployment: not just an application
•  But also an Application Server
•  App Server configuration more
complex than Application
configuration
•  Look at automation scripts with
Puppet / Chef etc
Eberhard Wolff - @ewolff
Cyclic Dependency
Application – App Server
•  Application and App Server must fit
each other
•  Configuration must be compatible
•  For each developer and each testing
stage
•  Old configuration e.g. for bug fixes
•  Hard to get right
Eberhard Wolff - @ewolff
Deployment Is Important
•  Continuous Delivery means a lot
more deployment
•  Must optimize deployment
Commit
Acceptance
Tests
Capacity
Tests
Explorative
Tests
Production
Many times per day
Eberhard Wolff - @ewolff
Continuous Delivery
•  Applications deployed more
frequently
•  …in many different stages
•  Simple deployment even more
important
•  App Servers become bigger headache
Continuous
Delivery increases
demand for
simple
infrastructure.
Eberhard Wolff - @ewolff
Different Ops Mindset
•  App Server administrator?
•  Deployment, monitoring etc. have
been solved already!
•  Package manager
•  Ops Monitoring
•  Why not stick to general solutions?
Eberhard Wolff - @ewolff
DevOps
•  DevOps and Continuous Delivery:
focus on “normal” tools and
approaches
•  Dev will see more than only Java
Apps and App Servers
•  Need different tools
Eberhard Wolff - @ewolff
Micro Services
•  Build software composed of services
•  Service has business meaning
•  i.e. Order, Catalog etc
•  Services (re)deployed
independently
•  …instead of deployment monolith
•  …and communicate e.g. via REST
Eberhard Wolff - @ewolff
Micro Services: eCommerce
Catalog
Order Processing
Customer
Recommendation
Install and
configure App
Server for each
Microservice??
Eberhard Wolff - @ewolff
Micro Services
•  Service might have different non-functional
requirements
•  So different infrastructure might be needed
•  E.g. asynchronous applications
•  Traditional Servlets
•  Batches
•  Map / reduce
•  ….
•  App Server just provide one kind of
infrastructure
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
Eberhard Wolff - @ewolff
RIP Application Server!
What now??
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
•  …
Eberhard Wolff - @ewolff
Monitoring & Deployment
•  Rely on standard Ops deployment
and monitoring tools
•  REST based monitoring URLs
•  Evaluate log files
Eberhard Wolff - @ewolff
Application: Benefit
•  Easier to Deploy: Just a JAR
•  + command line
•  + config file
•  Debug & run in IDE
•  Acceptance tests etc much easier
•  Ensured: Infrastructure compatible
with application
Spring Boot

Actuator &
CRaSH Demo
Eberhard Wolff - @ewolff
Deploy Demo
•  mvn package
•  Show java –jar with JAR
Eberhard Wolff - @ewolff
Actuator Demo
•  Open
http://localhost:8080/
monitor.html
•  Show metrics / trace
•  Show info and
application.properties
Eberhard Wolff - @ewolff
Demo CRaSH
•  ssh -p 2000 user@localhost
•  Password in log output
•  help
•  Mention jpa / jdbc / problems
•  thread top CTRL-C
•  metrics
•  dashboard
Eberhard Wolff - @ewolff
Technologies
•  Spring Boot
•  see my talk on Wednesday
•  Dropwizard by Yammer
•  Vert.x
•  see Tim Fox’s talk this evening
•  Play Framework
Eberhard Wolff - @ewolff
Thank You!!
eberhard.wolff@gmail.com
@ewolff

More Related Content

What's hot

サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情Shinya Mochida
 
Oracle on kubernetes 101 - Dec/2021
Oracle on kubernetes 101 - Dec/2021Oracle on kubernetes 101 - Dec/2021
Oracle on kubernetes 101 - Dec/2021Nelson Calero
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryEric D. Schabell
 
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)NTT DATA Technology & Innovation
 
Beyond the spotify model - Team Topologies - Agile Scotland 2019-03-11 - Matt...
Beyond the spotify model - Team Topologies - Agile Scotland 2019-03-11 - Matt...Beyond the spotify model - Team Topologies - Agile Scotland 2019-03-11 - Matt...
Beyond the spotify model - Team Topologies - Agile Scotland 2019-03-11 - Matt...Matthew Skelton
 
Resilience testing with Wiremock and Spock
Resilience testing with Wiremock and SpockResilience testing with Wiremock and Spock
Resilience testing with Wiremock and SpockDavid Schmitz
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019Paulo Clavijo
 
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向Tatsuo Kudo
 
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜MicroAd, Inc.(Engineer)
 
マルチクラウド時代に求められる ID & シングル・サインオン(SSO)基盤とは?
マルチクラウド時代に求められる ID & シングル・サインオン(SSO)基盤とは?マルチクラウド時代に求められる ID & シングル・サインオン(SSO)基盤とは?
マルチクラウド時代に求められる ID & シングル・サインオン(SSO)基盤とは?IIJ
 
俺のTerraform CI/CD ライフサイクル
俺のTerraform CI/CD ライフサイクル俺のTerraform CI/CD ライフサイクル
俺のTerraform CI/CD ライフサイクルHonMarkHunt
 
【de:code 2020】 カスタムコネクタ入門 : Power Platform と既存システムをつなげるカスタムコネクタ
【de:code 2020】 カスタムコネクタ入門 : Power Platform と既存システムをつなげるカスタムコネクタ【de:code 2020】 カスタムコネクタ入門 : Power Platform と既存システムをつなげるカスタムコネクタ
【de:code 2020】 カスタムコネクタ入門 : Power Platform と既存システムをつなげるカスタムコネクタ日本マイクロソフト株式会社
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールdcubeio
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方Shigenori Sagawa
 
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)Kazuki Yoshida
 
Observability, Distributed Tracing, and Open Source: The Missing Primer
Observability, Distributed Tracing, and Open Source: The Missing PrimerObservability, Distributed Tracing, and Open Source: The Missing Primer
Observability, Distributed Tracing, and Open Source: The Missing PrimerVMware Tanzu
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)fisuda
 

What's hot (20)

サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情
 
Oracle on kubernetes 101 - Dec/2021
Oracle on kubernetes 101 - Dec/2021Oracle on kubernetes 101 - Dec/2021
Oracle on kubernetes 101 - Dec/2021
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
 
Beyond the spotify model - Team Topologies - Agile Scotland 2019-03-11 - Matt...
Beyond the spotify model - Team Topologies - Agile Scotland 2019-03-11 - Matt...Beyond the spotify model - Team Topologies - Agile Scotland 2019-03-11 - Matt...
Beyond the spotify model - Team Topologies - Agile Scotland 2019-03-11 - Matt...
 
Resilience testing with Wiremock and Spock
Resilience testing with Wiremock and SpockResilience testing with Wiremock and Spock
Resilience testing with Wiremock and Spock
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
 
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向
 
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
 
マルチクラウド時代に求められる ID & シングル・サインオン(SSO)基盤とは?
マルチクラウド時代に求められる ID & シングル・サインオン(SSO)基盤とは?マルチクラウド時代に求められる ID & シングル・サインオン(SSO)基盤とは?
マルチクラウド時代に求められる ID & シングル・サインオン(SSO)基盤とは?
 
俺のTerraform CI/CD ライフサイクル
俺のTerraform CI/CD ライフサイクル俺のTerraform CI/CD ライフサイクル
俺のTerraform CI/CD ライフサイクル
 
【de:code 2020】 カスタムコネクタ入門 : Power Platform と既存システムをつなげるカスタムコネクタ
【de:code 2020】 カスタムコネクタ入門 : Power Platform と既存システムをつなげるカスタムコネクタ【de:code 2020】 カスタムコネクタ入門 : Power Platform と既存システムをつなげるカスタムコネクタ
【de:code 2020】 カスタムコネクタ入門 : Power Platform と既存システムをつなげるカスタムコネクタ
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
KubeVirt 201 How to Using the GPU
KubeVirt 201 How to Using the GPUKubeVirt 201 How to Using the GPU
KubeVirt 201 How to Using the GPU
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
 
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
 
Observability, Distributed Tracing, and Open Source: The Missing Primer
Observability, Distributed Tracing, and Open Source: The Missing PrimerObservability, Distributed Tracing, and Open Source: The Missing Primer
Observability, Distributed Tracing, and Open Source: The Missing Primer
 
Management 3.0
Management 3.0Management 3.0
Management 3.0
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
 

Viewers also liked

Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsugSpring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsugToshiaki Maki
 
IBM WebSphere application server
IBM WebSphere application serverIBM WebSphere application server
IBM WebSphere application serverIBM Sverige
 
Great Java Application Server Debate
Great Java Application Server DebateGreat Java Application Server Debate
Great Java Application Server DebateHamed Hatami
 
WebSphere App Server vs JBoss vs WebLogic vs Tomcat
WebSphere App Server vs JBoss vs WebLogic vs TomcatWebSphere App Server vs JBoss vs WebLogic vs Tomcat
WebSphere App Server vs JBoss vs WebLogic vs TomcatWASdev Community
 
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)Roman Kharkovski
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBrendan Gregg
 
WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)Roman Kharkovski
 

Viewers also liked (7)

Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsugSpring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
 
IBM WebSphere application server
IBM WebSphere application serverIBM WebSphere application server
IBM WebSphere application server
 
Great Java Application Server Debate
Great Java Application Server DebateGreat Java Application Server Debate
Great Java Application Server Debate
 
WebSphere App Server vs JBoss vs WebLogic vs Tomcat
WebSphere App Server vs JBoss vs WebLogic vs TomcatWebSphere App Server vs JBoss vs WebLogic vs Tomcat
WebSphere App Server vs JBoss vs WebLogic vs Tomcat
 
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame Graphs
 
WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)
 

Similar to Java App Servers are Dead! Why Microservices and Spring Boot are the Future

Java Application Servers Are Dead! - Short Version
Java Application Servers Are Dead! - Short VersionJava Application Servers Are Dead! - Short Version
Java Application Servers Are Dead! - Short VersionEberhard Wolff
 
Micro Service – The New Architecture Paradigm
Micro Service – The New Architecture ParadigmMicro Service – The New Architecture Paradigm
Micro Service – The New Architecture ParadigmEberhard Wolff
 
Micro Services - Small is Beautiful
Micro Services - Small is BeautifulMicro Services - Small is Beautiful
Micro Services - Small is BeautifulEberhard Wolff
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudEberhard Wolff
 
Micro Services - Smaller is Better?
Micro Services - Smaller is Better?Micro Services - Smaller is Better?
Micro Services - Smaller is Better?Eberhard Wolff
 
Software Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous DeliverySoftware Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous DeliveryEberhard Wolff
 
Continuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A SymbiosisContinuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A SymbiosisEberhard Wolff
 
Java Architectures - a New Hope
Java Architectures - a New HopeJava Architectures - a New Hope
Java Architectures - a New HopeEberhard Wolff
 
Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?Eberhard Wolff
 
Micro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor ServiceMicro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor ServiceEberhard Wolff
 
Spring Boot
Spring BootSpring Boot
Spring Bootgedoplan
 
Continuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the EnterpriseContinuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the EnterpriseEberhard Wolff
 
High Availability and Scalability: Too Expensive! Architectures for Future E...
High Availability and Scalability: Too Expensive! Architectures for Future E...High Availability and Scalability: Too Expensive! Architectures for Future E...
High Availability and Scalability: Too Expensive! Architectures for Future E...Eberhard Wolff
 
AppSec DC 2019 ASVS 4.0 Final.pptx
AppSec DC 2019 ASVS 4.0 Final.pptxAppSec DC 2019 ASVS 4.0 Final.pptx
AppSec DC 2019 ASVS 4.0 Final.pptxJosh Grossman
 
AppSec DC 2019 ASVS 4.0 Final.pptx
AppSec DC 2019 ASVS 4.0 Final.pptxAppSec DC 2019 ASVS 4.0 Final.pptx
AppSec DC 2019 ASVS 4.0 Final.pptxTuynNguyn819213
 
NoSQL Riak MongoDB Elasticsearch - All The Same?
NoSQL Riak MongoDB Elasticsearch - All The Same?NoSQL Riak MongoDB Elasticsearch - All The Same?
NoSQL Riak MongoDB Elasticsearch - All The Same?Eberhard Wolff
 
Apex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEXApex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEXSergei Martens
 

Similar to Java App Servers are Dead! Why Microservices and Spring Boot are the Future (20)

Java Application Servers Are Dead! - Short Version
Java Application Servers Are Dead! - Short VersionJava Application Servers Are Dead! - Short Version
Java Application Servers Are Dead! - Short Version
 
Micro Service – The New Architecture Paradigm
Micro Service – The New Architecture ParadigmMicro Service – The New Architecture Paradigm
Micro Service – The New Architecture Paradigm
 
Micro Services - Small is Beautiful
Micro Services - Small is BeautifulMicro Services - Small is Beautiful
Micro Services - Small is Beautiful
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 
Micro Services - Smaller is Better?
Micro Services - Smaller is Better?Micro Services - Smaller is Better?
Micro Services - Smaller is Better?
 
Software Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous DeliverySoftware Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous Delivery
 
Continuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A SymbiosisContinuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A Symbiosis
 
Java Architectures - a New Hope
Java Architectures - a New HopeJava Architectures - a New Hope
Java Architectures - a New Hope
 
Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?
 
Micro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor ServiceMicro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor Service
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Legacy Sins
Legacy SinsLegacy Sins
Legacy Sins
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Continuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the EnterpriseContinuous Delivery & DevOps in the Enterprise
Continuous Delivery & DevOps in the Enterprise
 
High Availability and Scalability: Too Expensive! Architectures for Future E...
High Availability and Scalability: Too Expensive! Architectures for Future E...High Availability and Scalability: Too Expensive! Architectures for Future E...
High Availability and Scalability: Too Expensive! Architectures for Future E...
 
AppSec DC 2019 ASVS 4.0 Final.pptx
AppSec DC 2019 ASVS 4.0 Final.pptxAppSec DC 2019 ASVS 4.0 Final.pptx
AppSec DC 2019 ASVS 4.0 Final.pptx
 
AppSec DC 2019 ASVS 4.0 Final.pptx
AppSec DC 2019 ASVS 4.0 Final.pptxAppSec DC 2019 ASVS 4.0 Final.pptx
AppSec DC 2019 ASVS 4.0 Final.pptx
 
Vagrant to-aws-flow
Vagrant to-aws-flowVagrant to-aws-flow
Vagrant to-aws-flow
 
NoSQL Riak MongoDB Elasticsearch - All The Same?
NoSQL Riak MongoDB Elasticsearch - All The Same?NoSQL Riak MongoDB Elasticsearch - All The Same?
NoSQL Riak MongoDB Elasticsearch - All The Same?
 
Apex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEXApex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEX
 

More from Eberhard Wolff

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and AlternativesEberhard Wolff
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryEberhard Wolff
 
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncEberhard Wolff
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with JavaEberhard Wolff
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!Eberhard Wolff
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for MicroservicesEberhard Wolff
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into MicroservicesEberhard Wolff
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileEberhard Wolff
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?Eberhard Wolff
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesEberhard Wolff
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityEberhard Wolff
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesEberhard Wolff
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology StackEberhard Wolff
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for InnovationEberhard Wolff
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryEberhard Wolff
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with JavaEberhard Wolff
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support AgileEberhard Wolff
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale AgileEberhard Wolff
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsEberhard Wolff
 

More from Eberhard Wolff (20)

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
 
Beyond Microservices
Beyond MicroservicesBeyond Microservices
Beyond Microservices
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous Delivery
 
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, Async
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with Java
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into Microservices
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale Agile
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for Microservices
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=Maintainability
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for Innovation
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support Agile
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
 

Recently uploaded

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Recently uploaded (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Java App Servers are Dead! Why Microservices and Spring Boot are the Future

  • 1. Java App Servers are Dead! Eberhard Wolff Freelancer Head Technology Advisory Board adesso http://ewolff.com
  • 2. Eberhard Wolff - @ewolff Code
  • 3. Eberhard Wolff - @ewolff 2003
  • 4. App Server = Java EE or Servlet Container
  • 5. Eberhard Wolff - @ewolff An Application on a server needs an Application Server!
  • 6. Eberhard Wolff - @ewolff Why?? The Price We Pay What now?
  • 7. Eberhard Wolff - @ewolff App Server... •  …container for multiple applications •  ... infrastructure •  …deployment •  …monitoring
  • 8. Eberhard Wolff - @ewolff App Server... •  …container for multiple applications •  ... infrastructure •  …deployment •  …monitoring
  • 9. Eberhard Wolff - @ewolff Multiple Applications •  Isolation •  ClassLoader •  Can lead to non-trivial problems App Server App 1 App 2 App 3 App 4
  • 10. Eberhard Wolff - @ewolff Isolation •  ClassLoader is not enough •  CPU? •  Memory? •  Filesystems? •  Applications are not isolated •  Even individual parts are not isolated •  i.e. JMS might eat away resources from web requests
  • 11. Eberhard Wolff - @ewolff Isolation is Impossible •  Operating systems isolate processes from each other •  CPU, memory … •  Resource allocation: #1 feature for operating systems •  Either the JVM becomes an operating systems •  …or isolation won’t be perfect
  • 12. Eberhard Wolff - @ewolff Multiple Applications •  Is that really what happens? •  Java EE spec talks about “components” •  not Apps App Server App 1 App 2 App 3 App 4
  • 13. Eberhard Wolff - @ewolff One Application App Server App 1 App 2 App 3 App 4
  • 14. Eberhard Wolff - @ewolff One Application App Server •  Component e.g. WAR, EJB JAR … •  Different ClassLoader isolation needed •  OSGi like •  Memory/CPU isolation still missing Component 1 Component 2App
  • 15. 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
  • 17. Eberhard Wolff - @ewolff App Server... •  …container for multiple applications •  ... infrastructure •  …deployment •  …monitoring
  • 18. Eberhard Wolff - @ewolff App Server... •  …container for multiple applications •  ... infrastructure •  …deployment •  …monitoring
  • 19. Eberhard Wolff - @ewolff Infrastructure •  Two Phase Commit •  Net / Threads •  APIs
  • 20. Eberhard Wolff - @ewolff Infrastructure:
 Two Phase Commit •  Idea: Coordinate multiple transactional resources •  A talk in its own right •  2 DBs: Consider a different architecture •  DB + JMS: Tx Synchronization might help •  http://bit.ly/JMS-2PC
  • 21. Eberhard Wolff - @ewolff Infrastructure:
 Two Phase Commit •  Slows down the good case in favor of the bad case •  No 100% - 2PC can fail •  Of limited use in distributed systems •  E.g. REST + 2PC? •  NoSQL + 2PC? •  Limits scalability
  • 22. 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)
  • 23. Eberhard Wolff - @ewolff Infrastructure: APIs •  EJB, CDI, JPA, JSF... •  Version tied to App Server version •  App depends on Application Server •  New APIs can’t be used until new App Server in production •  Version conflicts might arise
  • 24. Eberhard Wolff - @ewolff Infrastructure: APIs •  Usually not every need covered •  …so additional libraries are used •  App Server APIs can be replaced by libraries •  Makes application more portable
  • 25. Eberhard Wolff - @ewolff Infrastructure:
 Application independent? •  Each application has its own infrastructure •  E.g. database connections •  + specific configuration •  Might even add its own libraries to the AppServer •  Big no-no if the App Server should be application independent
  • 26. Eberhard Wolff - @ewolff Dependencies
 App Server / Application App Server Application Libraries Infrastructure Specific configuration Cyclic dependency i.e. one component
  • 28. 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?
  • 29. Eberhard Wolff - @ewolff Application Server: Just One Kind of Infrastructure •  App Server focus on interactive (web) applications •  Other types of application: •  Batches •  Integration •  Map / Reduce •  App Servers are no universal infrastructure
  • 30. Eberhard Wolff - @ewolff App Server... •  …container for multiple applications •  ... infrastructure •  …deployment •  …monitoring
  • 31. Eberhard Wolff - @ewolff App Server... •  …container for multiple applications •  ... infrastructure •  …deployment •  …monitoring
  • 32. Eberhard Wolff - @ewolff Deployment •  Deployment Format: WAR, EAR, JAR... •  No way to 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
  • 33. Eberhard Wolff - @ewolff App Server... •  …container for multiple applications •  ... infrastructure •  …deployment •  …monitoring
  • 34. Eberhard Wolff - @ewolff App Server... •  …container for multiple applications •  ... infrastructure •  …deployment •  …monitoring
  • 35. Eberhard Wolff - @ewolff Monitoring •  Provided by JMX •  Can be integrated in SMNP etc J •  New tools arise •  Logs + Logstash / Kibana or Splunk •  REST based monitoring resources •  Scripts for monitoring
  • 36. App Server are needed for monitoring & deployment
  • 37. App Server come with their own Ops Tool Set
  • 38. 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 different tools
  • 40. Eberhard Wolff - @ewolff Slower Turn Around •  Code •  Package a WAR •  Install it •  Have it unpacked •  Test •  Solutions: JRebel, Spring Loaded •  But: Why is it done at all?? Why??
  • 41. Eberhard Wolff - @ewolff App Server: Complex Deployment •  Deployment: not just an application •  But also an Application Server •  App Server configuration more complex than Application configuration •  Look at automation scripts with Puppet / Chef etc
  • 42. Eberhard Wolff - @ewolff Cyclic Dependency Application – App Server •  Application and App Server must fit each other •  Configuration must be compatible •  For each developer and each testing stage •  Old configuration e.g. for bug fixes •  Hard to get right
  • 43. Eberhard Wolff - @ewolff Deployment Is Important •  Continuous Delivery means a lot more deployment •  Must optimize deployment Commit Acceptance Tests Capacity Tests Explorative Tests Production Many times per day
  • 44. Eberhard Wolff - @ewolff Continuous Delivery •  Applications deployed more frequently •  …in many different stages •  Simple deployment even more important •  App Servers become bigger headache
  • 46. Eberhard Wolff - @ewolff Different Ops Mindset •  App Server administrator? •  Deployment, monitoring etc. have been solved already! •  Package manager •  Ops Monitoring •  Why not stick to general solutions?
  • 47. Eberhard Wolff - @ewolff DevOps •  DevOps and Continuous Delivery: focus on “normal” tools and approaches •  Dev will see more than only Java Apps and App Servers •  Need different tools
  • 48. Eberhard Wolff - @ewolff Micro Services •  Build software composed of services •  Service has business meaning •  i.e. Order, Catalog etc •  Services (re)deployed independently •  …instead of deployment monolith •  …and communicate e.g. via REST
  • 49. Eberhard Wolff - @ewolff Micro Services: eCommerce Catalog Order Processing Customer Recommendation
  • 50. Install and configure App Server for each Microservice??
  • 51. Eberhard Wolff - @ewolff Micro Services •  Service might have different non-functional requirements •  So different infrastructure might be needed •  E.g. asynchronous applications •  Traditional Servlets •  Batches •  Map / reduce •  …. •  App Server just provide one kind of infrastructure
  • 52. 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
  • 53. Eberhard Wolff - @ewolff RIP Application Server!
  • 55. 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 •  …
  • 56. Eberhard Wolff - @ewolff Monitoring & Deployment •  Rely on standard Ops deployment and monitoring tools •  REST based monitoring URLs •  Evaluate log files
  • 57. Eberhard Wolff - @ewolff Application: Benefit •  Easier to Deploy: Just a JAR •  + command line •  + config file •  Debug & run in IDE •  Acceptance tests etc much easier •  Ensured: Infrastructure compatible with application
  • 59. Eberhard Wolff - @ewolff Deploy Demo •  mvn package •  Show java –jar with JAR
  • 60. Eberhard Wolff - @ewolff Actuator Demo •  Open http://localhost:8080/ monitor.html •  Show metrics / trace •  Show info and application.properties
  • 61. Eberhard Wolff - @ewolff Demo CRaSH •  ssh -p 2000 user@localhost •  Password in log output •  help •  Mention jpa / jdbc / problems •  thread top CTRL-C •  metrics •  dashboard
  • 62. Eberhard Wolff - @ewolff Technologies •  Spring Boot •  see my talk on Wednesday •  Dropwizard by Yammer •  Vert.x •  see Tim Fox’s talk this evening •  Play Framework
  • 63. Eberhard Wolff - @ewolff Thank You!! eberhard.wolff@gmail.com @ewolff