IBM Cloud Docs
Introdução ao IBM Cloud Code Engine

Introdução ao IBM Cloud Code Engine

O IBM Cloud® Code Engine é uma plataforma totalmente gerenciada, serverless, que executa suas cargas de trabalho conteinerizadas, incluindo apps da web, microsserviços, funções orientadas a eventos ou tarefas em lote. O Code Engine até constrói imagens de container para você por meio de seu código-fonte. Todas essas cargas de trabalho podem trabalhar juntas perfeitamente porque estão todas hospedadas dentro da mesma infraestrutura de Kubernetes. A experiência do Code Engine foi projetada para que seja possível se concentrar na composição do código e não na infraestrutura necessária para hospedá-lo. 

Primeiro, aprenda alguns termos principais para Code Engine e depois inicie com uma das opções a seguir.

O que são projetos, aplicativos, trabalhos, funções e frotas do Code Engine?

Antes de começar, familiarize-se com alguns termos chave do Code Engine. Depois, você pode testar seus conhecimentos e responder a um questionário!

Code Engine Termos
Termo Descrição
Project Um projeto é um agrupamento de entidades do Code Engine como aplicativos, tarefas e construções. Os projetos são usados para gerenciar recursos e fornecer acesso às suas entidades.
Aplicativo Um aplicativo ou app executa o seu código para entregar solicitações de HTTP. Um aplicativo tem uma URL para solicitações recebidas. O número de instâncias em execução de um aplicativo é automaticamente aumentado ou diminuído (para zero) com base na carga de trabalho recebida.
Construir Uma construção, ou construção de imagem, é um mecanismo que você pode usar para criar uma imagem de contêiner por meio do seu código-fonte. O Code Engine suporta a construção por meio de um Dockerfile ou Cloud Native Buildpacks.
Função Uma função é um trecho de código sem estado que executa tarefas em resposta a uma solicitação HTTP.
Tarefa Um trabalho executa uma ou mais instâncias do seu código executável em paralelo. Ao contrário dos aplicativos, que incluem um servidor HTTP para manipular as solicitações recebidas, as tarefas são projetadas para serem executadas uma vez e saírem.
Frota Uma frota, também chamada de frota sem servidor, executa uma ou mais instâncias de código de usuário para concluir uma série de tarefas especificadas. As frotas são projetadas para lidar com cargas de trabalho grandes e pesadas de computadores. Ao contrário dos trabalhos, as frotas são de locatário único, implementam o enfileiramento dinâmico de tarefas e fornecem controle total sobre a configuração do perfil da máquina. Para obter mais informações, consulte Qual é a diferença entre empregos e frotas?

Para obter mais informações sobre os termos, consulte Terminologia do Code Engine.

Não tem certeza do que escolher? Consulte Planejamento do Code Engine.

Como os aplicativos, os trabalhos, as funções e as frotas se comparam?

Comparação de aplicativos, trabalhos e funções do site Code Engine
Característica Aplicativo Tarefa Função Frota
Tempo de execução (duração) Longa duração (10 minutos por solicitação) Longa duração (até 24 horas) Curta duração (2 minutos ou menos) Longa duração (minutos a semanas)
Latência de inicialização Médio Início programado Baixo Baixo
Rescisão Executar continuamente Execução até a conclusão Execução até a conclusão Execução até a conclusão
Chamada Sob solicitação ou em funcionamento permanente Planejado Mediante solicitação, instantâneo Planejado
Modelo de Programação Construção e execução baseadas em contêineres Construção e execução baseadas em contêineres Arquivos de código-fonte específicos do idioma e metadados de dependência Construção e execução baseadas em contêineres
Paralelismo Execução paralela, flexível Execução paralela baixa a média Alta execução paralela Alta execução paralela e enfileiramento
Ampliação Com base no número de solicitações Com base na definição da carga de trabalho Com base em eventos ou invocações diretas Com base no número de tarefas e instâncias simultâneas
Otimizado para Carga de trabalho altamente complexa e de longa duração e escalonamento sob demanda Cargas de trabalho programadas ou planejadas com alta demanda de recursos Tempo de inicialização e rápida expansão Cargas de trabalho grandes e com uso intensivo de computação

Para obter mais informações, consulte Planejamento para Code Engine.

Implementando seu primeiro app Code Engine

