SlideShare uma empresa Scribd logo
1 de 18
Deploying JBoss AS
                                                 on the Cloud
                                                   Setembro de 2010




Fábrica de Software
Sistemas e aplicações sob medida para as
necessidades do seu negócio.
Amazon EC2

   Amazon EC2 (Elastic Compute Cloud)
         IaaS – Infrastructure as a Service
         Elástico
         Controle completo (acesso de root)
         Flexível (hardware, SO, etc)
         Confiável (SLA de 99,95%)
         Seguro
               ●
                    Firewall – Security Groups
               ●
                    Amazon VPC
         Economia
               ●
                    Baixo custo para demandas sazonais
Aplicação Envolvida

   Camada web desenvolvida usando Ruby on Rails

   Dois módulos desenvolvidos usando Java EE:
           Módulo de Acompanhamento – acessado via JavaScript via
           HTTP/REST e JSON
           Módulo de Lançamento - acessado pelo Módulo de
           Acompanhamento via JMS
               ●
                   Filas para o processamento dos lançamentos
         Módulos totalmente stateless
Dimensionamento

   Estimativa de aproximadamente 150 mil usuários
   cadastrados

   Estimativa de carga muito alta durante alguns períodos do
   dia

   Durante os períodos de pico, foram estimados 100 mil
   usuário simultâneos

   Fora dos períodos de pico, os módulos Java EE não são
   acessados
Dimensionamento

   Elastic Compute Cloud
           Possibilidade de aumentar ou diminuir a capacidade de
           hardware de acordo com a variação da demanda durante o dia
           De alguns poucos servidores a até 200 servidores nos períodos
           de pico
           Redimensionamento automático do ambiente utilizando API
           WebServices da Amazon EC2
              ●
                  Linha de comando / totalmente scriptable
Principais Desafios

   Elasticidade do ambiente
           Muitos nós instanciados e desligados em um curto período de
           tempo
           Automatização total do processo
           Registro automático de nós em clusters, load balancers, etc

   Restrições da Amazon
         Sem multicast
                ●
                    Impossibilita protocolo
                    UDP no cluster
         IPs dinâmicos
Arquitetura Final
Arquitetura Final

   Amazon HTTP Load Balancer
         Sticky session usando Cookie
         Configuração manual (adição de nós)
         Health Check

   Mongrel Cluster
         Apache2 e mod_proxy_balancer
         Cada cluster Mongrel possui 5 nós
Arquitetura Final

   Gossip Router – JGroups
           Permite a atribuição de nomes às máquinas com IP dinâmico
           O nome atribuído vale enquanto a máquina estiver ativa
           Gossip Router configurado em todas as máquinas Apache
           Os nós dos clusters Frontend e Backend se registram durante o
           startup
                ●
                    O registro é realizado em todos os Gossip Routers
                    ativos no momento do startup
                ●
                    Ao criar as máquinas JBoss, são informados os IPs das
                    máquinas onde estão instalados os Gossip Routers
           Cron + Script atualiza o /etc/hosts da máquina Apache para
           que ela possa encontrar os nós do JBoss de Frontend
           O mesmo ocorre nas máquinas de Frontend para que consigam
           encontrar os nós do JBoss de Backend
Arquitetura Final

   Balanceamento via mod_jk
           Foram pré-configurados 150 workers, apontando para 150
           hostnames diferentes (frontend1, frontend2, ...)
           Todos estão previamentre desabilitados
           Cron + Script habilitam os workers que possuem um IP
           atribuído pelo Gossip Router da máquina em questão
           A habilitação é realizada dinamicamente através do módulo
           JKStatusManager
           Balanceamento Round Robin sem sticky session
Arquitetura Final

   Frontend
              Nós do JBoss 5.1.0.GA independentes (não configurados em
              cluster)
              Cada nó se registra em todos os Gossip Routers ativos durante
              o startup
              Cron + Script atualiza o /etc/hosts da máquina para que ela
              possa encontrar os nós do JBoss de Backend
              Integração com o Backend via JMS
Arquitetura Final

   Backend
             Cluster JBoss 5.1.0.GA com filas JMS (JBoss Messaging) para
             distribuição do trabalho
             Cada nó também se registra em todos os Gossip Routers ativos
             durante o startup
             JGroups – TCP Gossip Routing
