Implementando o código de aplicativo por meio de uma origem local

Vamos implementar um app hello world simples para ver como o Code Engine funciona. Siga as etapas para criar um projeto, preparar o código e implementar o app.

Revise os Termos do Cloud Foundry e do Code Engine antes de iniciar este tutorial.

Objetivos

  • Aprenda as semelhanças entre o Code Engine e o Cloud Foundry.
  • Aprenda o processo geral de implementação de apps no Code Engine.
  • Implemente um aplicativo por meio de código em seu sistema local com Code Engine.

Pré-requisitos

Antes de começar com o Code Engine, é necessário configurar a sua conta e instalar a CLI.

  • Todos os usuários do Code Engine são obrigados a ter uma conta pré-paga.

  • Enquanto é possível usar o Code Engine por meio do console, os exemplos nesta documentação se concentram na linha de comandos. Portanto, deve-se instalar a CLI do Code Engine.

    ibmcloud plugin install code-engine
    

    Para obter mais informações, consulte configurando o Code Engine CLI. Para obter mais informações sobre a CLI, consulte a Referência da CLI do Code Engine.

Todos os usuários do Code Engine são obrigados a ter uma conta pré-paga. Os tutoriais podem gerar custos adicionais. Use o Estimador de custos para gerar uma estimativa de custo com base em seu uso planejado. Para obter mais informações, consulte Code Engine precificação.

Efetue login na IBM Cloud

Siga estas etapas para efetuar login na sua conta da IBM Cloud e destinar um grupo de recursos.

  1. Efetue login na CLI do IBM Cloud .

    ibmcloud login
    
  2. Direcione um grupo de recursos executando o comando a seguir. Para obter uma lista de seus grupos de recursos, execute ibmcloud resource groups.

    ibmcloud target -g <resource_group>
    

    Saída de exemplo

    Targeted resource group default
    

Criando um projeto

Um "projeto" do Code Engine é semelhante a um "espaço" do Cloud Foundry na medida em que agrupa cargas de trabalho relacionadas a uma coleção lógica que é significativa para o desenvolvedor. É possível agrupar cargas de trabalho em diferentes projetos com base em qualquer critério que faça sentido para você, por exemplo, estrutura de organização da empresa, dependências entre as cargas de trabalho ou ambientes de desenvolvimento versus teste versus produção. É possível, então, configurar o acesso a esses projetos, semelhantemente à configuração do acesso ao Cloud Foundry orgs. Tenha em mente que as cargas de trabalho dentro de um único projeto compartilham uma rede privada e ficam isoladas dentro do limite de segurança do projeto. Todas as cargas de trabalho dentro de um projeto podem conversar entre si livremente sem preocupação de serem vistas por cargas de trabalho fora do cluster. Se as cargas de trabalho em diferentes projetos quiserem se comunicar entre si, a comunicação deverá utilizar a Internet ou uma rede privada IBM interna. Para mais informações, consulte Opções de visibilidade para um aplicativo Code Engine.

Crie um projeto no Code Engine chamado sample.

ibmcloud ce project create --name sample

Saída de exemplo

Creating project 'sample'...
ID for project 'sample' is 'abcdabcd-abcd-abcd-abcd-abcd12e3456f7'.
Waiting for project 'sample' to be active...
Now selecting project 'sample'.
OK

Note que o seu projeto também é selecionado para contexto, portanto, todos os comandos subsequentes relacionados ao aplicativo estão dentro do escopo deste novo projeto sample.

Criando um diretório e código-fonte

  1. Crie um diretório em sua estação de trabalho local que é nomeada myapp e navegue nele. Neste diretório, salve todos os arquivos que são necessários para construir a imagem e para executar seu app.

    mkdir myapp && cd myapp
    
  2. Crie um arquivo chamado server.js e copie o código-fonte a seguir nele.

    const http = require('http');
    
    
    http.createServer(function (request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
      response.end( "Hello world\n" );
    }).listen(8080);
    

    Este exemplo usa Node.js. É possível substituir código de qualquer tempo de execução suportado.

Implementando seu aplicativo

Envie por push o seu código para o Code Engine usando o comando application create. Deve-se fornecer um nome para o seu aplicativo e a localização do código-fonte. O exemplo a seguir cria um aplicativo chamado myapp que usa a estratégia buildpack e fornece o local para o código-fonte no diretório atual (.).