Crie seu primeiro app do Code Engine usando a imagem icr.io/codeengine/helloworld.

  1. Abra o console Code Engine.
  2. Selecione Iniciar criação.
  3. Selecione um projeto na lista de projetos disponíveis. Também é possível criar um novo. Observe que deve-se ter um projeto selecionado para implementar um app.
  4. Selecione Aplicativo.
  5. Insira um nome para o aplicativo, por exemplo, myapp. Use um nome para seu aplicativo que seja exclusivo dentro do projeto.
  6. Selecione para executar uma Imagem de contêiner e especifique icr.io/codeengine/helloworld para a referência de imagem. Para este exemplo, não é necessário modificar os valores padrão Para obter mais informações sobre o código que é usado para este exemplo, consulte helloworld.
  7. Clique em Criar.
  8. Após o status do aplicativo mudar para Pronto, será possível testar o aplicativo. Clique em Testar aplicativo e, em seguida, clique em Enviar solicitação na área de janela Testar aplicativo. Para abrir o aplicativo em uma página da web, clique em URL do aplicativo.

Saída de exemplo

Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)

Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-5b5895fdf7-abcd
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1
z=Set env var 'SHOW' to see all variables

Você implementou seu primeiro aplicativo no Code Engine e o testou. Acesse o Tutorial: Implementando aplicativos ou Trabalhando com aplicativos no Code Engine para experimentar mais opções para aplicativos.

Executando sua primeira tarefa do Code Engine

Crie e execute sua primeira tarefa do Code Engine usando a imagem icr.io/codeengine/helloworld.

  1. Abra o console Code Engine.
  2. Selecione Iniciar criação.
  3. Selecione um projeto na lista de projetos disponíveis. Também é possível criar um novo. Observe que deve-se ter um projeto selecionado para criar uma tarefa.
  4. Selecione Tarefa.
  5. Digite um nome para o trabalho, por exemplo, myjob. Use um nome para a sua tarefa que seja exclusivo dentro do projeto.
  6. Especifique icr.io/codeengine/helloworld para a referência de imagem. Para este exemplo, não é necessário modificar os valores padrão Para obter mais informações sobre o código que é usado para este exemplo, consulte helloworld.
  7. Clique em Criar.
  8. Na sua página de tarefa, clique em Enviar tarefa para enviar uma tarefa com base na configuração atual.
  9. No painel Enviar tarefa, aceite todos os valores padrão e clique em Enviar tarefa novamente para executar sua tarefa.

Quando o registro está ativado, o exemplo a seguir é exibido nos registros. Para saber sobre a execução de tarefas com a criação de log ativada, consulte Visualizando logs.

Exemplo de saída da instância de criação de log.

Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)

Some Env Vars:
--------------
CE_DOMAIN=us-east.codeengine.appdomain.cloud
CE_JOB=myjob
CE_JOBRUN=myjob-jobrun-xgpmz
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myjob-jobrun-abcde-0-0
JOB_INDEX=0
...
z=Set env var 'SHOW' to see all variables

Você criou e executou sua tarefa por meio do console. Acesse o Tutorial: executando tarefas ou Executando tarefas no Code Engine para experimentar mais opções de tarefas.

Executando sua primeira função

Crie e execute sua primeira função Code Engine com código de função de amostra.

  1. Abra o console Code Engine.
  2. Selecione Iniciar criação.
  3. Selecione um projeto na lista de projetos disponíveis. Também é possível criar um novo. Observe que você deve ter um projeto selecionado para criar uma função.
  4. Selecione a função.
  5. Digite um nome para a função. Use um nome exclusivo para sua função dentro do projeto.
  6. Selecione Node.js 20
  7. Clique em Criar. Sua função é criada com código de amostra. É possível editar este código na página Função-> Configuração
  8. Clique em Função de teste e, em seguida, clique em Enviar solicitação no painel Função de teste. Para abrir a função em uma página da web, clique em Função URL.

Saída de exemplo

{
  "args": {
    "__ce_headers": {
      "Accept-Encoding": "gzip, deflate, br",
      "User-Agent": "got (https://github.com/sindresorhus/got)",
      "X-Request-Id": "12340a7b-11c0-4de3-f16b-a6abc27f4146"
    },
    "__ce_method": "GET",
    "__ce_path": "/"
  },
  "env": {
    "HOME": "/root",
    "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/lib/nodejs/bin",
    "PWD": "/nodejsAction",
    "SHLVL": "1",
    "_": "/usr/local/lib/nodejs/bin/node",
    "__OW_ALLOW_CONCURRENT": "true",
    "container": "oci"
  }
}

