Múltiplas instâncias no ColdFusion
O Adobe ColdFusion Server for J2EE***, permite a criação e o gerenciamento de múltiplas instâncias do application server, em uma única estrutura física de servidor, possibilitando segurança/estabilidade de forma individual, às suas aplicações.
Para entender melhor os benefícios dessa feature no ColdFusion, vamos fazer uma análise de duas situações de desenvolvimento:
1- Em Servidores únicos
Em um ambiente onde não há a configuração de múltiplas instâncias, o application server gerencia sob a mesma configuração, e de forma agrupada, todas as aplicações que por ventura forem desenvolvidas “debaixo dele”. Neste cenário, quando uma aplicação A falha, ou é sobrecarrega por qualquer motivo, as demais aplicações que compartilham aquela mesma instância, acabam sendo afetadas por problemas da aplicação A.
A princípio, a única solução viável, seria a delegação de servidores específicos (máquinas) para cada aplicação, deixando de forma isolada cada uma delas.
2 - Em Múltiplas instâncias de servidores
No ColdFusion Enterprise Edition***, é possível fazer com que múltiplas instâncias, possam coexistir numa única estrutura física, servindo individualmente cada uma das aplicações no servidor. Neste cenário, você tem um servidor que pode se comportar como vários. O ColdFusion é instalado em uma instância de um servidor J2EE (no exemplo deste artigo, o JRun), sendo gerenciado por uma JVM exclusiva para aquele instância. Essa mesma JVM se comporta de forma isolada e independente; sendo assim, pode-se ter uma outra instância J2EE com uma outra e exclusiva JVM servindo uma outra instância do ColdFusion. Neste caso, se houver uma falha ou sobrecarga em uma aplicação qualquer, as demais aplicações não têm a performance comprometida, já que pertencem à instâncias diferentes e independentes entre si. Por sua vez, todas as settings, podem ser feitas de forma individual e independente para cada instância.Além disso, é possível trabalhar com cluster de instâncias, isto é, criar múltiplas cópias de uma determinada aplicação ColdFusion, que possa ser executada por diferentes instâncias numa mesma máquina: neste caso, quando uma das instâncias da aplicação é sobrecarregada, ou simplesmente deixa de responder, a tarefa passa a ser gerenciada pela outra instância que faz parte do cluster.
- CONFIGURANDO MÚLTIPLAS INSTÂNCIAS
Este artigo, utiliza como exemplo a versão J2EE do ColdFusion, tendo como Application Server o JRun 4, em ambiente Windows Server, utilizando como servidor web, o IIS 5 ou superior, com a possibilidade de criação de múltiplos websites.
1. Para que possamos aproveitar o recurso de múltiplas instâncias, o ColdFusion deve ser instalado usando a opção “J2EE Configuration”. Ao iniciar o instalador, selecione esta opção.
2. Na próxima etapa, deve-se selecionar como servidor Web, o servidor interno que vem junto com o CFMX. (Built-in). Neste ponto, recomendo não efetuar qualquer configuração de conexão com o IIS. Ainda.
3. Prossiga normalmente a instalação, até a última etapa. Ao final do processo, efetue os ajustes da instância padrão do ColdFusion, que a instalação criou, através do Configuration Wizard.
4. Após a configuração, no painel de serviços, você irá notar que três instâncias do JRun estarão sendo executadas: a ADMIN, DEFAULT e CFUSION. Stope o serviço da instância do server CFUSION.
5. Copie o diretório cfusion-ear que está no diretório {root do JRun4}/servers/cfusion/ para qualquer diretório temporário, por exemplo C:/instancias/template-cfusion/. Utilizaremos sempre este diretório para cada instância do CFMX que desejarmos criar, pois é ele que possui os arquivos de runtime do application server.
6. Inicie o serviço do server CFUSION.7. Agora, vamos configurar a conexão da instância CFUSION à um servidor web externo, para que as requisições HTTP possam ser gerenciadas pelo IIS.
7.1 Abra o utilitário WSCONFIG que se encontra no diretório {root do JRun4}/bin e clique em Add
7.2 Para o campo JRun host, informe a opção localhost
7.3 Para o campo JRun server escolha a instância CFUSION
7.4 Escolha o servidor Web apropriado.
7.5 No caso do IIS, não escolha a opção [All sites] e sim, [Default Web Site].
7.6 Marque a opção Configure the Web server for ColdFusion MX applications.
7.7 Clique em OK para que a configuração seja feita. Uma confirmação de restart do IIS será exibida. Clique em YES.
8. Copie o diretório CFIDE que está em {root do JRun4}/servers/cfusion/cfusion-ear/cfusion-war para o diretório raiz do seu servidor web, o que em nosso exemplo, equivale ao diretório C:/inetpub/wwwroot/. Acesse a URL do website, e teste a aplicação. Primeira etapa concluída.
9. Vamos adicionar agora, uma segunda instância do CFMX. Para isso, é preciso que a instância do ADMIN* server, esteja sendo executada, pois é através dela, que podemos acessar o JMC, o console de gerenciamento do JRun. Após inciar ela, acesse o JMC através da seguinte URL: http://localhost:8000. Efetue a autenticação com os dados que foram fornecidos anteriormente, durante a instalação.
10. Clique na opção Create New Server. Na tela que surgir, informe os seguintes campos:
Host Name (aceite o valor default), JRun Server Name (o nome da sua nova instância) e
JRun Server Directory (aceite o valor default):
11. Um segunda tela surgirá com os seguintes campos: JNDI Provider URL, WebServer Port Number e
Web Connector Proxy Port Number. Apesar de se poder alterar esses valores, recomendo que seja aceito os defaults.
12. Delete o diretório default-ear que está em {root do JRun4}/servers/{nome da segunda instãncia}, para evitar qualquer tipo de conflito e copie o diretório indicado no passo 5 para esta raiz.
13. Inicie o serviço desta segunda instância, pelo JMC.
14. Agora que a instância foi criada, precisamos configurar a conexão dela com um servidor Web, de forma semelhante ao que fizemos com a instância CFUSION.16.1 Abra o utilitário WSCONFIG que se encontra no diretório {root do JRun4}/bin e clique em Add
14.2 Para o campo JRun host, selecione a opção localhost
14.3 Para o campo JRun server escolha o nome da segunda instância criada
14.4 Escolha o servidor Web apropriado
14.5 No caso do IIS, não escolha a opção All sites e sim, Site Web2**.
14.6 Marque a opção Configure the Web server for ColdFusion MX applications.
Clique em OK para que a configuração seja feita. Uma confirmação de restart do IIS será exibida. Clique em YES.
15. Copie o diretório CFIDE que está em {root do JRun4}/servers/{nome da segunda instãncia}/cfusion-ear/cfusion-war para o diretório raiz do segundo WebSite, o que em nosso exemplo, equivale ao diretório C:/Site2/wwwroot.
NOTAS
*Em servidores de produção, recomendo que seja desabilitado o serviço da instância DEFAULT. No caso da instância ADMIN, recomendo só iniciar ela, quando ser for efetuar algum gerenciamento ou alteração nas settings das instâncias do JRun.
** Para efetuar o isolamento de aplicações, deve-se através do IIS, se criar um novo WebSite, apontando para a aplicação desejada. Os websites criados pelo IIS, são visualizados no utilitário WSCONFIG no momento da configuração de conexão entre instâncias e o servidor web.
*** Disponível apenas para versões pós 5 [6,6.1,7 e 8].