2. 2
Agenda
o Úvod
– Jak vypadá typová aplikace
– Co je Java aplikační server
o Srovnání
– Popis kritérií
– Srovnání serverů
o Co si myslí svět
– Srovnání Zero Turnaround
– Používanost serverů
– Trendy
6. 6
Co je Java aplikační server
o Wikipedia:
– Java Platform, Enterprise Edition or Java EE (was J2EE) defines the core set of API
and features of Java Application Servers.
o Java EE 6 tutorial:
– A Java EE server is a server application that the implements the Java EE platform APIs
and provides the standard Java EE services.
o Je Tomcat aplikační server?
7. 7
Servery ve srovnání
o Apache Tomcat
o JBoss Application Server / Wildfly
o WebSphere Application Server
o Oracle WebLogic
o (GlassFish), (Geronimo), (Jetty), (Tomee)
13. 13
Vývoj
o Deployment aplikace nakopírováním
o Exploded deployment / Hot deploy
o Rychlost startu serveru
o Rychlost redeploymentu aplikace
o Podpora buildovacích nástrojů
o Podpora v IDE
15. 15
Srovnání - Nákup
Kritérium Tomcat JBoss WebSphere WebLogic
Nutnost licence Ne Ne Ano Ano
Komerční podpora Ano Ano Ano Ano
České zastoupení Ne Ano Ano Ano
Cena ? ? ? ?
16. 16
Srovnání - cena
o Srovnání JBoss EAP, WebSphere ND, WebLogic Enterprise pohledem Red Hatu
– Intel CPU, 16 jader, 2 roky
– Ceníkové ceny z ledna 2014
JBoss EAP WebSphere ND WebLogic Enterprise
$12000 annually
$24000 – two-year total
6,6% z licencí
WebSphere
8,3% z licencí
WebLogic
$304000 – first year
$60800 – second year S&S
(20% license)
$364800 – two-year total
$200000 – software license
$44000 – first year support
$44000 – second year support
(22% licence)
$288000 – two-year total
17. 17
Srovnání - cena
JBoss EAP WebSphere ND WebLogic Enterprise
Cores 16 Cores 16 Cores 16
Subscription
per core
750
IBM Value Units per
Core
100
Oracle Core
Factor
0,5
Total Value Units 1600
Total Adjusted
Oracle
Processors
8
IBM List License Cost
/ Value Unit
190
Oracle List
License Costs
25000
Total License
Costs
12000 Total License Costs 304000
Total License
Costs
200000
Podpora 1. rok 0
Podpora 1. rok –
22%
44000
Podpora 2. rok - 20% 60800
Podpora 2. rok –
22%
44000
Celkem 24000 Celkem 364800 Celkem 288000
18. 18
Srovnání - cena
o WebSphere ND vs. JBoss EAP pohledem IBM
– 30 enterprise aplikací, 18 serverů v clusteru, 6 samostatných serverů
19. 19
Srovnání - reference
o Tomcat
– Portál České pošty
o JBoss
– Hypoteční banka – Interní informační systém (zahrnuje core banking)
– Globus – B2B systém pro partnery (Doxo Logic)
– LMC – prace.cz, jobs.cz (Doxo Logic)
o WebSphere
– GE Money – IB (BSC)
– Equabank – Pobočkové řešení (BSC)
– MFČR – Vízový informační systém (IBM)
o WebLogic
– Česká spořitelna – IB
20. 20
Srovnání - Technologie
Kritérium Tomcat JBoss WebSphere WebLogic
Messaging Ne
Ano
(HornetQ)
Ano
(WebSphere MQ)
Ano
Distribuované
transakce /
dvoufázový
commit
Ne Ano Ano Ano
Monitoring
Ne
(přes JMX)
Ano
(JBoss Admin
Console)
Ano
(Tivoli
Performance
Viewer)
Ano
(WL Console +
Enterprise
Manager)
Skriptování
konfigurace
Ne
Ano
(jboss-cli)
Ano
(wsadmin)
Ano
(Scripting Tool)
JEE
Ne
(pouze servlety
a JSP)
Ano
(EAP - Java EE 6,
WildFly – Java EE 7)
Ano
(Java EE 6)
Ano
(Java EE 6)
21. 21
Srovnání - Dostupnost (HA)
Kritérium Tomcat JBoss WebSphere WebLogic
Load
balancing
Apache httpd +
mod_jk,
mod_proxy
Apache httpd /
JBoss Web +
mod_cluster
IBM HTTP Server
+ WAS plugin
GridLink for RAC
Failover Ano Ano Ano GridLink for RAC
Replikace
sessions
Ano Ano Ano Ano
28. 28
Srovnání - Vývoj
Kritérium Tomcat JBoss WebSphere WebLogic
Deployment aplikace
nakopírováním
Ano Ano Ne
Ano
(Upload
Directory)
Exploded deployment /
Hot deploy
Ano Ano Ano
Ano
(Fast Swap)
Rychlost startu serveru Good Good Bad Ok
Rychlost
redeploymentu
aplikace
Ok Ok Bad Ok
Podpora buildovacích
nástrojů
Ano Ano Ano Ano
Podpora v IDE Ano Ano Ano Ano
Kritéria rychlosti – Bad / Ok / Good
30. 30
Jaký server bych použil já?
o Zákazník má jasnou preferenci / existující licence
– Výběr podle požadavků zákazníka
o Výběr je na nás
– Pokud nepotřebujeme podporu messagingu, distribuovaných transakcí nebo EJB
• Tomcat + Apache httpd
– Pokud jsou messaging, distribuované transakce nebo EJB potřeba
• JBoss + Apache httpd
• Glassfish ne, protože Oracle už nenabízí komerční podporu (Listopad 2013)
32. 32
Porovnání serverů - ZeroTurnaround
o Květen 2013 – The Great Java Application Server Debate
o Porovnání z pohledu developera
– Download and Installation
– Tooling support
– Server Configuration
– Real performance metrics
– Features & Open Standards compliance
– Documentation & community
– Administration & Management/UI
– Cost $$$/Licensing
37. 37
Používanost serverů – ZeroTurnaround
2012
o Květen 2012 - Developer Productivity Report: Java Tools, Tech, Devs & Data
38. 38
Používanost serverů – ZeroTurnaround
2014
o Květen 2014 – Java Tools and Technologies
– 2164 respondentů
39. 39
Používanost serverů – ZeroTurnaround
2014
o Stejný aplikační server
v produkci i při vývoji?
o Více v produkci než při
vývoji?
– WebSphere
– WebLogic
41. 41
Trendy
o Neil Ford, ThougtWorks
– "Yesterday's best practices become tomorrow's anti-patterns"
o Phoenix server, immutable server
o Container-less serverové aplikace
o Cloud, PAAS
– Cloud Foundry
– Heroku
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
server.start();
server.join();
}
Editor's Notes
#5:Technologie a dostupnost mají na výběr appserveru zásadní vliv.
#7:Je Tomcat aplikační server? Pro potřeby tohoto srovnání ano.
Servlet, JSP, JSF ne
TomEE – Implementuje Java EE Web Profile.
Diagram z blogu:
http://blog.arungupta.me/2013/10/java-ee-7-implementations-in-wildfly-tech-tip-3/
#8:JBoss EAP vs. Wildfly
WebSphere vs. Liberty Profile
GlassFish ne, protože konec komerční podpory
Ostatní ne, protože dlouhé srovnání a nuda
#10:Jiný pohled na appserve budou mít finanční manažer, administrátor a vývojář.
#11:Nutnost licence
Vyžaduje produkční nasazení placenou licenci?
Komerční podpora
Dá se pro server zaplatit podpora (konzultace + řešení chyb)?
České zastoupení
Má dodavatel serveru české zastoupení?
Cena
Nákladnost licencí a podpory.
Reference
Je dobré vědět, že už to někdo úspěšně použil.
#12:Messaging
Zahrnuje distribuce serveru nakonfigurovaný messaging engine (JMS)?
Distribuované transakce / dvoufázový commit
Podporuje server distribuované transakce a dvoufázový commit?
Skriptování konfigurace
Je možné skriptovat?
Vytvoření clusterů, serverů, zdrojů (data sources, messaging)
Deployment a konfigurace aplikací
Výhoda pro administraci i pro testy. Integrační a Selenium testy mohou na začátku nechat vytvořit celou infrastrukturu.
Monitoring
Zahrnuje distribuce serveru nějakou monitorovací konzoli?
Monitoring jde dobře implementovat i s free nástroji jako Nagios (www.nagios.org).
JEE
Podporuje server kromě servletů a JSP další JEE komponenty jako EJB?
Která verze specifikace?
#13:Load balancing
Jak jde řešit? Jaký load balancer se dá použít?
Failover
Jak se řeší?
Replikace sessions
Jakým způsobem řeší replikace?
#14:Deployment aplikace nakopírováním
Dovoluje server nasadit aplikaci nakopírováním souboru?
Exploded deployment / Hot deploy
Deployment aplikace, kdy se obsah aplikace čte z adresáře místo z .waru. Propagace změn bez nutnosti deploymentu změněné verze.
Rychlost startu serveru
Rychlý start serveru je výhodou pro vývoj aplikací a spouštění testů.
Rychlost redeploymentu aplikace
Rychlý redeploy je nutný pro vývoj aplikací.
Podpora buildovacích nástrojů
Start serveru a redeploy aplikací z Mavenu, Antu.
Podpora v IDE
Pro úplnost. IDE dnes podporují prakticky vše.
#16:Podpora Tomcatu se dá zaplatit u MuleSoft – dodavatel Mule ESB.
Dříve i u Spring Source – Nevím, jestli stále platí. Na stránkách Tomcatu to je uvedené.
Tomcat komerční podpora:
http://wiki.apache.org/tomcat/SupportAndTraining
#17:JBoss EAP
- Subscription – Jak licence, tak podpora v jednom poplatku
- Licencovaný podle počtu jader
WebSphere Network Deployment
Licencovaný podle počtu jader a koeficinetu – Price per value unit
Licence pro různé procesory za různé ceny – Platba za výkon
S&S – Support and Subscription
WebLogic Enterprise
- Licencovaný podle počtu jader a koeficientu Oracle core factor
JBoss EAP calculator:
http://www.redhat.com/promo/eap_calculator/
#18:Pozor – Převzato z materiálů Red Hatu.
Neuvažuje slevy, speciální nabídky, úroveň zákazníka atd.
#19:IBM WebSphere® Application Server V8.5 vs. JBoss® Enterprise Application Platform V6 TCO Analysis
http://searchcio.rl.techtarget.in/fulfillment/1394202857_474
ftp://public.dhe.ibm.com/software/webservers/appserv/pdf/wp_WAS_JBoss_TCO_Analysis.pdf
Co asi vyplyne ze srovnávacího testu, když ho vedou experti na WebSphere?
Studie je podrobná a zajímavá, ale silně tendenční. Chybí některé detaily a je obtížné tomu důvěřovat.
#21:jboss-cli (Command Line Interface)
- https://community.jboss.org/wiki/CommandLineInterface
wsadmin
Jacl, Jython
http://en.wikipedia.org/wiki/Wsadmin
#23:Connectory
- AJP - Vhodné do clusteru s Apache httpd, kde je modul mod_jk nebo mod_proxy.
- HTTP - Vhodné pro single server bez samostatného webového serveru.
#25:To enable session replication in Tomcat, three different paths can be followed to achieve the exact same thing:
- Using session persistence, and saving the session to a shared file system (PersistenceManager + FileStore)
- Using session persistence, and saving the session to a shared database (PersistenceManager + JDBCStore)
- Using in-memory-replication, using the SimpleTcpCluster that ships with Tomcat (lib/catalina-tribes.jar + lib/catalina-ha.jar)
Session replikace
- DeltaManager - mezi všemi uzly
- BackupManager - na jeden backup uzel
Farming
- Deployment aplikace na jeden server, cluster se postará o propagaci.
- FarmWarDeployer
Valve - Server-wide interceptor. Tomcat specifická věc. Proti tomu web filter filtruje jenom requesty pro danou aplikaci.
- AccessLogValve
- ReplicationValve
http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html
#26:Standalone x Domain mode
Cluster se standalone modem podobně jako Tomcat na předchozím slajdu.
Replikace – distributed cache Infinispan (ta používá JGroups)
mod_cluster
Modul pro Apache httpd
Dynamická konfigurace
AJP
Zohledňuje vytíženost konkrétního JBoss serveru.
HTTP session replikace
- web.xml musí obsahovat element <distributable/>
Load balancing EJB přes klientskou EJB knihovnu, která si přečte strukturu clusteru.
Reference:
Doxo Logic
Globus – B2B systém
LMC – jobs.cz, práce.cz
- Hypoteční banka
http://blog.akquinet.de/2012/06/21/clustering-in-jboss-as7eap-6/
#27:WebSphere koncepty pro cluster
Cell
Cluster
Node
#28:Deployment manager
Node agent
Kontroluje servery – start, stop, aktualizace konfigurace, aktualizace aplikací
Zajímavá vlastnost – Při OutOfMemoryException restartuje server
#33:Download and Installation
Tooling support
- Podpora v IDE (Eclipse, Intellij IDEA, Netbeans) a build. nástrojích (Ant, Maven – start, stop, deploy, …)
Server Configuration
Real performance metrics
- Měřeno pro Jenkins a Spring PetClinic aplikace
Startup/restart time
Deploy time
Application initialization
Features & Open Standards compliance
Documentation & community
Administration & Management/UI
Cost $$$/Licensing
http://zeroturnaround.com/rebellabs/the-great-java-application-server-debate-with-tomcat-jboss-glassfish-jetty-and-liberty-profile/
#36:Hodnoty je třeba interpretovat s ohledem na to, že jde o průzkum mezi zákazníky New Relic. Dá se čekat, že instalace WebSphere a WebLogic serverů používají jiní monitorovací sw.
#37:Budou v tom nějaké banky (business software), eshopy (ecommerce) a interní systémy social webů.
#38:Na grafu je zajímavé, že součet nedá 100 procent.
Nenašel jsem počty / profil respondentů ankety.
http://zeroturnaround.com/rebellabs/developer-productivity-report-2012-java-tools-tech-devs-and-data/4/