Você implantou sua primeira função em Code Engine e a testou. Acesse Executando uma função a partir da origem local ou Trabalhando com funções para experimentar mais opções para funções.

Você pode migrar seu IBM Cloud Functions para Code Engine.

Administrando sua primeira frota

Crie e execute sua primeira Code Engine frota usando a icr.io/codeengine/helloworld imagem.

  1. Certifique-se de ter concluído as etapas de preparação necessárias para administrar uma frota.
  2. Abra o console Code Engine.
  3. Selecione Iniciar criação.
  4. Selecione um projeto na lista de projetos disponíveis. Também é possível criar um novo. Observe que você deve ter um projeto selecionado para executar uma frota.
  5. Selecione a frota.
  6. Insira um nome para a frota. Use um nome que seja exclusivo para todas as frotas do projeto.
  7. Especifique icr.io/codeengine/helloworld para a referência de imagem. Para este exemplo, não é necessário modificar os valores padrão Para obter mais informações sobre o código que é usado para este exemplo, consulte helloworld.
  8. Clique em criar.

Quando o registro está ativado, o exemplo a seguir é exibido nos registros. Para saber como executar frotas com o registro ativado, consulte Visualização de registros de frota.

Exemplo de saída da instância de criação de log.

Hello from helloworld! I'm a task of fleet: fleet-abcdef1234! Task Index: 4, Task ID: 2b2b2b2b-3c3c-4d4d-5e5e-6f6f6f6f6f6f

Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)

Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.eu-de.codeengine.cloud.ibm.com
CE_CPU=1
CE_DOMAIN=eu-de.codeengine.appdomain.cloud
CE_FLEET_ID=1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e
CE_FLEET_NAME=fleet-abcdef1234
...
z=Set env var 'SHOW' to see all variables

Você criou e comandou sua frota a partir do console. Vá para a seção Executando uma frota para experimentar mais opções para frotas.

Construindo sua primeira imagem de contêiner por meio do código-fonte

Crie e execute sua primeira construção do Code Engine e, em seguida, implemente a imagem de contêiner em um aplicativo.

O Code Engine pode enviar imagens por push automaticamente para um namespace do Container Registry em sua conta. Ele pode até mesmo criar um namespace para você. Para enviar por push imagens para uma conta diferente do Container Registry ou para uma conta privada do Docker Hub, veja Incluindo acesso a um registro de contêiner privado.

  1. Abra o console Code Engine.
  2. Selecione Iniciar criação.
  3. Selecione um projeto na lista de projetos disponíveis. Também é possível criar um novo. Observe que deve-se ter um projeto selecionado para implementar um app.
  4. Selecione Aplicativo.
  5. Insira um nome para o aplicativo. Use um nome para seu aplicativo que seja exclusivo dentro do projeto.
  6. Selecione para executar uma Imagem de contêiner e especifique icr.io/codeengine/helloworld para a referência de imagem. Para este exemplo, não é necessário modificar os valores padrão Para obter mais informações sobre o código que é usado para este exemplo, consulte helloworld.
  7. Selecione Código-fonte.
  8. Clique em Especificar detalhes da construção.
  9. Aceite o padrão para cada página, clicando em Avançar e, em seguida Concluído.
  10. Clique em Criar.

Após o envio da sua execução de construção, a imagem de contêiner construída é enviada para o Container Registry e, em seguida, seu aplicativo a extrai e implementa para você. Depois que o status do aplicativo mudar para Pronto, é possível experimentá-lo. Clique em Testar aplicativo e, em seguida, clique em Enviar solicitação na área de janela Testar aplicativo. Para abrir o aplicativo em uma página da web, clique em URL do aplicativo.

Saída de exemplo

Hello World from:
     ___  __  ____  ____
    / __)/  \(    \(  __)
   ( (__(  O )) D ( ) _)
    \___)\__/(____/(____)
 ____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
 ) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-6db6d89dc7-k6qc7
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1

Você enviou o código-fonte para o Code Engine e criou uma imagem de contêiner a qual, em seguida, foi implementada em um aplicativo, tudo por meio de uma interface.

Acesse Construindo uma imagem de contêiner para explorar e experimentar mais opções de construções.

Próximas etapas para o Code Engine

Saiba mais sobre a execução dessas tarefas do Code Engine por meio do console ou com a CLI do Code Engine.

Procurando mais exemplos de código? Confira as Amostras para IBM Cloud Code Engine GitHub repo.