wildfly em alta disponibilidade
DESCRIPTION
Palestra na trilha de JEE do TDC POA 2014TRANSCRIPT
Wildfly
Em alta disponibilidade!
Oi!
Hanneli (a.k.a. @hannelita)!
Desenvolvedora @Codeminer42!
Café, Lego, Pokémon e bichos <3
HIRING
Yet another application server?
O que *NÃO* vamos ver aqui
Evangelização de empresas e tecnologias!
Tecnologia A é melhor que B!
Wildfly é perfeito!
Tutorial chato e cansativo de instalação e JEE
O que *vamos* ver aqui
Um pouco sobre servidores Java ao longo dos últimos 5 anos!
Como o JBoss 7 mudou algumas coisas e gerou revolta em outras!
Wildfly - suavizando os pontos de desgosto!
Wildfly e JEE 7: features interessantes!
Wildfly - quando não usar?!
GIFs e imagens legais <3
Vamos fazer o projeto com Java!
Lá pra 2006
IDE
Server
Código
Lá pra 2006
Quase todos os servidores Java EE:
Lá pra 2006
Consumiam muita RAM (subiam muitos recursos de uma vez)!
Tinham mecanismos pouco eficazes de hot deploy!
Setup complicado (3489234783274 XMLs espalhados por aí)
Lá pra 2006
Em 2011
Subisse rápido!
Sem 3894398237 XMLs!
Maneira fácil de fazer hot deploy!
De preferência mais leve/ consumisse menos RAM
A comunidade queria um servidor que:
Em 2011
Em 2011
JBoss AS 7O servidor vai startar.
SOBE TUDO AÍ!
JPA JMS Log EJB JCA
JSF Jax-ws Jax-rs
JBoss AS 7Sobe só o que precisa…
JPA JMS Log EJB JCA
JSF Jax-ws Jax-rs funções mínimas
JBoss AS 7Sobe só o que precisa…
JPA JMS Log EJB JCA
JSF Jax-ws Jax-rs
Modular Service Container!
funções mínimas
MSC
JBoss AS 7 e o MSC
JBoss AS 7 e o MSC
Start rápido!
Menor consumo de RAM!
Melhor gerenciamento de memória
JBoss AS 5
XML para JMS!
XML para datasource!
XML para cluster!
XML para cache de segundo nível!
XML para EJBs
JBoss AS 5
JBoss AS 7
1 ou 2 arquivos de configuração principais!
standalone.xml ou standalone-*.xml!
domain.xml + host.xml
JBoss AS 7
JBoss AS 7
Hot deploy!
Server
Mas…
Mas…Sobe só o que precisa…
JPA JMS Log EJB JCA
JSF Jax-ws Jax-rs
funções mínimas
MSC
porta httpporta httpporta http
porta http
Overhead de portas HTTP!
Tomcat
JPA JMS Log EJB JCA
JSF Jax-ws Jax-rs
funções mínimas
MSC
porta httpporta httpporta http
porta httpTomcat
porta http
Tomcat - na real
JPA JMS Log EJB JCA
JSF Jax-ws Jax-rs
funções mínimas
MSC
porta httpporta httpporta http
porta http Tomcatporta http
Tomcat - na real
JPA JMS Log EJB JCA
JSF Jax-ws Jax-rs
funções mínimas
MSC
porta httpporta httpporta http
porta http Tomcatporta http
JBoss AS 7
JPA JMS Log EJB JCA
JSF Jax-ws Jax-rs
funções mínimas
MSC
porta httpporta httpporta http
porta http
Java EE 7
É necessária uma nova versão do JBoss AS
JBoss AS 8
Wildfly
Wildfly
Java EE 7
Wildfly
Wildfly
Tenta suavizar alguns problemas do JBoss AS 7
WildflySuavização #1 - portas HTTP
Somente o overhead das portas HTTP e HTTPs ao iniciar
Wildfly
Wildfly
Suavização #2 - Web Container
Wildfly
Wildfly
Novo Web Container!
Undertow!
Undertow
Blocking / Non-Blocking NIO
Muito mais leve
Servlet 3.1
HTTP upgrade
suporta mod_cluster
Handlers 'lokões'!
Undertow Handlers
handler ==
handler =='Trazer a ideia do MSC' para
o Web Container
Wildfly + Undertow <3
Wildfly - quando não usar?
Quando precisar de licença corporativa e suporte - não há ainda um 'EAP 7’ e se houver nos primeiros meses costuma ser instável!
Quando a empresa tiver comprometimento com outras corporações de Java (Oracle, IBM)!
Quando usar Java EE em versões antigas
Wildfly - Minha opinião
DISCLAIMER
MINHA VISÃO
Você não precisa concordar, discordar ou achar que estou xingando/elogiando
Wildfly - Minha opinião
Muito rápido!
Muito produtivo!
Undertow é f*** <3!
Modo Domain continua f***!
Número considerável de bugs abertos :(!
1 XML to rule them all?
Referênciashttp://www.slideshare.net/dandreadis/2013-11devoxxwild-flybof?qid=1ab6cb19-8903-4405-aee6-7d5e1e1c7f3f&v=default&b=&from_search=4!
http://www.slideshare.net/Codemotion/marchioni-wildfly2014?qid=1ab6cb19-8903-4405-aee6-7d5e1e1c7f3f&v=default&b=&from_search=6!
http://www.slideshare.net/vineetreynolds/whats-new-in-wildfly-8!
http://www.javacodegeeks.com/2014/01/entering-undertow-web-server.html
Apêndice - modo standaloneWildfly
app1
app2
app3
app4
app5
app6
Separar as aplicações!
Wildfly Wildfly
app1 app2
Wildfly Wildfly
Wildfly Wildfly
app3 app4
app5 app6
Wildfly
app1 app2
app3 app4
app5 app6
Separar uma aplicação em !cada instância
Replicar o servidor com todas as aplicações !(cluster)
Wildfly
app1 app2
app3 app4
app5 app6
Wildfly
app1 app2
app3 app4
app5 app6
Controle Central
Wildfly
Seria muito difícil controlar as instâncias separadamente
Wildfly
Wildfly
Wildfly
Controle Central
Wildfly
Seria muito difícil controlar as instâncias separadamente
Wildfly
Wildfly
Wildfly
Wildfly
Wildfly
Wildfly
Domain./domain.sh