Java EE 6 & Azure
Desafios no deploy de aplicações Java EE
        no cloud da Microsoft

              Dr. Spock
             @drspockbr
@bout me!
•   Bacharel e especialista em Física
    pela UFV e Unicamp;

•   Desenvolvedor de aplicações
    Web desde 96 e Java desde 99;

•   Palestrante em eventos
    nacionais e internacionais;

•   Integrante da equipe de P&D da
    Softplan em Florianópolis;
@bout me!
•   Bacharel e especialista em Física
    pela UFV e Unicamp;

•   Desenvolvedor de aplicações
    Web desde 96 e Java desde 99;

•   Palestrante em eventos
    nacionais e internacionais;

•   Integrante da equipe de P&D da
    Softplan em Florianópolis;
Visite o SBUG
http://www.springbrasil.com.br/
Agenda
Agenda
•   Introdução e conceitos;
Agenda
•   Introdução e conceitos;

•   Desafios no processo para
    deploy de Java EE no Azure;
Agenda
•   Introdução e conceitos;

•   Desafios no processo para
    deploy de Java EE no Azure;

•   Elasticidade com Java EE e
    Azure;
Introdução &
  Conceitos
Cloud Computing
Usuário
         Final


Desenvolvedores


Administradores
   de rede
Share Point Online,
            Office Live, CRM
                Services



    Windows Server, IIS,
          SQL



  Compute, storage,
network, access control
Desafios no deploy de
  Java EE no Azure
Desenv.



Packaging   Preparação   Run



             Upload
Preparação

   •   Windows Azure SDK;

   •   IIS 7 + Hotfixes;

   •   Windows Starter Kit for Java
       => Ant ou Eclipse

   •   MS Visual Web Developer
       2010 Express
Preparação

   •   Windows Azure SDK;

   •   IIS 7 + Hotfixes;

   •   Windows Starter Kit for Java
       => Ant ou Eclipse

   •   MS Visual Web Developer
       2010 Express

   • Desafio 1:
       “Escolha”
Desenv.



Packaging   Preparação   Run



             Upload
Desenv.


 •   A parte fácil => WAR ou EAR

 •   Arquivos no storage

 •   Criação de scripts de inicialização
     => .bat, .cmd ou .ps

 •   VBScript ou C# => .NET DLLs
Desenv.


 •   A parte fácil => WAR ou EAR

 •   Arquivos no storage

 •   Criação de scripts de inicialização
     => .bat, .cmd ou .ps

 • VBScript ou C# => .NET DLLs
 • Desafio 2:
     “Códigos estranhos”
Desenv.
Desenv.



Packaging   Preparação   Run



             Upload
Packaging

  •   Gerar o arquivo Cloud Service
      Package (.cspkg)

  •   Task Ant requer DLL do Windows
      Azure SDK

  •   Gerar o Cloud Service Definition
      (XML .csdef com tipo VM, ativação
      RDP, criptografia, etc)
Packaging

  •   Gerar o arquivo Cloud Service
      Package (.cspkg)

  •   Task Ant requer DLL do Windows
      Azure SDK

  •   Gerar o Cloud Service Definition
      (XML .csdef com tipo VM, ativação
      RDP, criptografia, etc)

  • Desafio 3:
      “Configurações XML”
Packaging
Desenv.



Packaging   Preparação   Run



             Upload
Upload

 •   Upload .cspkg e .csdef via Portal

 •   Portal requer Silverlight

 •   Storage acessível por outra
     ferramenta

 •   Upload via MS Visual Developer
     2010 Express
Upload

 •   Upload .cspkg e .csdef via Portal

 •   Portal requer Silverlight

 •   Storage acessível por outra
     ferramenta

 •   Upload via MS Visual Developer
     2010 Express

 • Desafio 4:
     “Tempo de deploy”
Upload
Desenv.



Packaging   Preparação   Run



             Upload
Run

•   Na inicialização da VM o script é
    executado

•   O script pode falhar em algum
    ponto

•   Portas mapeadas não tem efeito
    quando ocorre erro

•   Recomendado habilitar RDP
Run

