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 Slide

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

    View Slide

  3. Yet another application server?

    View 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 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 Slide

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

    View Slide

  7. Lá pra 2006

    View 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 Slide

  9. Lá pra 2006

    View 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 Slide

  11. Em 2011

    View Slide

  12. Em 2011

    View Slide

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

    View Slide

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

    View Slide

  15. 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 Slide

  16. JBoss AS 7 e o MSC

    View Slide

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

    View Slide

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

    View Slide

  19. JBoss AS 5

    View Slide

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

    View Slide

  21. JBoss AS 7

    View Slide

  22. JBoss AS 7
    Hot deploy!
    Server

    View Slide

  23. Mas…

    View Slide

  24. 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 Slide

  25. Overhead de portas HTTP!

    View Slide

  26. 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 Slide

  27. 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 Slide

  28. 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 Slide

  29. 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 Slide

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

    View Slide

  31. JBoss AS 8
    Wildfly

    View Slide

  32. Wildfly
    Java EE 7

    View Slide

  33. Wildfly

    View Slide

  34. Wildfly
    Tenta suavizar alguns problemas do JBoss AS 7

    View Slide

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

    e HTTPs ao iniciar

    View Slide

  36. Wildfly

    View Slide

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

    View Slide

  38. Wildfly

    View Slide

  39. Wildfly
    Novo Web Container!
    Undertow!

    View Slide

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

    View Slide

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

    do MSC' para

    o Web Container

    View Slide

  42. Wildfly + Undertow <3

    View Slide

  43. 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 Slide

  44. Wildfly - Minha opinião

    View Slide

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

    View Slide

  46. 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 Slide

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

    View Slide

  48. 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 Slide

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

    View Slide

  50. 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 Slide

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

    View Slide

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

    View Slide