Outras Abordagens Testadas

   mod_cluster × mod_jk
           mod_cluster
                ●
                    Nós se registram automaticamente
                ●
                    Não segue o padrão de configuração do Apache 2 –
                    Virtual Hosts
                ●
                    Conflitos de bibliotecas com mod_proxy_balancer
           mod_jk
                ●
                    Nós são registrados manualmente, mas podem ser
                    ativados, inativados e ter seus dados atualizados via
                    JkStatusManager
                ●
                    Segue o padrão de configuração Apache 2
                ●
                    Sem conflitos com outros módulos
Monitoramento

   Uso do RHQ 3.0.0
           Monitoramento do Sistema Operacional (Ubuntu) das principais
           máquinas envolvidas (Apache, pelo menos uma máquina JBoss
           de Frontend / Backend e Postgres)
           Monitoramento do JBoss em pelo menos uma máquina
           Frontend e uma Backend
           Foi necessária alteração do plugin JBoss AS para identificar e
           monitorar corretamente o JBoss 5.1.0.GA
           Foi criado um plugin que permite monitorar o tempo de
           resposta da aplicação a partir, por exemplo, de um test case
           Jmeter
           Problema:
                ●
                    Nome do agente atrelado ao IP da máquina
Monitoramento
Monitoramento
Caminhos Futuros

   Rails on JBoss
            Realizar o deploy da aplicação no JBoss e remover o cluster
            Mongrel
            Facilidade de administração e escalabilidade
            Alternativas para o deploy
                 ●
                     Warbler – cria um
                     WAR a partir de
                     uma aplicação Rails
                 ●
                     JBoss 5 Rails
                     Deployer – nativo

   Apoio à evolução do RHQ 3.0.0
            Melhor suporte a ambientes
            elásticos / cloud
Obrigado!




            www.dextra.com.br
            contato@dextra-sw.com
                (11) 2824-6722
                (19) 3256-6722

Mais conteúdo relacionado

Mais procurados

WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015Adriano Schmidt
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Claudio Miranda
 
Como montar um ambiente de alta disponibilidade com o Hyper-V
Como montar um ambiente de alta disponibilidade com o Hyper-VComo montar um ambiente de alta disponibilidade com o Hyper-V
Como montar um ambiente de alta disponibilidade com o Hyper-VRodrigo Immaginario
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - AvançadoAdriano Schmidt
 
JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.Eduardo Medeiros
 
ITCamp - Novidades do windows server 2012
ITCamp - Novidades do windows server 2012ITCamp - Novidades do windows server 2012
ITCamp - Novidades do windows server 2012Vinícius Apolinário
 
UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6Wagner Bianchi
 
Proxmox uma solução alternativa aos virtualizadores propietários - FLISOL DF ...
Proxmox uma solução alternativa aos virtualizadores propietários - FLISOL DF ...Proxmox uma solução alternativa aos virtualizadores propietários - FLISOL DF ...
Proxmox uma solução alternativa aos virtualizadores propietários - FLISOL DF ...Alcyon Ferreira de Souza Junior, MSc
 
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos CorreiosPerformance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos CorreiosAlex Hübner
 
Apostila - Tutorial Citrix XenServer 6
Apostila - Tutorial Citrix XenServer 6Apostila - Tutorial Citrix XenServer 6
Apostila - Tutorial Citrix XenServer 6Lorscheider Santiago
 
Tutorial máquina virtual
Tutorial   máquina virtualTutorial   máquina virtual
Tutorial máquina virtualOdarkpure
 
Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018
Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018
Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018Tchelinux
 

Mais procurados (20)

Virtualização - Máquinas Virtuais
Virtualização - Máquinas VirtuaisVirtualização - Máquinas Virtuais
Virtualização - Máquinas Virtuais
 
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015
 
JBoss5 @ FISL
JBoss5 @ FISLJBoss5 @ FISL
JBoss5 @ FISL
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
 
Como montar um ambiente de alta disponibilidade com o Hyper-V
Como montar um ambiente de alta disponibilidade com o Hyper-VComo montar um ambiente de alta disponibilidade com o Hyper-V
Como montar um ambiente de alta disponibilidade com o Hyper-V
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.
 
ITCamp - Novidades do windows server 2012
ITCamp - Novidades do windows server 2012ITCamp - Novidades do windows server 2012
ITCamp - Novidades do windows server 2012
 
Apt_vagrant_chef_olavo_queiroz
Apt_vagrant_chef_olavo_queirozApt_vagrant_chef_olavo_queiroz
Apt_vagrant_chef_olavo_queiroz
 
Componentes Web J2EE
Componentes Web J2EEComponentes Web J2EE
Componentes Web J2EE
 
UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6
 
