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

Laravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するならLaravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するならShohei Okada
 
Automation testing using Ruby with Cucumber in Docker
Automation testing using Ruby with Cucumber in DockerAutomation testing using Ruby with Cucumber in Docker
Automation testing using Ruby with Cucumber in DockerViacheslav Horbovskykh
 
EC-CUBE API プラグイン勉強会
EC-CUBE API プラグイン勉強会EC-CUBE API プラグイン勉強会
EC-CUBE API プラグイン勉強会Kentaro Ohkouchi
 
OpenIDM - An Introduction
OpenIDM - An IntroductionOpenIDM - An Introduction
OpenIDM - An IntroductionForgeRock
 
bashでWebブラウザ(Selenium WebDriver)を動かした話
bashでWebブラウザ(Selenium WebDriver)を動かした話bashでWebブラウザ(Selenium WebDriver)を動かした話
bashでWebブラウザ(Selenium WebDriver)を動かした話洋史 東平
 
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개CURVC Corp
 
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティElasticsearch
 
EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019
EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019
EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019Amazon Web Services Korea
 
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門Shuji Kikuchi
 
Cephのベンチマークをしました
CephのベンチマークをしましたCephのベンチマークをしました
CephのベンチマークをしましたOSSラボ株式会社
 
20231130 LLM이 걸어온 길과 앞으로의 활약 분야 - CoT기반 Autonomous Agents를 위한 한국어 Explanation...
20231130 LLM이 걸어온 길과 앞으로의 활약 분야 - CoT기반 Autonomous Agents를 위한 한국어 Explanation...20231130 LLM이 걸어온 길과 앞으로의 활약 분야 - CoT기반 Autonomous Agents를 위한 한국어 Explanation...
20231130 LLM이 걸어온 길과 앞으로의 활약 분야 - CoT기반 Autonomous Agents를 위한 한국어 Explanation...Ki Hyun Kim
 
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)J-Stream Inc.
 
CodePipeline入門
CodePipeline入門CodePipeline入門
CodePipeline入門ryota koyama
 
ARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイドARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイドdecode2016
 
hbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassinhbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassinTakashi Takizawa
 
AWSで始めるサーバレスな RESTful API システム
AWSで始めるサーバレスな RESTful API システムAWSで始めるサーバレスな RESTful API システム
AWSで始めるサーバレスな RESTful API システムMasayuki Kato
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향Young-Ho Cho
 
Identity and access control for custom enterprise applications - SDD412 - AWS...
Identity and access control for custom enterprise applications - SDD412 - AWS...Identity and access control for custom enterprise applications - SDD412 - AWS...
Identity and access control for custom enterprise applications - SDD412 - AWS...Amazon Web Services
 
Unleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCacheUnleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCacheAmazon Web Services
 

What's hot (20)

Laravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するならLaravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するなら
 
Automation testing using Ruby with Cucumber in Docker
Automation testing using Ruby with Cucumber in DockerAutomation testing using Ruby with Cucumber in Docker
Automation testing using Ruby with Cucumber in Docker
 
EC-CUBE API プラグイン勉強会
EC-CUBE API プラグイン勉強会EC-CUBE API プラグイン勉強会
EC-CUBE API プラグイン勉強会
 
Node.js 기본
Node.js 기본Node.js 기본
Node.js 기본
 
OpenIDM - An Introduction
OpenIDM - An IntroductionOpenIDM - An Introduction
OpenIDM - An Introduction
 
bashでWebブラウザ(Selenium WebDriver)を動かした話
bashでWebブラウザ(Selenium WebDriver)を動かした話bashでWebブラウザ(Selenium WebDriver)を動かした話
bashでWebブラウザ(Selenium WebDriver)を動かした話
 
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
 
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
 
EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019
EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019
EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019
 
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
 
Cephのベンチマークをしました
CephのベンチマークをしましたCephのベンチマークをしました
Cephのベンチマークをしました
 
20231130 LLM이 걸어온 길과 앞으로의 활약 분야 - CoT기반 Autonomous Agents를 위한 한국어 Explanation...
20231130 LLM이 걸어온 길과 앞으로의 활약 분야 - CoT기반 Autonomous Agents를 위한 한국어 Explanation...20231130 LLM이 걸어온 길과 앞으로의 활약 분야 - CoT기반 Autonomous Agents를 위한 한국어 Explanation...
20231130 LLM이 걸어온 길과 앞으로의 활약 분야 - CoT기반 Autonomous Agents를 위한 한국어 Explanation...
 
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
 
CodePipeline入門
CodePipeline入門CodePipeline入門
CodePipeline入門
 
ARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイドARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイド
 
hbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassinhbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassin
 
AWSで始めるサーバレスな RESTful API システム
AWSで始めるサーバレスな RESTful API システムAWSで始めるサーバレスな RESTful API システム
AWSで始めるサーバレスな RESTful API システム
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향
 
Identity and access control for custom enterprise applications - SDD412 - AWS...
Identity and access control for custom enterprise applications - SDD412 - AWS...Identity and access control for custom enterprise applications - SDD412 - AWS...
Identity and access control for custom enterprise applications - SDD412 - AWS...
 
Unleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCacheUnleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCache
 

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

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

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