Wildfly em alta disponibilidade

Preview:

DESCRIPTION

Palestra na trilha de JEE do TDC POA 2014

Citation preview

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?

Valeu!!!Perguntas?

hannelita@codeminer42.com@hannelita

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