Proxmox uma solução alternativa aos virtualizadores propietários - FLISOL DF ...
Proxmox uma solução alternativa aos virtualizadores propietários - FLISOL DF ...Proxmox uma solução alternativa aos virtualizadores propietários - FLISOL DF ...
Proxmox uma solução alternativa aos virtualizadores propietários - FLISOL DF ...
 
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos CorreiosPerformance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
 
Performance em Java
Performance em JavaPerformance em Java
Performance em Java
 
Virtualização com Xen
Virtualização com XenVirtualização com Xen
Virtualização com Xen
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Apostila - Tutorial Citrix XenServer 6
Apostila - Tutorial Citrix XenServer 6Apostila - Tutorial Citrix XenServer 6
Apostila - Tutorial Citrix XenServer 6
 
Kvm
KvmKvm
Kvm
 
Tutorial máquina virtual
Tutorial   máquina virtualTutorial   máquina virtual
Tutorial máquina virtual
 
Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018
Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018
Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018
 

Semelhante a Deploying JBoss AS on the Cloud

Introdução a JavaME
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaMEfrgo
 
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion ToleranceVMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion ToleranceLeandro Magnabosco
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao TerraformLeandro Silva
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
 
TDC2013 Escalando Aplicações Java com In Memory Datagrids
TDC2013 Escalando Aplicações Java com In Memory DatagridsTDC2013 Escalando Aplicações Java com In Memory Datagrids
TDC2013 Escalando Aplicações Java com In Memory DatagridsWagner Roberto dos Santos
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Flávio Lisboa
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Ferramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilFerramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilInael Rodrigues
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoFabio Telles Rodriguez
 
Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Globalcode
 
PostgreSQL Conceitos e aplicações - FSA
PostgreSQL  Conceitos e aplicações - FSAPostgreSQL  Conceitos e aplicações - FSA
PostgreSQL Conceitos e aplicações - FSAFabio Telles Rodriguez
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivoelliando dias
 
Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Edgar Silva
 
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters) iG - Internet Group do Brasil S/A
 

Semelhante a Deploying JBoss AS on the Cloud (20)

Introdução a JavaME
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaME
 
JBoss Clustering
JBoss ClusteringJBoss Clustering
JBoss Clustering
 
Apache e Java
Apache e JavaApache e Java
Apache e Java
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion ToleranceVMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
TDC2013 Escalando Aplicações Java com In Memory Datagrids
TDC2013 Escalando Aplicações Java com In Memory DatagridsTDC2013 Escalando Aplicações Java com In Memory Datagrids
TDC2013 Escalando Aplicações Java com In Memory Datagrids
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Zabbix 2010
Zabbix 2010Zabbix 2010
Zabbix 2010
 
Ferramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilFerramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento Ágil
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!
 
PostgreSQL Conceitos e aplicações - FSA
PostgreSQL  Conceitos e aplicações - FSAPostgreSQL  Conceitos e aplicações - FSA
PostgreSQL Conceitos e aplicações - FSA
 
Jboss eap 6
Jboss eap 6Jboss eap 6
Jboss eap 6
 
JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivo
 
Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0
 
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
TDC2010 - Trilha Python: Python no iG (Automação de Datacenters)
 

Mais de Dextra

Digital Acceleration por Bill Coutinho
Digital Acceleration por Bill CoutinhoDigital Acceleration por Bill Coutinho
Digital Acceleration por Bill CoutinhoDextra
 
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em NuvemDextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em NuvemDextra
 
Digital Acceleration
Digital AccelerationDigital Acceleration
Digital AccelerationDextra
 
Innovator's dilemma
Innovator's dilemma Innovator's dilemma
Innovator's dilemma Dextra
 
Design Thinking | Course Material
Design Thinking | Course MaterialDesign Thinking | Course Material
Design Thinking | Course MaterialDextra
 
Dextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoringDextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoringDextra
 
Classificação de documentos
Classificação de documentosClassificação de documentos
Classificação de documentosDextra
 
Recomendação de conteúdo com apache mahout
Recomendação de conteúdo com apache mahoutRecomendação de conteúdo com apache mahout
Recomendação de conteúdo com apache mahoutDextra
 
Ux na vida real deedz
Ux na vida real  deedzUx na vida real  deedz
Ux na vida real deedzDextra
 
IT For Digital Business | Transformação digital na Natura.
IT For Digital Business | Transformação digital na Natura.IT For Digital Business | Transformação digital na Natura.
IT For Digital Business | Transformação digital na Natura.Dextra
 
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos KrotonIT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos KrotonDextra
 
