Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Wildfly em alta disponibilidade

hannelita
October 18, 2014

Wildfly em alta disponibilidade

Palestra na trilha de Java EE - TDC POA 2014

hannelita

October 18, 2014
Tweet

More Decks by hannelita

Other Decks in Technology

Transcript

  1. Wildfly
    Em alta disponibilidade!

    View full-size slide

  2. Oi!
    Hanneli (a.k.a. @hannelita)!
    Desenvolvedora @Codeminer42!
    Café, Lego, Pokémon e bichos <3
    HIRING

    View full-size slide

  3. Yet another application server?

    View full-size slide

  4. 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

    View full-size slide

  5. 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

    View full-size slide

  6. Vamos fazer o projeto com Java!
    Lá pra 2006
    IDE
    Server
    Código

    View full-size slide

  7. Lá pra 2006

    View full-size slide

  8. 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í)

    View full-size slide

  9. Lá pra 2006

    View full-size slide

  10. 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:

    View full-size slide

  11. JBoss AS 7
    O servidor vai startar.
    SOBE TUDO AÍ!
    JPA JMS Log EJB JCA
    JSF Jax-ws Jax-rs

    View full-size slide

  12. JBoss AS 7
    Sobe só o que precisa…
    JPA JMS Log EJB JCA
    JSF Jax-ws Jax-rs
    funções
    mínimas

    View full-size slide

  13. JBoss AS 7
    Sobe só o que precisa…
    JPA JMS Log EJB JCA
    JSF Jax-ws Jax-rs
    Modular Service Container!
    funções
    mínimas
    MSC

    View full-size slide

  14. JBoss AS 7 e o MSC

    View full-size slide

  15. JBoss AS 7 e o MSC
    Start rápido!
    Menor consumo de RAM!
    Melhor gerenciamento de memória

    View full-size slide

  16. JBoss AS 5
    XML para JMS!
    XML para datasource!
    XML para cluster!
    XML para cache de segundo nível!
    XML para EJBs

    View full-size slide

  17. JBoss AS 7
    1 ou 2 arquivos de configuração principais!
    standalone.xml ou standalone-*.xml!
    domain.xml + host.xml

    View full-size slide

  18. JBoss AS 7
    Hot deploy!
    Server

    View full-size slide

  19. Mas…
    Sobe só o que precisa…
    JPA JMS Log EJB JCA
    JSF Jax-ws Jax-rs
    funções
    mínimas
    MSC
    porta http
    porta http
    porta http
    porta http

    View full-size slide

  20. Overhead de portas HTTP!

    View full-size slide

  21. Tomcat
    JPA JMS Log EJB JCA
    JSF Jax-ws Jax-rs
    funções
    mínimas
    MSC
    porta http
    porta http
    porta http
    porta http
    Tomcat
    porta http

    View full-size slide

  22. Tomcat - na real
    JPA JMS Log EJB JCA
    JSF Jax-ws Jax-rs
    funções
    mínimas
    MSC
    porta http
    porta http
    porta http
    porta http Tomcat
    porta http

    View full-size slide

  23. Tomcat - na real
    JPA JMS Log EJB JCA
    JSF Jax-ws Jax-rs
    funções
    mínimas
    MSC
    porta http
    porta http
    porta http
    porta http Tomcat
    porta http

    View full-size slide

  24. JBoss AS 7
    JPA JMS Log EJB JCA
    JSF Jax-ws Jax-rs
    funções
    mínimas
    MSC
    porta http
    porta http
    porta http
    porta http
    Java EE 7

    View full-size slide

  25. É necessária uma nova versão
    do JBoss AS

    View full-size slide

  26. JBoss AS 8
    Wildfly

    View full-size slide

  27. Wildfly
    Java EE 7

    View full-size slide

  28. Wildfly
    Tenta suavizar alguns problemas do JBoss AS 7

    View full-size slide

  29. Wildfly
    Suavização #1 - portas HTTP
    Somente o overhead das portas HTTP

    e HTTPs ao iniciar

    View full-size slide

  30. Wildfly
    Suavização #2 - Web Container

    View full-size slide

  31. Wildfly
    Novo Web Container!
    Undertow!

    View full-size slide

  32. Undertow
    Blocking / Non-
    Blocking NIO
    Muito mais leve
    Servlet 3.1
    HTTP upgrade
    suporta
    mod_cluster
    Handlers 'lokões'!

    View full-size slide

  33. Undertow Handlers
    handler ==
    handler ==
    'Trazer a ideia

    do MSC' para

    o Web Container

    View full-size slide

  34. Wildfly + Undertow <3

    View full-size slide

  35. 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

    View full-size slide

  36. Wildfly - Minha opinião

    View full-size slide

  37. DISCLAIMER
    MINHA VISÃO
    Você não precisa concordar, discordar
    ou achar que estou xingando/elogiando

    View full-size slide

  38. 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?

    View full-size slide

  39. Valeu!!!
    Perguntas?
    [email protected]
    @hannelita

    View full-size slide

  40. Referências
    http://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

    View full-size slide

  41. Apêndice - modo standalone
    Wildfly
    app1
    app2
    app3
    app4
    app5
    app6

    View full-size slide

  42. 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

    View full-size slide

  43. Controle Central
    Wildfly
    Seria muito difícil controlar as instâncias separadamente
    Wildfly
    Wildfly
    Wildfly

    View full-size slide

  44. Controle Central
    Wildfly
    Seria muito difícil controlar as instâncias separadamente
    Wildfly
    Wildfly
    Wildfly
    Wildfly
    Wildfly
    Wildfly
    Domain
    ./domain.sh

    View full-size slide