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.

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. Diferentemente dos trabalhos, as frotas são de locatário único, implementam enfileiramento dinâmico de tarefas e oferecem 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?

Comparando as aplicações, tarefas, funções e frotas d 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
Gabarito 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
Isolamento Diversos locatários Diversos locatários Diversos locatários Locatário único
Suporte de GPU Não Não Não True
Controle sobre a configuração da máquina Sem Controle Sem Controle Sem Controle controle total
Conectividade da VPC Pelo Caminho Privado Pelo Caminho Privado Pelo Caminho Privado Nativo (por meio do conjunto de sub-redes)
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 em grande escala e com uso intensivo de recursos computacionais

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

Implementação de seu primeiro aplicativo Code Engine

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

  1. Abra o Code Engine console.
  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. Digite um nome para o aplicativo, por exemplo, myapp. Use um nome para seu aplicativo que seja exclusivo dentro do projeto.
  6. Selecione a opção “Usar uma imagem de contêiner existente” e especifique icr.io/codeengine/helloworld como referência da imagem. Para este exemplo, não é necessário modificar os valores padrão. Para obter mais informações sobre o código usado neste 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.

Exemplo de saída

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. Vá para o Tutorial: Implantando aplicativos ou Trabalhando com aplicativos em Code Engine para experimentar mais opções de 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 Code Engine console.
  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 usado neste 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 em log está ativado, o exemplo a seguir é exibido nos logs. 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 registro

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 o código de função de exemplo.

  1. Abra o Code Engine console.
  2. Selecione Iniciar criação.
  3. Selecione um projeto na lista de projetos disponíveis. Também é possível criar um novo. Observe que é necessário ter um projeto selecionado para criar uma função.
  4. Selecione “Função ”.
  5. Digite um nome para a função. Use um nome para sua função que seja exclusivo dentro do projeto.
  6. Selecione “ Node.js ” 22
  7. Clique em Criar. Sua função é criada com um código de exemplo. Você pode editar esse código na página Function -> Configuration (Função -> Configuração ).
  8. Clique em “Testar função ” e, em seguida, clique em “Enviar solicitação ” no painel “Testar função”. Para abrir a função em uma página da web, clique em Função URL.

Exemplo de saída

{
  "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 no Code Engine e a testou. Vá para a seção Executando uma função a partir da origem local ou Trabalhando com funções para experimentar mais opções de funções.

Administrando sua primeira frota

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

  1. Certifique-se de ter concluído as etapas de preparação necessárias para administrar uma frota.
  2. Abra o Code Engine console.
  3. Selecione Iniciar criação.
  4. Selecione um projeto na lista de projetos disponíveis. Também é possível criar um novo. Observe que é necessário ter um projeto selecionado para operar uma frota.
  5. Selecione a frota.
  6. Digite um nome para a frota. Use um nome que seja exclusivo em 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 usado neste exemplo, consulte helloworld.
  8. Clique em criar.

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

Exemplo de saída da instância de registro

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 Code Engine console.
  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 “Compilar imagem do contêiner a partir do código-fonte ”.
  7. Clique em Especificar detalhes da construção.
  8. Aceite o padrão para cada página, clicando em Next e, em seguida, em Done.
  9. 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.

Exemplo de saída

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 o repositório Samples for IBM Cloud Code Engine GitHub.