Atenção para os prazos da Maratona Behind the Code! Saiba mais

Workshop: Implemente um aplicativo de microsserviços Java no IBM Cloud Code Engine

Este workshop aborda o tópico de aplicativos conteinerizados na plataforma gerenciada sem servidor IBM Cloud Code Engine. Os laboratórios fornecem a você um entendimento básico dos tópicos a seguir:

  • Como implementar um aplicativo de microsserviços Java conteinerizado, existente no Code Engine, usando o Code Engine CLI
  • Roteamento HTTP/HTTPS interno e externo entre os microsserviços
  • Monitoramento pronto para utilização para o aplicativo de exemplo
  • Criação de log pronta para a utilização do aplicativo de exemplo

Nota: Este workshop não abrange todos os aspectos de executar um aplicativo ou uma tarefa no Code Engine. Ele é apenas sobre aplicativos conteinerizados.

Pré-requisitos

Para acompanhar os laboratórios do workshop, deve-se ter uma conta pré-paga na IBM Cloud para acessar o Code Engine, o IBM Cloud Monitoring e o IBM Cloud Log Analysis.

Deve-se, também, ter um entendimento básico sobre aplicativos conteinerizados.

Tempo estimado

Este workshop de nível iniciante deve levar cerca de uma hora para ser concluído.

Arquitetura

Este workshop está relacionado com o projeto Cloud Native Starter, que utiliza uma versão customizada do exemplo de aplicativo de segurança.

O aplicativo de exemplo mostra, simplesmente, artigos protegidos com uma estrutura de gerenciamento de acesso e de identidade (IAM). Na figura a seguir, é possível ver o front end do aplicativo com os títulos dos artigos. E o usuário válido, chamado Alice, está conectado.

Diagrama de aplicação

O diagrama a seguir mostra a arquitetura do aplicativo de exemplo. Existe um aplicativo da web (web-app) de front-end que fornece o JavaScript e o código Vue.js para o navegador. O código do web-app em execução no navegador chama um API de REST do microsserviço da web-API. Por sua vez, o microsserviço da web-API chama um API de REST do microsserviço dos artigos. Keycloak é usado para o IAM desse aplicativo, com base em microsserviços. Para visualizar os resultados no aplicativo da web, os usuários devem ser autenticados e ter a função de usuário. A imagem a seguir mostra as dependências do exemplo.

Captura de tela do aplicativo de exemplo

Roteamento interno e externo

Para fins de contexto, é útil ter um entendimento básico do roteamento para o aplicativo de exemplo. Com base na funcionalidade do aplicativo, três rotas externas são necessárias. A comunicação de cada rota externa é protegida automaticamente com uma criptografia TLS, criada pelo Code Engine, com o Let’s Encrypt. Os três aplicativos são:

  • O web-app que está carregado no navegador
  • O keycloak que deve estar disponível para autenticação e autorização ao seu aplicativo, também para potencial configuração do IAM
  • O microsserviço da web-api, que fornece os dados dos artigos e é chamado pelo web-app

O microsserviço dos artigos não precisa ser chamado externamente, por isso é configurado para fornecer apenas uma rota interna, que é utilizada pelo microsserviço da web-api, para obter os artigos dele.

Noções básicas de implementação

Para facilitar sua implementação, eu criei previamente contêineres e os enviei por push para um registro de contêineres Quay. Na tabela a seguir, você verá o aplicativo (contêiner), as rotas expostas, os usos da criptografia TLS, a configuração de escalar para zero, o registro de contêiner de origem criado previamente, a configuração para a vCPU e a memória GB. Também as instâncias mínimas e máximas para os aplicativos.

Aplicativo Rota Criptografia TLS Escalar para zero Registro de contêiner vCPU Memória Mínimo de instâncias Máximo de instâncias
web-app externa sim sim Quay 0.5 1 GB 0 1
keycloak externa sim sim Docker 0.5 1 GB 1 1
web-api externa sim sim Quay 0.5 1 GB 0 1
artigos interna não (mTLS em breve não Quay 0.25 0.5 GB 0 1

O aplicativo keycloak, para a estrutura do IAM, não é configurado a escalar para zero. Porque ele é stateful e contém a configuração do domínio, que é excluída se você reiniciá-lo.

Nota: O projeto também contém o código-fonte, que é possível usar para customizar a sua própria versão do aplicativo de exemplo, com base em microsserviços.

Laboratórios

  1. Configure o aplicativo de exemplo
  2. Inspecione o projeto do Code Engine
  3. Monitore os aplicativos
  4. Registre os aplicativos
  5. Limpe o aplicativo de exemplo

Laboratórios opcionais

  1. Execute o aplicativo de exemplo localmente
  2. Envie por push os contêineres de exemplo para um registro contêiner