SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Running and Managing Mule Applications
Running and Managing Mule ApplicationsRunning and Managing Mule Applications
Running and Managing Mule ApplicationsMuleSoft
 
Best Practices in Cloud Security
Best Practices in Cloud SecurityBest Practices in Cloud Security
Best Practices in Cloud SecurityAlert Logic
 
DataPower API Gateway Performance Benchmarks
DataPower API Gateway Performance BenchmarksDataPower API Gateway Performance Benchmarks
DataPower API Gateway Performance BenchmarksIBM DataPower Gateway
 
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)Amazon Web Services Korea
 
Introduction to AWS Secrets Manager
Introduction to AWS Secrets ManagerIntroduction to AWS Secrets Manager
Introduction to AWS Secrets ManagerAmazon Web Services
 
Multi-Cloud Global Server Load Balancing (GSLB)
Multi-Cloud Global Server Load Balancing (GSLB)Multi-Cloud Global Server Load Balancing (GSLB)
Multi-Cloud Global Server Load Balancing (GSLB)Avi Networks
 
A Deepdive into Azure Networking
A Deepdive into Azure NetworkingA Deepdive into Azure Networking
A Deepdive into Azure NetworkingKarim Vaes
 
How to migrate an application in IBM APIc, and preserve its client credential
How to migrate an application in IBM APIc, and preserve its client credentialHow to migrate an application in IBM APIc, and preserve its client credential
How to migrate an application in IBM APIc, and preserve its client credentialShiu-Fun Poon
 
AWS Security Week: AWS Secrets Manager
AWS Security Week: AWS Secrets ManagerAWS Security Week: AWS Secrets Manager
AWS Security Week: AWS Secrets ManagerAmazon Web Services
 
Joel Schuweiler_AWS IAM Identity Center (Single Sign On).pptx
Joel Schuweiler_AWS IAM Identity Center (Single Sign On).pptxJoel Schuweiler_AWS IAM Identity Center (Single Sign On).pptx
Joel Schuweiler_AWS IAM Identity Center (Single Sign On).pptxAWS Chicago
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureFaren faren
 
Anthos - Oxford - AI - Cloud and edge implementations.pdf
Anthos - Oxford - AI - Cloud and edge implementations.pdfAnthos - Oxford - AI - Cloud and edge implementations.pdf
Anthos - Oxford - AI - Cloud and edge implementations.pdfAntonioGulli2
 
AWS Webinar 201: Designing scalable, available & resilient cloud applications
AWS Webinar 201: Designing scalable, available & resilient cloud applicationsAWS Webinar 201: Designing scalable, available & resilient cloud applications
AWS Webinar 201: Designing scalable, available & resilient cloud applicationsAmazon Web Services
 
What's new in API Connect and DataPower - 2019
What's new in API Connect and DataPower - 2019What's new in API Connect and DataPower - 2019
What's new in API Connect and DataPower - 2019IBM DataPower Gateway
 
Encryption and Key Management in AWS
Encryption and Key Management in AWSEncryption and Key Management in AWS
Encryption and Key Management in AWSAmazon Web Services
 
IBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use CasesIBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use CasesIBM DataPower Gateway
 
OpenId Connect Protocol
OpenId Connect ProtocolOpenId Connect Protocol
OpenId Connect ProtocolMichael Furman
 
Understanding AWS Secrets Manager - AWS Online Tech Talks
Understanding AWS Secrets Manager - AWS Online Tech TalksUnderstanding AWS Secrets Manager - AWS Online Tech Talks
Understanding AWS Secrets Manager - AWS Online Tech TalksAmazon Web Services
 

La actualidad más candente (20)

Running and Managing Mule Applications
Running and Managing Mule ApplicationsRunning and Managing Mule Applications
Running and Managing Mule Applications
 
Best Practices in Cloud Security
Best Practices in Cloud SecurityBest Practices in Cloud Security
Best Practices in Cloud Security
 
Introduction to DevOps on AWS
Introduction to DevOps on AWSIntroduction to DevOps on AWS
Introduction to DevOps on AWS
 
DataPower API Gateway Performance Benchmarks
DataPower API Gateway Performance BenchmarksDataPower API Gateway Performance Benchmarks
DataPower API Gateway Performance Benchmarks
 
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
 
Introduction to AWS Secrets Manager
Introduction to AWS Secrets ManagerIntroduction to AWS Secrets Manager
Introduction to AWS Secrets Manager
 
AWS Secrets Manager
AWS Secrets ManagerAWS Secrets Manager
AWS Secrets Manager
 
Multi-Cloud Global Server Load Balancing (GSLB)
Multi-Cloud Global Server Load Balancing (GSLB)Multi-Cloud Global Server Load Balancing (GSLB)
Multi-Cloud Global Server Load Balancing (GSLB)
 
A Deepdive into Azure Networking
A Deepdive into Azure NetworkingA Deepdive into Azure Networking
A Deepdive into Azure Networking
 
How to migrate an application in IBM APIc, and preserve its client credential
How to migrate an application in IBM APIc, and preserve its client credentialHow to migrate an application in IBM APIc, and preserve its client credential
How to migrate an application in IBM APIc, and preserve its client credential
 
AWS Security Week: AWS Secrets Manager
AWS Security Week: AWS Secrets ManagerAWS Security Week: AWS Secrets Manager
AWS Security Week: AWS Secrets Manager
 
Joel Schuweiler_AWS IAM Identity Center (Single Sign On).pptx
Joel Schuweiler_AWS IAM Identity Center (Single Sign On).pptxJoel Schuweiler_AWS IAM Identity Center (Single Sign On).pptx
Joel Schuweiler_AWS IAM Identity Center (Single Sign On).pptx
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Anthos - Oxford - AI - Cloud and edge implementations.pdf
Anthos - Oxford - AI - Cloud and edge implementations.pdfAnthos - Oxford - AI - Cloud and edge implementations.pdf
Anthos - Oxford - AI - Cloud and edge implementations.pdf
 
AWS Webinar 201: Designing scalable, available & resilient cloud applications
AWS Webinar 201: Designing scalable, available & resilient cloud applicationsAWS Webinar 201: Designing scalable, available & resilient cloud applications
AWS Webinar 201: Designing scalable, available & resilient cloud applications
 
What's new in API Connect and DataPower - 2019
What's new in API Connect and DataPower - 2019What's new in API Connect and DataPower - 2019
What's new in API Connect and DataPower - 2019
 
Encryption and Key Management in AWS
Encryption and Key Management in AWSEncryption and Key Management in AWS
Encryption and Key Management in AWS
 
IBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use CasesIBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use Cases
 
OpenId Connect Protocol
OpenId Connect ProtocolOpenId Connect Protocol
OpenId Connect Protocol
 
Understanding AWS Secrets Manager - AWS Online Tech Talks
Understanding AWS Secrets Manager - AWS Online Tech TalksUnderstanding AWS Secrets Manager - AWS Online Tech Talks
Understanding AWS Secrets Manager - AWS Online Tech Talks
 

Destacado

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
 

Destacado (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 a Java Application Servers Are Dead!

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 a Java Application Servers Are Dead! (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
 

Más de 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
 

Más de 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
 

Último

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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Último (20)

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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Java Application Servers Are Dead!

  • 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