Implementar microsserviços com o Red Hat OpenShift on IBM Cloud
Implementar microsserviços com o Red Hat OpenShift on IBM Cloud
Implementar microsserviços com o Red Hat OpenShift on IBM Cloud
Este tutorial pode incorrer em custos. Use o Estimador de custos para gerar uma estimativa do custo baseada em seu uso projetado.
Este tutorial demonstra como implementar aplicativos em Red Hat OpenShift on IBM Cloud. Red Hat OpenShift on IBM Cloud fornece uma ótima experiência para desenvolvedores
implementam aplicativos de software e para que os Administradores do Sistema possam escalar e observar as aplicações em produção.
Objetivos
Implantar um Red Hat OpenShift on IBM Cloud conjunto
Implementar um microsserviço
Escalar o microsserviço
Usar um operador para implementar o IBM Cloudant e ligar-se a um microsserviço
Observar o cluster usando o IBM Cloud Logs
Observar o cluster usando o IBM Cloud Monitoring
do
Um desenvolvedor inicializa um aplicativo Red Hat OpenShift com um repositório URL, resultando em um Builder, DeploymentConfig e Service.
O Builder clona a origem, cria uma imagem, a envia por push para o registro do Red Hat OpenShift para fornecimento da DeploymentConfig.
Os usuários acessam o aplicativo de front-end.
A instância de banco de dados do IBM Cloudant é provisionada por meio de um IBM Cloud Operator Service.
O aplicativo back-end é conectado ao banco de dados com uma ligação do IBM Cloud Operator.
O IBM Cloud Logs é provisionado e o agente implementado.
O Monitoring é provisionado e o agente implementado.
Um Administrador monitora o app com o IBM Cloud Logs e o Monitoring.
Há scripts que executam algumas das etapas abaixo. Ele é descrito no README.md Se ocorrerem problemas e você quiser iniciar novamente, basta executar o script destroy.sh e sequencialmente percorrer os scripts que correspondam às etapas para recuperação.
Antes de Iniciar
Este tutorial requer:
CLI do IBM Cloud,
Plug-in do IBM Cloud Kubernetes Service (kubernetes-service),
oc para interagir com o OpenShift.
Você encontrará instruções para fazer download e instalar essas ferramentas para o seu ambiente operacional no guia Introdução aos tutoriais.
Para evitar a instalação dessas ferramentas, é possível usar o Cloud Shell no console da IBM Cloud. Use oc version para assegurar que a versão do CLI do Red Hat OpenShift on IBM Cloud corresponda à sua versão
de cluster (4.12.x). Se eles não corresponderem, instale a versão correspondente seguindo estas instruções.
Crie um cluster Red Hat OpenShift on IBM Cloud
Com o Red Hat OpenShift on IBM Cloud, você tem uma maneira rápida e segura de colocar em contêineres e implantar cargas de trabalho corporativas em clusters. Os clusters do Red Hat OpenShift são baseados na orquestração de contêineres do Kubernetes,
que oferece consistência e flexibilidade para as operações do ciclo de vida do desenvolvimento.
Nesta seção, você provisionará um cluster Red Hat OpenShift on IBM Cloud em uma (1) zona com dois (2) nós do trabalhador:
Crie um cluster Red Hat OpenShift on IBM Cloud a partir do IBM Cloud® catálogo.
Defina o serviço de orquestração para a versão 4.12.x de Red Hat OpenShift on IBM Cloud.
Selecione sua autorização OCP.
Em Infraestrutura, escolha Clássica ou VPC
Para a infraestrutura do Red Hat OpenShift on VPC, é necessário ter uma VPC e uma sub-rede antes de criar o cluster Red Hat OpenShift on IBM Cloud. Crie ou inspecione o VPC desejado lembrando-se do seguinte (consulte as instruções fornecidas
em Criando um cluster VPC padrão):
Uma sub-rede que pode ser usada para esse tutorial; anote a zona e o nome da sub-rede
O gateway público é anexado à sub-rede
Selecione um serviço existente do Cloud Object Storage ou crie um novo, se necessário
Em Local
Para o Red Hat OpenShift na infraestrutura VPC
Selecione um Grupo de recursos
Desmarque as zonas inaplicáveis
Na zona desejada, verifique o nome de sub-rede desejado e, se não estiver presente, clique no lápis de edição para selecionar o nome de sub-rede desejado
Selecione 4 vCPUs com Memória de 16 GB como o tipo
Selecione 2 Nós do trabalhador por data center para este tutorial (clássico somente: deixe Criptografar disco local)
Em Integrações, ative e configure Criação de Log e Monitoramento.
Em Detalhes do recurso, defina o nome do cluster como -myopenshiftcluster, substituindo <your-initials> por suas próprias iniciais.
Clique em Criar para prover um cluster Red Hat OpenShift on IBM Cloud.
Anote o grupo de recursos selecionado acima. Esse mesmo grupo de recursos será usado para todos os recursos neste laboratório.
Inicializar um shell da nuvem
A CLI da Red Hat OpenShift Container Platform apresenta comandos para gerenciar seus aplicativos,
bem como ferramentas de nível inferior para interagir com cada componente do seu sistema. A CLI está disponível usando o comando oc.
Para evitar a instalação das ferramentas da linha de comandos, a abordagem recomendada é utilizar o IBM Cloud Shell.
O Shell do IBM Cloud é uma área de trabalho de shell baseada em nuvem que é possível acessar por meio de seu navegador. Ele é pré-configurado com a CLI completa do IBM Cloud, além de muitos plug-ins e ferramentas que podem ser usados para
gerenciar apps, recursos e infraestruturas.
Nesta etapa, você usará o shell do IBM Cloud e configurará o oc para apontar para o cluster designado a você.
Quando o cluster estiver pronto, clique no botão (ao lado da sua conta) no canto superior direito para ativar um Shell de nuvem. Assegure-se de não fechar essa janela/guia.
Verifique a versão da CLI do OpenShift:
oc version
A versão precisa ser, no mínimo, 4.12.x, caso contrário, instale a versão mais recente seguindo estas instruções.
Ao listar todos os clusters, você vê a opção Validar seu cluster:
ibmcloud oc clusters
Inicialize o ambiente de comando oc substituindo o espaço reservado
:
Nesta seção, você implementará um aplicativo Node.js Express chamado patient-health-frontend, uma interface com o usuário para um sistema de registros de saúde do paciente para demonstrar recursos do Red Hat OpenShift. É possível
localizar o repositório GitHub do aplicativo de amostra aqui: https://github.com/IBM-Cloud/patient-health-frontend
Criar projeto
Um projeto é uma coleção de recursos gerenciados por uma equipe do DevOps. Um administrador criará o projeto e os desenvolvedores podem criar aplicativos que podem ser construídos e implementados.
Navegue para o console da web do Red Hat OpenShift clicando no botão Console da web do OpenShift no Cluster selecionado.
Na área de janela de navegação esquerda, na perspectiva Administrador, selecione Início > Projetos para exibir todos os projetos.
Crie um novo projeto clicando em Criar projeto. No pop-up, Nomeie o projeto example-health, deixe Exibir nome e Descrição em branco e clique em Criar.
A nova página Detalhes do projeto do projeto é exibida. Observe que seu contexto é Administrador > Início > Projetos à esquerda e Projetos > Detalhes do projeto > exemplo de funcionamento na parte superior.
Construir e implementar o aplicativo
Alterne da perspectiva do Administrador para o Desenvolvedor. O seu contexto deve ser Desenvolvedor > +Adicionar à esquerda e Projeto: exemplo de funcionamento na parte superior.
Visualização de projeto.
Vamos construir e implementar o aplicativo selecionando Importar de Git.
Insira o repositório https://github.com/IBM-Cloud/patient-health-frontend.git no campo de URL do repositório Git.
Observe a verificação verde Builder image detected e o Node.js 16 (UBI 8).
Observe que a imagem do construtor detectou automaticamente a linguagem Node.js. Se não for detectado, selecione Node.js na lista fornecida.
Em Versão da imagem do Builder, deixe a padrão.
Nome do aplicativo: exclua todos os caracteres e deixe-o vazio (isso será padronizado para o Nome)
Nome: patient-health-frontend.
Clique no link Tipo de recurso e escolha DeploymentConfig..
Deixe as outras seleções padrão.
Clique em Criar na parte inferior da janela para construir e implementar o aplicativo.
Visualizar aplicativo
Você deve ver o app recém-implementado. Observe que você está na visualização Topologia do projeto example-health na perspectiva Desenvolvedor. Todos os aplicativos no projeto são exibidos.
Selecione o nópatient-health-frontend para apresentar a visualização de detalhes de DeploymentConfig. Observe o DC próximo a patient-health-frontend. Os
Pods, Construções, Serviços e Rotas são visíveis.
Detalhes do aplicativo..
Pods: seus contêineres de aplicativo Node.js
Construções: a construção gerada automaticamente que criou uma imagem do Docker por meio do código-fonte Node.js, implementou-a no registro de contêiner do Red Hat OpenShift e iniciou sua configuração de implementação
Serviços: informa ao Red Hat OpenShift como acessar seus Pods, agrupando-os como um serviço e definindo a porta na qual atender
Rotas: expõe seus serviços para o mundo externo usando o LoadBalancer fornecido pela rede do IBM Cloud
Clique em Visualizar logs próximo à construção concluída. Isso mostra o processo usado pelo Red Hat OpenShift para instalar as dependências para o aplicativo Node.js e construir/enviar por push uma imagem do Docker. A
última entrada deve ser semelhante a esta:
Clique de volta na Topologia e selecione seu app novamente.
Clique na URL em Rotas para visitar o seu aplicativo. Insira qualquer sequência para nome de usuário e senha, por exemplo, test:test, porque o app está em execução no modo de demonstração.
O app Node.js foi implementado no Red Hat OpenShift Container Platform. Para recapitular:
O aplicativo "Exemplo de funcionamento" em Node.js foi implementado diretamente do GitHub em seu cluster.
O aplicativo foi examinado no console Red Hat OpenShift on IBM Cloud.
Uma Configuração de construção foi criada - uma nova confirmação pode ser construída e implementada clicando em Iniciar construção na seção Construções dos detalhes do aplicativo.
Criação de logs e monitoramento
Nesta seção, você explorará os recursos de criação de log e de monitoramento prontos para usar oferecidos no Red Hat OpenShift on IBM Cloud.
Simular carga no aplicativo
Crie um script para simular carga.
Certifique-se de estar conectado ao projeto no qual o app foi implementado.
oc project example-health
Recupere a rota pública para acessar seu aplicativo:
oc get routes
A saída é semelhante a esta, observe seu valor para o Host:
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
patient-health-frontend patient-health-frontend-example-health.roks07-872b77d77f69503584da5a379a38af9c-0000.eu-de.containers.appdomain.cloud patient-health-frontend 8080-tcp None
Defina uma variável com o host:
HOST=$(oc get routes -o json | jq -r '.items[0].spec.host')
Verifique o acesso ao aplicativo. Ele gera informações do paciente:
Execute o script a seguir que enviará solicitações infinitamente para o aplicativo e gerará tráfego:
while sleep 0.2; do curl --max-time 2 -s -L http://$HOST/info >/dev/null; echo -n "."done
Pressione CTRL + c no teclado a fim de parar o script
Red Hat OpenShift on IBM Cloud Criação de log
Como há apenas um pod, a visualização dos logs do aplicativo será direta.
Assegure-se de que você esteja na visualização Topologia da perspectiva Desenvolvedor.
Selecione o app para acessar o pod.
Clique em Visualizar logs ao lado do nome do pod em Pods para ver os logs de streaming do aplicativo em execução. Se você ainda estiver gerando tráfego, você deverá ver mensagens de log para cada solicitação
que estiver sendo feita.
Logs do pod.
Terminal do Red Hat OpenShift on IBM Cloud
Uma das grandes coisas sobre o Kubernetes é a capacidade de depurar rapidamente seus pods do aplicativo com terminais SSH. Isso é ótimo para o desenvolvimento, mas geralmente não é recomendado em ambientes de produção. O site Red Hat OpenShift
torna isso ainda mais fácil, permitindo que você inicie um terminal diretamente no painel.
Alterne da guia Logs para a guia Terminal.
Execute os comandos Shell a seguir:
Exemplos de comandos Shell para executar
Comando
Descrição
ls
Listar os arquivos do projeto.
ps aux
Listar os processos em execução.
cat /etc/redhat-release
Mostrar o S.O. subjacente.
curl localhost:8080/info
saída do processo de app.js do nó
Red Hat OpenShift on IBM Cloud Monitoramento
Ao implementar novos apps, fazer mudanças na configuração ou simplesmente inspecionar o estado de seu cluster, o painel do escopo do projeto fornece insights claros do Desenvolvedor.
Acesse o painel na perspectiva do desenvolvedor clicando em Observar no menu do lado esquerdo.
Você também pode mergulhar em um pouco mais profundo clicando na aba Eventos. Os Eventos são úteis para identificar a linha do tempo dos eventos e para localizar possíveis mensagens de erro. Ao rastrear
o estado de um novo lançamento, gerenciar ativos existentes ou até mesmo algo simples, como expor uma rota, a visualização Eventos é crítica na identificação da linha de tempo de atividade. Isso se torna ainda mais útil ao considerar que
vários operadores podem estar trabalhando em um único cluster.
Quase todas as ações no Red Hat OpenShift resultam no disparo de um evento nessa visualização. Como ele é atualizado em tempo real, é uma ótima maneira de rastrear mudanças no estado.
Métricas e painéis
Nesta seção, explore os painéis de monitoramento e métricas incluídos em Red Hat OpenShift.
Painéis
Red Hat OpenShift vem com dashboards predefinidos para monitorar seus projetos.
Comece alternando da perspectiva Desenvolvedor para a perspectiva Administrador:
Navegue até Observar > Painéis na barra esquerda.
Selecione Kubernetes/Recursos de computação/Espaço de nomes (Pods) na lista suspensa e Espaço de nomes para exemplo de funcionamento.
Observe o uso de CPU e memória para seu aplicativo. Em ambientes de produção, isso é útil para identificar a quantia média de CPU ou de memória usada por seu aplicativo, especialmente porque é possível flutuar durante o dia. O ajuste automático
de escala é uma maneira de manipular as flutuações e será demonstrado um pouco mais tarde.
Métricas
Red Hat OpenShift fornece uma interface web para executar consultas e examinar as métricas visualizadas em um plot. Essa funcionalidade fornece uma visão geral extensiva do estado do cluster e permite solucionar problemas.
Navegue até Observe> Metrics.
Insira a expressão a seguir e clique em Executar consultas. O valor e o gráfico associado deverão ser exibidos com a consulta.
Nesta seção, as métricas observadas na seção anterior poderão ser usadas para escalar o aplicativo da IU em resposta à carga.
Ativar limites de recurso
Antes de ajustar automaticamente a escala, os limites máximos de recursos de CPU e de memória devem ser estabelecidos.
Os painéis anteriores mostraram que a carga estava consumindo algo entre ".002" e ".02" núcleos. Isso se traduz em 2 a 20 "milinúcleos". Para ser seguro, vamos aumentar o limite superior para 30 milinúcleos. Além
disso, os dados mostraram que o app consome cerca de 25-65 MB de RAM. As etapas a seguir configurarão os limites de recursos em DeploymentConfig
Certifique-se de que o script para gerar tráfego esteja em execução.
Alterne para a perspectiva Administrador.
Navegue até Cargas de Trabalho > DeploymentConfigs.
Selecione o projeto exemplo de funcionamento.
No menu Ações (os três pontos verticais) de patient-health-frontend, escolha Editar ImplanmentConfig.
Implementações
Na Visualização do YAML, localize a seção spec > template > spec > containers e inclua os limites de recursos a seguir nos recursos vazios. Substitua o resources {} e assegure-se
de que o espaçamento esteja correto -- o YAML usa indentação estrita.
Verifique se o controlador de replicação foi alterado navegando para a guia Eventos:
Limites de Recursos..
Ativar o escalador automático
Agora que os limites de recursos estão configurados, o ajustador de escala automático do pod pode ser ativado.
Por padrão, o escalador automático permite escalar com base na CPU ou na memória. Os pods são balanceados entre o número mínimo e o número máximo de pods especificados. Com o escalador automático, os pods são criados ou excluídos automaticamente
para assegurar que o uso médio de CPU dos pods esteja abaixo do destino de solicitação da CPU, conforme definido. Em geral, você provavelmente desejará começar o ajuste de escala quando chegar perto de 50 a 90%
de uso da CPU de um pod. Em nosso caso, 1% pode ser usado com a carga que está sendo fornecida.
Navegue até a perspectiva Administrador, Cargas de trabalho > HorizontalPodAutoscalers e, em seguida, clique em Criar HorizontalPodAutoscaler.
Se você não estiver executando o script para simular carga, o número de pods deverá ficar em 1.
Confira abrindo a página Visão geral da configuração de implementação. Clique em Cargas de trabalho > DeploymentConfigs e em patient-health-frontend e selecione o painel
Detalhes.
Comece a simular a carga (consulte a seção anterior para simular a carga no aplicativo).
Escalado para 4/10 pods
Pode levar alguns minutos para o escalador automático fazer ajustes.
É isso! Agora você tem um aplicativo front-end Node.js altamente disponível e dimensionado automaticamente. Red Hat OpenShift está dimensionando automaticamente os pods do aplicativo, pois o uso da CPU dos pods excedeu em muito 1%
do limite de recursos, 30 milicores.
Fazendo o ajuste automático de escala na linha de comandos
Também é possível excluir e criar recursos, como escaladores automáticos, com a linha de comandos.
Comece verificando se o contexto é seu projeto:
oc project example-health
Obtenha o escalador automático criado anteriormente:
oc get hpa
Exclua o escalador automático criado anteriormente:
oc delete hpa/patient-hpa
Crie um novo escalador automático com um máximo de nove pods:
Revisite a página de detalhes Cargas de trabalho > DeploymentConfigs para obter a implementação patient-health-frontend e veja ela trabalhando.
Usando o IBM Cloud Operator para criar um Cloudant DB
Atualmente, o app patient-health-frontend do Exemplo de saúde está usando um paciente simulado contido na memória. Neste exercício, você criará um serviço do Cloudant no IBM Cloud e o preencherá com dados do paciente. O Cloudant
é um banco de dados como um serviço NoSQL, baseado no CouchDB.
Ativar o IBM Cloud Operator
Vamos entender exatamente como os Operadores funcionam. No primeiro exercício, você usou um construtor para implementar um aplicativo simples usando um DeploymentConfig um tipo de recurso padrão que vem com Red Hat OpenShift.
Uma definição de recurso personalizado permite que você crie tipos de recursos que não vêm pré-instalados no site Red Hat OpenShift on IBM Cloud, como o serviço IBM Cloud. Os operadores gerenciam o ciclo de vida de recursos e criam Descritores
de recurso customizado, CRDs, permitindo gerenciar recursos customizados do modo nativo "Kubernetes".
Na perspectiva Administrador, clique em Operadores > OperatorHub.
Localize o IBM Cloud Operator e clique em Instalar.
Mantenha as opções padrão e clique em Instalar.
Após alguns segundos installed operator - ready for use deve ser exibido.
Criar um serviço do Cloudant e ligar usando os CRDs
Clique para abri-lo. Role para baixo até a seção Pré-requisitos.
Uma chave de API com as permissões apropriadas para criar um banco de dados IBM Cloudant é necessária nesta seção. A chave de API será armazenada em um recurso Segredo do Kubernetes. Isso precisará ser criado usando o shell. Há instruções
na seção Pré-requisitos do operador instalado. Etapas:
Use os mesmos grupo de recursos e região que estão associados ao seu cluster.
ibmcloud target -g <resource_group> -r <region>
Para ver os grupos de recursos em sua conta, execute o comando ibmcloud resource groups
Verifique se o grupo de recursos e a região correspondem ao cluster. O comando a seguir deve retornar o seu cluster
ibmcloud oc cluster ls
A saída é algo semelhante a isto:
$ ibmcloud oc cluster ls
OK
Name ID State Created Workers Location Version Resource Group Name Provider
osmicro ck68svdd0vvcfs6ad9ag normal 18 hours ago 2 Dallas 4.12.26_1562_openshift default vpc-gen2
Use o script auxiliar fornecido pela IBM para criar os recursos a seguir:
Chave de API do IBM Cloud que representa você e suas permissões para usar o IBM Cloud
O Segredo do Kubernetes denominado secret-ibm-cloud-operator no namespace default. Esse segredo tem as chaves api-key e region. O operador usará esses dados para criar a instância de
serviço do cloudant.
O recurso ConfigMap do Kubernetes com o nome config-ibm-cloud-operator no namespace default para manter a região e o grupo de recursos
No console da web do Red Hat OpenShift, clique em Criar serviço na guia Serviço em Operadores instalados da página IBM Cloud Operator e selecione Visualização do YAML para abrir o editor yaml.
Faça as substituições sugeridas quando serviceClass for cloudantnosqldb; o plano poderá ser Lite ou Standard (apenas um plano Lite é permitido por conta). Substitua<your-initials>:
Clique em Criar para criar uma instância de banco de dados do IBM Cloudant. Seu contexto deve ser Operadores > Operadores instalados > IBM Cloud Operator na perspectiva
do Administrador com o Projeto: example-health no painel Serviço.
Clique no serviço que acabou de ser criado, -cloudant-service e, com o tempo, o campo de estado mudará de provisionamento para Online, o
que significa que ele está pronto para funcionar.
Crie um recurso de Ligação e um recurso Secreto para o recurso de Serviço do Cloudant recém-criado. Navegue novamente para a guia Operadores > Operadores instalados > IBM Cloud Operator > Ligação. Abra a guia Ligação, clique em Criar ligação e selecione Visualização do YAML. Crie um cloudant-binding associado com o serviceName <your-initials>-cloudant-service,
(esse é o nome fornecido para o Serviço criado anteriormente).
Opcionalmente, aprofunde-se um pouco mais para entender o relacionamento entre os recursos do Red Hat OpenShift: Serviço, Ligação do serviço, Segredo da ligação e os recursos do IBM Cloud:
Serviço, Instância do serviço e as Credenciais de serviço da instância. Usando o shell de nuvem:
youyou@cloudshell:~$ ibmcloud resource service-instances --service-name cloudantnosqldb
Retrieving instances with type service_instance in all resource groups in all locations under ..
OK
Name Location State Type
<your-initials>-cloudant-service us-south active service_instance
youyou@cloudshell:~$ ibmcloud resource service-instance <your-initials>-cloudant-service
Retrieving service instance <your-initials>-cloudant-service in all resource groups under ...
OK
Name: <your-initials>-cloudant-service
ID: crn:v1:bluemix:public:cloudantnosqldb:us-south:a/0123456789507a53135fe6793c37cc74:SECRET
GUID: SECRET
Location: us-south
Service Name: cloudantnosqldb
Service Plan Name: standard
Resource Group Name: Default
State: active
Type: service_instance
Sub Type:
Created at: 2020-05-06T22:39:25Z
Created by: youyou@us.ibm.com
Updated at: 2020-05-06T22:40:03Z
Last Operation:
Status create succeeded
Message Provisioning is complete
Updated At 2020-05-06 22:40:03.04469305 +0000 UTC
youyou@cloudshell:~$ ibmcloud resource service-keys --instance-name $YOURINITIALS-cloudant-service --output json
[
{
"guid": "01234560-902d-4078-9a7f-20446a639aeb",
"id": "crn:v1:bluemix:public:cloudantnosqldb:us-south:a/0123456789507a53135fe6793c37cc74:SECRET",
"url": "/v2/resource_keys/01234560-902d-4078-9a7f-20446a639aeb",
"created_at": "2020-05-06T23:03:43.484872077Z",
"updated_at": "2020-05-06T23:03:43.484872077Z",
"deleted_at": null,
"name": "cloudant-binding",
"account_id": "0123456789507a53135fe6793c37cc74",
"resource_group_id": "01234567836d49029966ab5be7fe50b5",
"source_crn": "crn:v1:bluemix:public:cloudantnosqldb:us-south:a/0123456789507a53135fe6793c37cc74:SECRET",
"state": "active",
"credentials": {
"apikey": "SECRET",
"host": "SECRET",
"iam_apikey_description": "Auto-generated for key SECRET",
"iam_apikey_name": "cloudant-binding",
"iam_role_crn": "SECRET",
"iam_serviceid_crn": "SECRET",
"password": "SECRET",
"port": 443,
"url": "https://01234SECRET",
"username": "01234567-SECRET"
},
"iam_compatible": true,
"resource_instance_url": "/v2/resource_instances/SECRET",
"crn": "crn:v1:bluemix:public:cloudantnosqldb:us-south:a/0123456789507a53135fe6793c37cc74:SECRET"
}
]
Implementar o app Node.js do banco de dados back-end do paciente
Agora você criará o app Node.js que preencherá o seu BD Cloudant com dados do paciente. Ele também entregará dados para o aplicativo front-end implementado anteriormente.
Certifique-se de que seu contexto seja o projeto example-health:
oc project example-health
O comando new-app a seguir fará uma configuração de construção e uma configuração de implementação. A seguir, uma demonstração da chamada da CLI do aplicativo de inclusão (lembre-se de usar o console da GUI para o front-end):
No console e na visualização Topologia da perspectiva do Desenvolvedor, abra o app patient-health-backend e aguarde a construção ser concluída. Observe que a inicialização do Pod está falhando. Clique nos logs do Pod para ver:
> node app.js
/opt/app-root/src/app.js:23
throw("Cannot find Cloudant credentials, set CLOUDANT_URL.")
^
Cannot find Cloudant credentials, set CLOUDANT_URL.
Vamos corrigir isso configurando a variável de ambiente do DeploymentConfig para o segredo cloudant-binding criado anteriormente na seção de ligação do operador. Navegue até a configuração de implementação
para o aplicativo patient-health-backend clicando no aplicativo e, em seguida, selecionando o nome ao lado de DC:
Configuração de Implementação
Acesse a guia Ambiente, clique em Incluir por meio do ConfigMap ou Segredo e crie uma nova variável de ambiente denominada CLOUDANT_URL. Escolha o segredo cloudant-binding e, em seguida, escolha url para a Chave. Clique em Salvar.
Ambiente do Segredo
Volte para a guia Topologia e clique em patient-health-backend. Verifique a seção Pods, que deve indicar Em execução em breve. Clique em Visualizar logs ao lado do pod em execução e observe os bancos de dados criados.
Configurar o app Patient Health Frontend para usar o app Patient Health Backend
O aplicativo patient-health-frontend tem uma variável de ambiente para a URL de microsserviço de back-end.
Configure a variável de ambiente API_URL como default no front-end DeploymentConfig. Navegue até a configuração de implementação para o app patient-health-frontend clicando
no app front-end na visualização Topologia e selecionando o nome ao lado próximo a DC:
Acesse a guia Ambiente e, na seção Valores únicos (env), inclua um nome API_URL e um valor default. Clique em Salvar e, em seguida, em Recarregar.
Isso resultará em uma conexão com http://patient-health-backend:8080/, que será possível verificar examinando os logs do pod. É possível verificar se esta é a porta correta varrendo a saída Pod Template / Containers / Port deste comando:
oc describe dc/patient-health-backend
Seu aplicativo agora é suportado pelos dados mock do paciente no BD Cloudant. Agora é possível efetuar login usando qualquer ID do usuário/senha no banco de dados do Cloudant, com "opall:opall".
Em um aplicativo do mundo real, essas senhas não devem ser armazenadas como texto sem formatação. Para revisar os pacientes (e logins alternativos) no banco de dados do Cloudant, navegue até seus services na
Lista de recursos da IBM Cloud. Clique em -cloudant-service.
Ative o painel do Cloudant clicando no botão Ativar painel e, em seguida, clique no banco de dados patients.
Clique nos diferentes pacientes com os quais você pode fazer login.
Encaminhar os registros e o monitoramento do Red Hat OpenShift on IBM Cloud para os serviços IBM
Os logs do cluster podem ser encaminhados para o serviço de log IBM Cloud® e integrados a um ambiente completo de análise e armazenamento de logs para a nuvem - consulte Logging para clusters.
As métricas do cluster podem ser integradas ao sistema de monitoramento da nuvem - Monitoramento da integridade do cluster
Pode levar alguns minutos para que os dados de registro e métricos fluam pelos sistemas de análise, portanto, é melhor conectar ambos nesse momento para uso posterior.
Monitore seu cluster
IBM Cloud Monitoring é um sistema de gerenciamento de inteligência de contêiner nativo de nuvem que pode ser incluído como parte de sua arquitetura da IBM Cloud. Use-o para obter visibilidade operacional para o desempenho e o funcionamento de
seus aplicativos, serviços e plataformas. Ele oferece aos administradores, às equipes do DevOps e aos desenvolvedores telemetria de pilha completa com recursos avançados para monitorar e solucionar problemas de desempenho, definir alertas
e projetar painéis customizados. Saiba mais.
Nas próximas etapas, você aprenderá como usar painéis e métricas para monitorar o funcionamento da seu aplicativo.
Visualizar visualizações e painéis de monitoramento predefinidos
Use visualizações e painéis para monitorar sua infraestrutura, aplicativos e serviços. É possível usar painéis predefinidos. Também é possível criar painéis customizados por meio da IU da web ou programaticamente. É possível fazer backup e
restaurar painéis usando scripts Python.
A tabela a seguir lista os diferentes tipos de painéis predefinidos:
Subconjunto de painéis predefinidos existentes
Tipo
Descrição
Status da Carga e Desempenho
Painéis que você pode usar para monitorar seus pods.
Node Status e desempenho
Painéis que podem ser usados para monitorar a utilização de recurso e a atividade do sistema em seus hosts e em seus contêineres.
Rede
Painéis que podem ser usados para monitorar suas conexões de rede e atividade.
Clique em seu cluster e verifique se a guia Visão geral à esquerda está selecionada
Na seção Integrações ao lado de Monitoramento, selecione o botão Ativar.
Os dados iniciais podem NÃO estar disponíveis nas instâncias do Monitoring recém-criadas.
Após alguns minutos, os dados brutos serão exibidos
Após cerca de uma hora, a indexação fornecerá o detalhe necessário para continuar com este tutorial
Na seção Dashboards, selecione Kubernetes > Pod Status & Performance para visualizar as métricas brutas de todas as cargas de trabalho em execução no cluster.
Configure o filtro namespace para exemplo-saúde para se concentrar nos pods de sua aplicação.
Em Painéis, na área de janela esquerda, expanda Aplicativos em Modelos de painel. Em seguida, selecione HTTP para obter uma visualização global da carga de HTTP do cluster.
Explorar o cluster e a capacidade de nó
Selecione Painéis e confira os dois modelos de painel:
Contêineres > Uso de recurso de contêiner
Infraestrutura de host > Uso de recurso de host
Selecione o modelo Kubernetes > Pod Rightsizing & Workload Capacity Optimization. Este painel ajuda você a otimizar sua infraestrutura e melhor controlar o gasto de cluster, por garantir que os
pods sejam dimensionados corretamente. Entenda se você pode liberar recursos, reduzindo as solicitações de memória e / ou CPU.
Explore o aplicativo
Selecione Painéis e o modelo Kubernetes > Status da carga de trabalho e desempenho.
Um painel detalhado que mostra todos os pods no cluster
Crie um painel customizado e, em seguida, defina o escopo dele para um namespace específico.
Na parte superior direita, clique em Copiar para meus painéis e nomeie-o Workload Status & Performanceapp example-health
Clique em Criar e abrir para criar seu próprio painel..
Edite o escopo do painel.
Configure o filtro para kube_namespace_name. is, example-health.
Clique em Salvar.
O painel agora mostra informações focadas no namespace example-health.
Role para baixo até os TimeCharts de solicitações HTTP, latência, erro, ... para entender o desempenho do aplicativo.
Na Lista de recursos, localize e exclua os recursos que deseja remover:
Excluir o cluster do Red Hat OpenShift on IBM Cloud
Para excluir os recursos do Red Hat OpenShift sem excluir o cluster, execute os comandos abaixo:
oc delete all --all --namespace example-health
oc delete project/example-health
Exclua a instância do IBM Cloud Logs
Excluir IBM Cloud Monitoring
Exclua o IBM Cloudant e ligue-se a um microsserviço
Serviço IBM Cloudant
Dependendo do recurso, ele não é excluído imediatamente, mas retido (por padrão por 7 dias). É possível recuperar o recurso excluindo-o permanentemente ou restaurando-o dentro do período de retenção. Consulte este documento sobre como usar a recuperação de recurso.