IT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
IT4DBiz - Inovação e Renovação: a nova agenda da TI modernaIT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
IT4DBiz - Inovação e Renovação: a nova agenda da TI modernaDextra
 
Desenvolvendo aplicações de negócio na velocidade do Google
Desenvolvendo aplicações de negócio na velocidade do GoogleDesenvolvendo aplicações de negócio na velocidade do Google
Desenvolvendo aplicações de negócio na velocidade do GoogleDextra
 
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...Dextra
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBADextra
 
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...Dextra
 
IT for Digital Business 2014 - TI baseada em Valores
IT for Digital Business 2014 - TI baseada em ValoresIT for Digital Business 2014 - TI baseada em Valores
IT for Digital Business 2014 - TI baseada em ValoresDextra
 
It for Digital Business 2014 - Negócios Digitais e a Nova TI
It for Digital Business 2014 - Negócios Digitais e a Nova TIIt for Digital Business 2014 - Negócios Digitais e a Nova TI
It for Digital Business 2014 - Negócios Digitais e a Nova TIDextra
 
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill CoutinhoMobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill CoutinhoDextra
 
MobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto MarinMobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto MarinDextra
 

Mais de Dextra (20)

Digital Acceleration por Bill Coutinho
Digital Acceleration por Bill CoutinhoDigital Acceleration por Bill Coutinho
Digital Acceleration por Bill Coutinho
 
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em NuvemDextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
 
Digital Acceleration
Digital AccelerationDigital Acceleration
Digital Acceleration
 
Innovator's dilemma
Innovator's dilemma Innovator's dilemma
Innovator's dilemma
 
Design Thinking | Course Material
Design Thinking | Course MaterialDesign Thinking | Course Material
Design Thinking | Course Material
 
Dextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoringDextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoring
 
Classificação de documentos
Classificação de documentosClassificação de documentos
Classificação de documentos
 
Recomendação de conteúdo com apache mahout
Recomendação de conteúdo com apache mahoutRecomendação de conteúdo com apache mahout
Recomendação de conteúdo com apache mahout
 
Ux na vida real deedz
Ux na vida real  deedzUx na vida real  deedz
Ux na vida real deedz
 
IT For Digital Business | Transformação digital na Natura.
IT For Digital Business | Transformação digital na Natura.IT For Digital Business | Transformação digital na Natura.
IT For Digital Business | Transformação digital na Natura.
 
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos KrotonIT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
 
IT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
IT4DBiz - Inovação e Renovação: a nova agenda da TI modernaIT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
IT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
 
Desenvolvendo aplicações de negócio na velocidade do Google
Desenvolvendo aplicações de negócio na velocidade do GoogleDesenvolvendo aplicações de negócio na velocidade do Google
Desenvolvendo aplicações de negócio na velocidade do Google
 
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBA
 
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
 
IT for Digital Business 2014 - TI baseada em Valores
IT for Digital Business 2014 - TI baseada em ValoresIT for Digital Business 2014 - TI baseada em Valores
IT for Digital Business 2014 - TI baseada em Valores
 
It for Digital Business 2014 - Negócios Digitais e a Nova TI
It for Digital Business 2014 - Negócios Digitais e a Nova TIIt for Digital Business 2014 - Negócios Digitais e a Nova TI
It for Digital Business 2014 - Negócios Digitais e a Nova TI
 
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill CoutinhoMobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
 
MobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto MarinMobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto Marin
 