•   Na inicialização da VM o script é
    executado

•   O script pode falhar em algum
    ponto

•   Portas mapeadas não tem efeito
    quando ocorre erro

• Recomendado habilitar RDP
• Desafio 5:
    “Debug”
Run
Run
Desenv.



Packaging   Preparação   Run



             Upload
Elasticidade com
 Java EE e Azure
Load Balancer




Virtual Machine
Load Balancer




Virtual Machine
Load Balancer




Virtual Machine
Load Balancer




Virtual Machine
Load Balancer




Virtual Machine
Load Balancer




Virtual Machine
Load Balancer




Virtual Machine
Load Balancer




Virtual Machine
1000 usuários



                  Load Balancer




Virtual Machine       100 usuários por VM
500 usuários



                  Load Balancer




Virtual Machine        50 usuários por VM
100 usuários



                  Load Balancer




Virtual Machine        10 usuários por VM
100 usuários



                  Load Balancer




Virtual Machine     100 usuários numa VM
100 usuários



                  Load Balancer




Virtual Machine     100 usuários numa VM
Apache
                        mod_cluster




JBossAS + mod_cluster
Uma possível solução!
 •   Windows Azure Connect

 •   Virtual Network + Activation
     Token

 •   1 VM com Apache 64bits +
     mod_cluster

 •   n VMs com JBossAS 6 +
     mod_cluster

 •   Datagrid com Infinispan
Referências
• Windows Azure
  http://www.microsoft.com/windowsazure/

• Interoperability Bridges
  http://www.interoperabilitybridges.com/

• Windows Azure SDK for Java
  http://www.windowsazure4j.org/

• Windows Azure Tools for Eclipse
  http://www.windowsazure4e.org/

• JBoss Community - mod_cluster
  http://www.jboss.org/mod_cluster
Referências
• Mani Doraisany’s Blog - Statelessness vs Elasticity
  http://manidoraisamy.blogspot.com/2010/07/why-does-elastic-nature-of-cloud-impose.html

• Glassfish no Azure - Arun Gupta
  http://blogs.oracle.com/arungupta/entry/ttod_155_glassfish_in_azure
Obrigado!
•   Contato:
    Dr. Spock
    spock@springbrasil.com.br

•   Twitter:
    @drspockbr

•   About me:
    http://about.me/drspockbr

