Escalando aplicações utilizando OpenShift – DevOps.

pexels-photo-574070

O que é OpenShift?

O OpenShift é uma plataforma de DevOps desenvolvida pela Red Hat que tem como objetivo simplificar a vida dos desenvolvedores na hora de publicar e manter aplicações. A arquitetura em que o OpenShift é feito permite conteinerizar as aplicações, fazendo com que a cada aplicação esteja isolada, possibilitando que seja escalada. Ele usa o Kubernetes, desenvolvido pela Google, para fazer o orquestramento de diversas instâncias de contêineres, fornecendo infraestrutura necessária para receber as aplicações. A plataforma foi criada utilizando a seguinte estrutura:

1

Diferente das demais plataformas, o OpenShift é muito simples de ser utilizado. Ele possui uma interface web que com poucos cliques toda a infraestrutura é criada. Existe também a opção de acessar o OpenShift através do terminal. Após a criação da instância, com mais um clique você pode criar uma cópia ou remover uma instância, escalando rapidamente a aplicação. Nessa opção, podem ser configurados scripts que dão mais liberdade ao usuário, como a possibilidade de agendar deploys automáticos.

Ainda, a plataforma permite que seja configurado o auto-scalling de cada uma das aplicações com base no consumo de CPU e memória. O OpenShift também traz resiliência à aplicação. Caso alguma dos contêineres caia, ele é imediatamente reiniciado.

Outro diferencial é a compatibilidade de funcionamento com diversas linguagens de programação e com diversos provedores de serviço. A plataforma pode hospedar aplicações em Java, PHP, Node, Asp NET Core entre outras.

2

Ao escolher a linguagem e apontar o endereço Git do projeto, a plataforma faz download do código e ainda instala as demais dependências do projeto, deixando a aplicação pronta para uso.

Problemas com deploy

Durante o deploy de uma aplicação, é comum ficarmos algum tempo com a aplicação indisponível. Isso se deve ao tempo gasto entre copiar os arquivos para o servidor e o servidor se reconfigurar.

Utilizando o OpenShift você pode deixar a aplicação todo o tempo disponível, mesmo durante a implantação. Caso o deploy gere erros, o rollback é feito imediatamente após o erro. Isso é possível porque durante o deploy, a plataforma cria uma nova instância com o novo build, porém mantém o antigo se mantém ativo até que se confirme o deploy correto da nova instância. Em caso de erro, a nova instância é removida, mantendo-se a antiga. Logo, a
aplicação fica disponível durante todo o tempo.

O OpenShift possui três tipos de distribuição:

  • A primeira é a versão Online. Nela, a própria RedHat fornece o serviço em nuvem, sendo que toda a infraestrutura é feita por conta deles. O acesso pode ser feito através do link: https://manage.openshift.com.
  • A segunda é a versão Origin. Essa é uma versão Open Source e pode ser utilizada gratuitamente. Nesse caso, é necessário ter um servidor e prover toda a infraestrutura. O download do código pode ser baixado no link: https://github.com/openshift/origin.
  • A terceira versão é a Enterprise. Essa versão é paga e suportada pela RedHat.

Mão na Massa:
Vamos disponibilizar uma aplicação simples em PHP utilizando a versão online do OpenShift.

1. Criar uma conta OpenShift Online:
Acesse o site: https://manage.openshift.com e clique em “sign up”. Registre uma nova conta e entre na plataforma.

3

2. Clique em “Open Web Console” para abrir a plataforma. Em seguida, clique em “Create Project” para criarmos um novo projeto.

4

3. Preencha os dados básicos do projeto e clique em “Create”.

5

4. Selecione a linguagem em que sua aplicação foi escrita. Para esse exemplo, utilizaremos a linguagem PHP. Veja que além das opções disponibilizadas pela plataforma, ainda é possível utilizar uma determinada imagem.

6

5. Selecione qual a opção de provedor de serviço você deseja. Para o nosso exemplo, selecione o PHP na versão 5.6.

7

6. Dê um nome ao código utilizado e coloque o endereço do Git onde está o código da sua aplicação e clique em “Create”. Como exemplo, foi criado um “hello world” em php, apenas como exemplo.

8

Veja que são apresentados algumas informações referentes ao acesso ao projeto via terminal.
Clique em “Continue to overview” para seguir em frente.

9

Nesse momento, o build do projeto é iniciado. É possível acompanhar os logs gerados e o
status do processo. Após o build, o deploy será feito automaticamente.

7. Após o deploy, clique no botão “Overview” no menu lateral à esquerda. Veja que sua aplicação está lá.

10

Observe que, no momento, apenas um pod está ativo. Ou seja, só existe uma instância da
aplicação rodando.

8. Para escalar a aplicação, basta clicar na seta para cima. A plataforma irá cuidar de toda a infra, sem causar nenhuma indisponibilidade. A partir daí, o controle de carga também é feito pela plataforma.

129. O site estará disponível no endereço que foi gerado pelo OpenShift online. Clique no endereço e veja o resultado.

13

Conclusão:
A conteinerização resolve diversos problemas de operação, dando maior liberdade para o desenvolvedor colocar suas aplicações em produção com segurança e tendo a oportunidade de voltar sem que haja indisponibilidade do sistema. Escalar aplicações evitando gargalos e lentidão na aplicação também são facilitadas, desde que as aplicações estejam preparadas para isso. Finalmente, o grande diferencial do OpenShift foi disponibilizar uma interface web de fácil utilização, provendo acesso aos logs e a uma interface de configuração muito simples.

Deixe um comentário