Deploying JBoss AS on the Cloud

  • 1. Deploying JBoss AS on the Cloud Setembro de 2010 Fábrica de Software Sistemas e aplicações sob medida para as necessidades do seu negócio.
  • 2. Amazon EC2 Amazon EC2 (Elastic Compute Cloud) IaaS – Infrastructure as a Service Elástico Controle completo (acesso de root) Flexível (hardware, SO, etc) Confiável (SLA de 99,95%) Seguro ● Firewall – Security Groups ● Amazon VPC Economia ● Baixo custo para demandas sazonais
  • 3. Aplicação Envolvida Camada web desenvolvida usando Ruby on Rails Dois módulos desenvolvidos usando Java EE: Módulo de Acompanhamento – acessado via JavaScript via HTTP/REST e JSON Módulo de Lançamento - acessado pelo Módulo de Acompanhamento via JMS ● Filas para o processamento dos lançamentos Módulos totalmente stateless
  • 4. Dimensionamento Estimativa de aproximadamente 150 mil usuários cadastrados Estimativa de carga muito alta durante alguns períodos do dia Durante os períodos de pico, foram estimados 100 mil usuário simultâneos Fora dos períodos de pico, os módulos Java EE não são acessados
  • 5. Dimensionamento Elastic Compute Cloud Possibilidade de aumentar ou diminuir a capacidade de hardware de acordo com a variação da demanda durante o dia De alguns poucos servidores a até 200 servidores nos períodos de pico Redimensionamento automático do ambiente utilizando API WebServices da Amazon EC2 ● Linha de comando / totalmente scriptable
  • 6. Principais Desafios Elasticidade do ambiente Muitos nós instanciados e desligados em um curto período de tempo Automatização total do processo Registro automático de nós em clusters, load balancers, etc Restrições da Amazon Sem multicast ● Impossibilita protocolo UDP no cluster IPs dinâmicos
  • 8. Arquitetura Final Amazon HTTP Load Balancer Sticky session usando Cookie Configuração manual (adição de nós) Health Check Mongrel Cluster Apache2 e mod_proxy_balancer Cada cluster Mongrel possui 5 nós
  • 9. Arquitetura Final Gossip Router – JGroups Permite a atribuição de nomes às máquinas com IP dinâmico O nome atribuído vale enquanto a máquina estiver ativa Gossip Router configurado em todas as máquinas Apache Os nós dos clusters Frontend e Backend se registram durante o startup ● O registro é realizado em todos os Gossip Routers ativos no momento do startup ● Ao criar as máquinas JBoss, são informados os IPs das máquinas onde estão instalados os Gossip Routers Cron + Script atualiza o /etc/hosts da máquina Apache para que ela possa encontrar os nós do JBoss de Frontend O mesmo ocorre nas máquinas de Frontend para que consigam encontrar os nós do JBoss de Backend
  • 10. Arquitetura Final Balanceamento via mod_jk Foram pré-configurados 150 workers, apontando para 150 hostnames diferentes (frontend1, frontend2, ...) Todos estão previamentre desabilitados Cron + Script habilitam os workers que possuem um IP atribuído pelo Gossip Router da máquina em questão A habilitação é realizada dinamicamente através do módulo JKStatusManager Balanceamento Round Robin sem sticky session
  • 11. Arquitetura Final Frontend Nós do JBoss 5.1.0.GA independentes (não configurados em cluster) Cada nó se registra em todos os Gossip Routers ativos durante o startup Cron + Script atualiza o /etc/hosts da máquina para que ela possa encontrar os nós do JBoss de Backend Integração com o Backend via JMS
  • 12. Arquitetura Final Backend Cluster JBoss 5.1.0.GA com filas JMS (JBoss Messaging) para distribuição do trabalho Cada nó também se registra em todos os Gossip Routers ativos durante o startup JGroups – TCP Gossip Routing
  • 13. Outras Abordagens Testadas mod_cluster × mod_jk mod_cluster ● Nós se registram automaticamente ● Não segue o padrão de configuração do Apache 2 – Virtual Hosts ● Conflitos de bibliotecas com mod_proxy_balancer mod_jk ● Nós são registrados manualmente, mas podem ser ativados, inativados e ter seus dados atualizados via JkStatusManager ● Segue o padrão de configuração Apache 2 ● Sem conflitos com outros módulos
  • 14. Monitoramento Uso do RHQ 3.0.0 Monitoramento do Sistema Operacional (Ubuntu) das principais máquinas envolvidas (Apache, pelo menos uma máquina JBoss de Frontend / Backend e Postgres) Monitoramento do JBoss em pelo menos uma máquina Frontend e uma Backend Foi necessária alteração do plugin JBoss AS para identificar e monitorar corretamente o JBoss 5.1.0.GA Foi criado um plugin que permite monitorar o tempo de resposta da aplicação a partir, por exemplo, de um test case Jmeter Problema: ● Nome do agente atrelado ao IP da máquina
  • 17. Caminhos Futuros Rails on JBoss Realizar o deploy da aplicação no JBoss e remover o cluster Mongrel Facilidade de administração e escalabilidade Alternativas para o deploy ● Warbler – cria um WAR a partir de uma aplicação Rails ● JBoss 5 Rails Deployer – nativo Apoio à evolução do RHQ 3.0.0 Melhor suporte a ambientes elásticos / cloud
  • 18. Obrigado! www.dextra.com.br contato@dextra-sw.com (11) 2824-6722 (19) 3256-6722