ibmcloud ce app create --name myapp --build-source . --strategy buildpacks

Saída de exemplo

Creating application 'myapp'...
Packaging files to upload from source path '.'...
Submitting build run 'myapp-run-220999-210706331'...
Creating image 'private.us.icr.io/ce--6ef04-khxrbwa0lci/app-myapp:220418-0207-askql'...
Waiting for build run to complete...
Build run status: 'Running'
Build run completed successfully.
Run 'ibmcloud ce buildrun get -n myapp-run-220000-210706331' to check the build run status.
Waiting for application 'myapp' to become ready.
Configuration 'myapp' is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready.
Run 'ibmcloud ce application get -n myapp' to check the application status.
OK

https://myapp.abcdbwa0lci.us-south.codeengine.appdomain.cloud

E aí está. Você agora tem um aplicativo voltado para a Internet. O código no próprio aplicativo é o mesmo que é usado para um aplicativo Cloud Foundry; apenas os comandos do Code Engine são ligeiramente diferentes.

Vamos olhar mais detalhadamente o comando app create anterior. Percebesse que a saída do comando app create fornece informações sobre a progressão do build run antes de o app ser criado e implementado.

  1. O Code Engine recebe uma solicitação para criar um aplicativo por meio do código-fonte (em vez de extrair diretamente de uma imagem).
  2. Code Engine verifica por uma ID de serviço IAM e chave API que está associada ao projeto selecionado. Este ID de serviço deve ser autorizado a ler e gravar em IBM Cloud Container Registry. Se nenhum ID de serviço existir, o Code Engine criará um para você. Note que este ID de serviço é usado para solicitações de construção do Code Engine subsequentes que são executadas por meio do mesmo projeto.
  3. Este exemplo constrói código a partir de uma fonte local (--build-source .). O código-fonte é empacotado em um arquivo de arquivo e carregado para um namespace gerenciado dentro da instância IBM Cloud Container Registry em sua conta. Note que você só pode destinar o IBM Cloud Container Registry para suas construções locais. Para obter mais informações sobre o IBM Container Registry, incluindo informações sobre limites de cotas e acesso, consulte Introdução ao IBM Cloud Container Registry.
  4. O Code Engine constrói seu código-fonte em uma imagem. A imagem de origem é criada no mesmo namespace do seu archive de origem.
  5. Após a conclusão da construção, seu aplicativo é implementada. É possível acessar seu aplicativo por meio da URL fornecida.

Com o Code Engine, você automaticamente recebe muitos dos mesmos recursos do Cloud Foundry, como ajuste automático de escala e lançamento de atualizações blue-green, mas também desfrutará dos benefícios de recursos mais recentes, como ajuste de escala para zero, garantindo que você não seja cobrado se o seu aplicativo não estiver ativo.

Quer saber mais sobre suas opções para a construção do seu código-fonte? Consulte os comandos application create e job create.

Quer aprender mais sobre aplicativos e tarefas? Consulte Trabalhando com apps no Code Engine e Trabalhando com tarefas e execuções de tarefa.

Limpar

Depois de concluir este tutorial, é possível limpar os recursos criados com os comandos a seguir.

Excluir seu aplicativo

ibmcloud ce app delete --name myapp

Quando você exclui seu app, os arquivos de construção associados também são excluídos.

Por último, exclua as imagens que a construção criou por meio do IBM Cloud Container Registry.

  1. Navegue até Registro no console IBM Cloud .
  2. Localize o archive e a imagem associados ao seu aplicativo procurando o nome do seu aplicativo.
  3. Selecione o archive e a imagem e exclua.

Próximas etapas

  1. Acabou de iniciar a migração? Confira a Introdução.
  2. Comparar a terminologia do Cloud Foundry com o Code Engine.
  3. Implementando o código de aplicativo por meio de uma fonte local (página atual)
  4. O seu aplicativo usa ligações de serviço? Confira Migrando suas ligações de serviços.
  5. Aprenda sobre ajuste de escala e gerenciamento de tráfego.
  6. Encontre equivalentes do Code Engine para comandos do Cloud Foundry.
  7. Ainda tem perguntas? Experimente as Perguntas mais frequentes de Migrando aplicativos Cloud Froundry para o Code Engine.

Outras Informações