TDC2011: Java EE 6 & Azure

  • 1.
    Java EE 6& Azure Desafios no deploy de aplicações Java EE no cloud da Microsoft Dr. Spock @drspockbr
  • 2.
    @bout me! • Bacharel e especialista em Física pela UFV e Unicamp; • Desenvolvedor de aplicações Web desde 96 e Java desde 99; • Palestrante em eventos nacionais e internacionais; • Integrante da equipe de P&D da Softplan em Florianópolis;
  • 3.
    @bout me! • Bacharel e especialista em Física pela UFV e Unicamp; • Desenvolvedor de aplicações Web desde 96 e Java desde 99; • Palestrante em eventos nacionais e internacionais; • Integrante da equipe de P&D da Softplan em Florianópolis;
  • 4.
  • 6.
  • 7.
    Agenda • Introdução e conceitos;
  • 8.
    Agenda • Introdução e conceitos; • Desafios no processo para deploy de Java EE no Azure;
  • 9.
    Agenda • Introdução e conceitos; • Desafios no processo para deploy de Java EE no Azure; • Elasticidade com Java EE e Azure;
  • 10.
    Introdução & Conceitos
  • 11.
  • 13.
    Usuário Final Desenvolvedores Administradores de rede
  • 16.
    Share Point Online, Office Live, CRM Services Windows Server, IIS, SQL Compute, storage, network, access control
  • 18.
    Desafios no deployde Java EE no Azure
  • 19.
    Desenv. Packaging Preparação Run Upload
  • 20.
    Preparação • Windows Azure SDK; • IIS 7 + Hotfixes; • Windows Starter Kit for Java => Ant ou Eclipse • MS Visual Web Developer 2010 Express
  • 21.
    Preparação • Windows Azure SDK; • IIS 7 + Hotfixes; • Windows Starter Kit for Java => Ant ou Eclipse • MS Visual Web Developer 2010 Express • Desafio 1: “Escolha”
  • 22.
    Desenv. Packaging Preparação Run Upload
  • 23.
    Desenv. • A parte fácil => WAR ou EAR • Arquivos no storage • Criação de scripts de inicialização => .bat, .cmd ou .ps • VBScript ou C# => .NET DLLs
  • 24.
    Desenv. • A parte fácil => WAR ou EAR • Arquivos no storage • Criação de scripts de inicialização => .bat, .cmd ou .ps • VBScript ou C# => .NET DLLs • Desafio 2: “Códigos estranhos”
  • 25.
  • 26.
    Desenv. Packaging Preparação Run Upload
  • 27.
    Packaging • Gerar o arquivo Cloud Service Package (.cspkg) • Task Ant requer DLL do Windows Azure SDK • Gerar o Cloud Service Definition (XML .csdef com tipo VM, ativação RDP, criptografia, etc)
  • 28.
    Packaging • Gerar o arquivo Cloud Service Package (.cspkg) • Task Ant requer DLL do Windows Azure SDK • Gerar o Cloud Service Definition (XML .csdef com tipo VM, ativação RDP, criptografia, etc) • Desafio 3: “Configurações XML”
  • 29.
  • 30.
    Desenv. Packaging Preparação Run Upload
  • 31.
    Upload • Upload .cspkg e .csdef via Portal • Portal requer Silverlight • Storage acessível por outra ferramenta • Upload via MS Visual Developer 2010 Express
  • 32.
    Upload • Upload .cspkg e .csdef via Portal • Portal requer Silverlight • Storage acessível por outra ferramenta • Upload via MS Visual Developer 2010 Express • Desafio 4: “Tempo de deploy”
  • 33.
  • 34.
    Desenv. Packaging Preparação Run Upload
  • 35.
    Run • Na inicialização da VM o script é executado • O script pode falhar em algum ponto • Portas mapeadas não tem efeito quando ocorre erro • Recomendado habilitar RDP
  • 36.
    Run • Na inicialização da VM o script é executado • O script pode falhar em algum ponto • Portas mapeadas não tem efeito quando ocorre erro • Recomendado habilitar RDP • Desafio 5: “Debug”
  • 37.
  • 38.
  • 39.
    Desenv. Packaging Preparação Run Upload
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
    1000 usuários Load Balancer Virtual Machine 100 usuários por VM
  • 50.
    500 usuários Load Balancer Virtual Machine 50 usuários por VM
  • 51.
    100 usuários Load Balancer Virtual Machine 10 usuários por VM
  • 52.
    100 usuários Load Balancer Virtual Machine 100 usuários numa VM
  • 53.
    100 usuários Load Balancer Virtual Machine 100 usuários numa VM
  • 54.
    Apache mod_cluster JBossAS + mod_cluster
  • 55.
    Uma possível solução! • Windows Azure Connect • Virtual Network + Activation Token • 1 VM com Apache 64bits + mod_cluster • n VMs com JBossAS 6 + mod_cluster • Datagrid com Infinispan
  • 56.
    Referências • Windows Azure http://www.microsoft.com/windowsazure/ • Interoperability Bridges http://www.interoperabilitybridges.com/ • Windows Azure SDK for Java http://www.windowsazure4j.org/ • Windows Azure Tools for Eclipse http://www.windowsazure4e.org/ • JBoss Community - mod_cluster http://www.jboss.org/mod_cluster
  • 57.
    Referências • Mani Doraisany’sBlog - Statelessness vs Elasticity http://manidoraisamy.blogspot.com/2010/07/why-does-elastic-nature-of-cloud-impose.html • Glassfish no Azure - Arun Gupta http://blogs.oracle.com/arungupta/entry/ttod_155_glassfish_in_azure
  • 58.
    Obrigado! • Contato: Dr. Spock spock@springbrasil.com.br • Twitter: @drspockbr • About me: http://about.me/drspockbr