Esta produção é produto do projeto de pesquisa Estudos sobre a atualização tecnológica do ecossistema de informações do Tribunal de Justiça do Distrito e Territórios Federais. As opiniões expressas nesta publicação são de inteira e exclusiva responsabilidade dos autores, não expressando necessariamente o ponto de vista do Instituto Brasileiro de Informação em Ciência e Tecnologia ou do Ministério da Ciência, Tecnologia e Inovações. Como trabalhar com Containers no ambiente do Tribunal de Justiça do Distrito Federal e Territórios: Utilizando aplicativos em OpenShift/Rebeca dos Santos de Moura; Lucas Rodrigues Costa; Milton Shintaku.
Coordenador Geral de Tecnologias de Informação e Computação (CGTI) Tiago Emmanuel Nunes Braga Coordenador do Projeto Milton Shintaku Authors. Assim, faz-se necessária a atualização desses softwares livres com o modelo atualmente utilizado no desenvolvimento e manutenção dos sistemas judiciários. Nesse sentido, este documento visa apresentar a estrutura do ambiente computacional do TJDFT e ilustrar como deve ser atualizado o software livre para o modelo utilizado pelo tribunal, com base na experiência da equipe do Ibict que nele trabalha.
Isso ajuda outros profissionais e entidades do TJDFT que usam ambientes semelhantes a operar em situações semelhantes, mesmo que nem tudo seja descrito detalhadamente por questões de segurança. Da mesma forma, segue tendências inovadoras na estruturação de seu ambiente computacional, pois cada vez mais os órgãos governamentais precisam estar preparados para atender às necessidades de implantação, manutenção, atualização e evolução dos sistemas de informação. Nesse contexto, o TJDFT adota a utilização de containers em suas aplicações, mesmo que alguns dos sistemas legados ainda não estejam nesse ambiente, como é o caso da Revista RDJ e da Biblioteca Digital TJDFT (BDTJDFT).
O ambiente computacional TJDFT utiliza a abordagem DevOps1 (combinando as palavras desenvolvimento e operações), que combina cultura, automação e design de plataforma com o objetivo de agregar mais valor à empresa e aumentar sua capacidade de responder às mudanças com serviços rápidos e de alta qualidade . entrega.
GITLAB
DOCKER
KUBERNETES
OPENSHIFT
MICROSOFT TEAMS
Além da configuração do Docker, é necessário acesso aos internos TJDFT do OpenShift7 e GitLab8. O regimento do TJDFT solicita o preenchimento de formulário de solicitação de acesso à rede interna.
ACESSO AO PROJETO NO OPENSHIFT
Independente do sistema em questão, os projetos são executados em dois ambientes no OpenShift: Produção e Palco. Após selecionar o projeto (produção ou cena), vá em Resources e selecione Membership, conforme mostra a Figura 6. Na linha que aparece para inserção, clique em "Mostrar papéis ocultos", mostrado na Figura 8, para mostrar perfis adicionais de usuários . .
Assim, após selecionar um perfil na lista suspensa da Figura 10, insira um ponto na forma de “P” + os seis primeiros dígitos do CPF (exemplo P123456 ou PXXXXXX) do participante em questão e clique em “Adicionar” . Após clicar, uma confirmação aparece no canto superior direito da tela indicando que o perfil selecionado foi atribuído ao participante em questão, conforme Figura 11.
DOCKER
GITLAB
Basicamente, o arquivo "gitlab-ci.yml" descreve um conjunto de ações (jobs) que são executadas para enviar as imagens definidas no Dockerfile para o Openshift Registry. As variáveis são dados utilizados durante a execução do script e podem ser definidas no contexto global ou local de cada job. Cada trabalho está associado a um estágio e uma imagem do Docker e possui um único sinalizador que controla quando o trabalho será executado.
No exemplo mostrado, a tarefa "deploy_prod" é executada somente quando um tag é criado no repositório. Por fim, os comandos para cada tarefa que envia as imagens para o registro são definidos no sinalizador de script usando comandos do Docker. Além disso, algumas variáveis de ambiente são necessárias no projeto GitLab para que as tarefas do arquivo funcionem corretamente.
OPENSHIFT
Acesso pelo navegador
- Deployment
- Pods
- Serviços
- Rotas
O aplicativo representa um tipo de agrupamento disponível para determinados recursos de uma carga de trabalho. Para implantar um aplicativo, acesse Applications > Deployments no menu mostrado na Figura 13. Na página de implantação, clique no menu superior direito "Add to Project" e selecione a opção "Deploy Image", conforme mostrado na Figura 13.
Abre-se a janela mostrada na Figura 14, na qual é possível adicionar uma imagem para posicionamento de duas formas: Image Stream Tag e Image Name. A primeira opção (Image Stream Tag) é usada quando a imagem é previamente importada para o registro do OpenShift com as tarefas do GitLab. Depois de selecionar um projeto e uma imagem com o rótulo apropriado, você pode adicionar variáveis de ambiente ao contêiner e alterar seu nome.
Clicar no botão "Deploy" criará o aplicativo junto com o pod e os serviços conforme explicado abaixo. O pod no OpenShift é a menor unidade de computação que pode ser definida, implantada e gerenciada, representando um ou mais contêineres implantados juntos em um host. O OpenShift trata os pods como amplamente imutáveis, portanto, alterações estruturais não podem ser feitas enquanto um pod estiver ativo.
Em geral, um serviço é criado automaticamente quando um aplicativo que possui um serviço de rede é implantado. 12 Disponível em: https://gitlab.tjdft.jus.br/infraestrutura/openshift/integracao/dns 13 Disponível em: https://drive.tjdft.jus.br/index.php/s/D7dYX65pNi3ggAs. Uma rota permite acesso a pods (ou conjuntos de pods) fora do cluster do OpenShift.
A equipe de TI do TJDFT fornece um guia para criar rotas corretamente no OpenShift12. Nas configurações do OpenShift, os tipos de terminação de caminho são: Edge, Reencrypt ou Passthrough. Uma rota segura é publicada usando HTTPS (porta 443) ou redireciona solicitações de HTTP (porta 80) para HTTPS (porta 443) conforme mostrado no vídeo no endereço acessado na rede interna13.
Acesso pelo terminal
Depois de saber o nome do pod, você pode acessar seu terminal ou transferir arquivos entre a máquina host e o pod com os seguintes comandos. Esses comandos podem ser encontrados no próprio manual de referência online do OpenShift14. Este guia foi elaborado especificamente para o ambiente computacional do TJDFT de acordo com os padrões utilizados pela equipe de infraestrutura do Tribunal.
Portanto, pode ser útil para outras instituições que utilizam containers para manutenção de seus sistemas, ou estão em processo de adoção desta metodologia. Portanto, este guia apresenta as ferramentas utilizadas no modelo DevOps, utilizadas no ambiente computacional da infraestrutura do TJDFT. A seguir, foi descrito o processo de trazer uma aplicação para um container gerenciado no OpenShift.
Assim, apresenta toda a cadeia utilizada na gestão de sistemas automatizados em containers, apresentando todas as etapas necessárias, principalmente quando se utiliza software livre. Vale ressaltar que, devido ao grande volume de ofertas, cada vez mais ferramentas gratuitas têm sido utilizadas por instituições e órgãos governamentais, muitas das quais mantidas por instituições tradicionais de ensino e pesquisa. Diante disso, este guia procurou seguir todas as etapas necessárias para conteinerizar um aplicativo, principalmente software livre, seguindo as orientações do TJDFT.
Foram feitos esforços para contribuir com a documentação do projeto e também para auxiliar a equipe de infraestrutura do tribunal a suprir a necessidade de documentação técnica em português sobre o uso de contêineres.