Instalando a ferramenta no Linux
Para poder utilizar a ferramenta no Linux, é preciso instalar os seguintes pacotes:
- rubygems
- git
Como podem ver, a ferramenta foi escrita em Ruby e por isso apesar de mencionar a instalação de apenas dois pacotes eles trarão dependências adicionais para poder fazer os pacotes principais funcionarem.
Após a instalação com sucesso dos pacotes, basta executar o seguinte comando para instalar o rhc:
$ sudo gem install rhc
Instalando a ferramenta no Mac
Para instalar a ferramenta no Mac, é preciso ter os seguintes pré-requisitos:
- Acesso a root
- Suite XCode completa ou git for OS X
Após a instalação, basta executar o comando:
$ sudo gem install rhc
Instalando a ferramenta no Windows
Para instalar a ferramenta no Windows, é preciso ter os seguintes pré-requisitos:
- Instalar o Ruby 1.9 for Windows (Lembre-se de marca a opção "Add Ruby executables to your PATH")
- Instalar o Git for Windows (Marque a opção "Run Git from the Windows Command Prompt")
Feito isso, basta executar o comando:
C:\> gem install rhc
Configuração inicial da ferramenta
O primeiro comando que iremos aprender é o comando:
Após o procedimento de setup, ele irá gerar os seguintes arquivos:
$ rhc setupNele, você irá fazer as configurações iniciais da ferramenta, como gerar as chaves de segurança SSH para o login da ferramenta(muito importante para poder conectar ao repositório git das aplicações), a criação de um nome de domínio(com ele, todas as aplicações criadas pela sua conta levarão esse nome único para identificar aplicações criadas por você), e verificar alguma pendência de configuração exigida pelo OpenShift.
Após o procedimento de setup, ele irá gerar os seguintes arquivos:
<user_dir>/.openshift/express.confO primeiro é uma configuração bem básica do Openshift (inicialmente um usuário padrão ao usar o comando rhc, que pode usar outro usuário adicionando a opção -l no comando, e o endereço do servidor Openshift) e o outro é o repositório de chaves SSH para comunicação com os serviços Openshift. Sem isso, você não conseguirá fazer um git clone do repositório.
<user_dir>/.ssh
Criando a aplicação
Depois de preparado o ambiente, estamos prontos para a criação da aplicação. O comando para criar é:
$ rhc app create -a <nome_da_aplicacao> -t <tipo_aplicacao>Onde o <tipo_aplicacao> pode ser:
- dyi-0.1
- jbossas-7
- jbosseap-6.0
- jenkins-1.4
- nodejs-0.6
- perl-5.10
- php-5.3
- python-2.6
- python-2.7
- python-3.3
- ruby-1.8
- ruby-1.9
- jbossews-1.0 (basicamente um Tomcat 6)
- jbossews-2.0 (basicamente um Tomcat 7)
- zend-5.6
Como podem ver na lista, a variedade de linguagens/servidores para desenvolvimento no Openshift tem crescido cada vez mais. E ainda podemos criar nosso próprio com o Do-It-Yourself Cartridge (farei um post explicando sobre isso). Essa tarefa irá criar um processo automático que no final irá gerar um endereço do repositório git e também a URL da sua aplicação no formato http://<nome_da_aplicacao>-<nome_do_dominio>.rhcloud.com
Snapshots da aplicação
Caso você queira criar backups de sua aplicação para posteriormente voltar às versões anteriores, o Openshift permite que você crie snapshots da sua aplicação e restaurá-los quando quiser. Em outras palavras, o snapshot é arquivo compactado que contém tudo que sua aplicação precisa para ser recuperada em uma outra gear do Openshift, tais como as variáveis de ambiente, o repositório git, os binários da aplicação, etc. Para criar um snapshot, basta executar o comando:
$ rhc snapshot save -a <nome_da_aplicacao> -f <nome_do_arquivo>
Assim, caso você queira restaurar a aplicação, execute o comando:
$ rhc snapshot restore -a <nome_da_aplicacao> -f <nome_do_arquivo>Assim, caso você queira restaurar a aplicação, execute o comando:
Diagnóstico de problemas
Sempre pode ocorrer problemas e que precisam de nossa intervenção para que nossa aplicação possa voltar ao ar ou até mesmo monitorar nossas aplicações para procurar eventuais problemas. Para isso, o rhc possui alguns comando que podem auxiliar o desenvolvedor a encontrar o problema.
O primeiro de todos os comandos irá verificar a saúde da infraestrutura do Openshift:
$ rhc server
Nele, é possível verificar se o problema não é generalizado e portanto se há alguma ação que pode ser realmente tomada por conta da sua aplicação. Caso apareça a mensagem "All systems running fine", então estamos à salvo... =D
O segundo comando inspecionará todos os logs da sua aplicação e irá imprimir (sob demanda) as mensagens deles. O comando é:
O primeiro de todos os comandos irá verificar a saúde da infraestrutura do Openshift:
$ rhc server
Nele, é possível verificar se o problema não é generalizado e portanto se há alguma ação que pode ser realmente tomada por conta da sua aplicação. Caso apareça a mensagem "All systems running fine", então estamos à salvo... =D
O segundo comando inspecionará todos os logs da sua aplicação e irá imprimir (sob demanda) as mensagens deles. O comando é:
$ rhc tail -a <nome_da_aplicacao>
Por fim, pode ser necessário inspecionar a performance em si da aplicação, assim verificando se a mesma está muito lenta, então pode ser necessário inspecionar as Threads do sistema. O comando para gerar o thread dump (um arquivo que descreve todas as Thread em execução do sistema) é:
Por fim, pode ser necessário inspecionar a performance em si da aplicação, assim verificando se a mesma está muito lenta, então pode ser necessário inspecionar as Threads do sistema. O comando para gerar o thread dump (um arquivo que descreve todas as Thread em execução do sistema) é:
$ rhc threaddump -a <nome_da_aplicacao>
Após a execução desse comando ele irá retornar uma mensagem dizendo onde o Thread Dump estará disponível, podendo inspecionar utilizando o comando descrito anteriormente. Para ser mais exato, o próprio rhc irá já enviar o comando completo que deve ser executado para inspecionar o Thread Dump.
Conclusão
Espero que esse post seja de muita utilidade a todos pois alguns usuários Openshift como eu adoram em algum momento utilizar a linha de comando para criar suas aplicações e até mesmo automatizar alguns processos. Fica aqui uma dica: todos esses comandos do rhc por trás há uma API REST que é consumida pelos comandos (que são nada mais nada menos que código Ruby). Em um post futuro explicarei sobre a API REST.
Nenhum comentário:
Postar um comentário