IBM Cloud Docs
Iniciación a IBM Cloud Code Engine

Iniciación a IBM Cloud Code Engine

IBM Cloud® Code Engine es una plataforma totalmente gestionada y sin servidor que ejecuta las cargas de trabajo en contenedores, incluyendo las aplicaciones web, los microservicios, las funciones controladas por sucesos o los trabajos por lotes. Code Engine incluso crea imágenes de contenedor por usted a partir del código fuente. Todas estas cargas de trabajo pueden funcionar juntas sin problemas porque están alojadas en la misma infraestructura de Kubernetes. La experiencia de uso de Code Engine está diseñada para que se pueda centrar en escribir código, no en la infraestructura necesaria para alojarlo. 

En primer lugar, obtenga información sobre términos clave para Code Engine y, a continuación, empiece con una de las siguientes opciones.

¿Qué son los proyectos, aplicaciones, trabajos, funciones y flotas de Code Engine?

Antes de empezar, familiarícese con algunos términos principales de Code Engine. Después, ¡puedes poner a prueba tus conocimientos y hacer un cuestionario!

Code Engine Términos
term Descripción
Proyecto Un proyecto es una agrupación de entidades de Code Engine, como aplicaciones, trabajos y compilaciones. Los proyectos se utilizan para gestionar recursos y proporcionar acceso a sus entidades.
Aplicación Una aplicación, o app, ejecuta el código para servir solicitudes HTTP. Una aplicación tiene un URL para las solicitudes entrantes. El número de instancias en ejecución de una aplicación se aumenta o se reduce (hasta cero) automáticamente en función de la carga de trabajo de entrada.
Crear Una compilación o una compilación de imagen es un mecanismo que puede utilizar para crear una imagen de contenedor a partir del código fuente. Code Engine permite compilar desde un archivo Docker o desde Cloud Native Buildpacks.
Función Una función es un fragmento de código sin estado que realiza tareas en respuesta a una solicitud de HTTP.
Trabajo Un trabajo ejecuta una o más instancias de su código ejecutable en paralelo. A diferencia de las aplicaciones, que incluyen un servidor HTTP para manejar las solicitudes entrantes, los trabajos se han diseñado para que se ejecuten una vez y se salga.
Flota Una flota, también llamada flota sin servidor, ejecuta una o más instancias de código de usuario para completar una serie de tareas específicas. Las flotas están diseñadas para hacer frente a grandes cargas de trabajo informático. A diferencia de los trabajos, las flotas son de inquilino único, implementan colas de tareas dinámicas y proporcionan un control total sobre la configuración del perfil de la máquina. Para más información, consulte ¿Cuál es la diferencia entre empleos y flotas?

Para obtener más información sobre los términos, consulte terminología de Code Engine.

¿No está seguro de qué elegir? Consulte Planificación de Code Engine.

¿Cómo se comparan las aplicaciones, los puestos de trabajo, las funciones y las flotas?

Comparación de aplicaciones, trabajos y funciones de Code Engine
Característica Aplicación Trabajo Función Flota
Tiempo de ejecución (duración) Larga duración (10 minutos por solicitud) Larga duración (hasta 24 horas) De corta duración (2 minutos o menos) De larga duración (de minutos a semanas)
Latencia de arranque Medio Inicio programado Bajo Bajo
Terminación Funcionamiento continuo Ejecución hasta el final Ejecución hasta el final Ejecución hasta el final
Invocación A petición o en funcionamiento permanente Planificado A petición, instantáneo Planificado
Modelo de programación Creación y ejecución basadas en contenedores Creación y ejecución basadas en contenedores Archivos de código fuente específicos del idioma y metadatos de dependencia Creación y ejecución basadas en contenedores
Paralelismo Ejecución paralela, flexible Ejecución paralela de baja a media Alta ejecución paralela Alta ejecución paralela y puesta en cola
Escalado horizontal En función del número de solicitudes Basado en la definición de la carga de trabajo Basado en eventos o invocaciones directas En función del número de tareas e instancias concurrentes
Optimizado para Cargas de trabajo de larga duración y gran complejidad y escalabilidad bajo demanda Cargas de trabajo programadas o planificadas con grandes demandas de recursos Puesta en marcha y ampliación rápida Grandes cargas de trabajo con un uso intensivo de la informática

Para más información, consulte Planificación en Code Engine.

Despliegue de la primera app Code Engine

Cree su primera aplicación de Code Engine utilizando la imagen de icr.io/codeengine/helloworld.

  1. Abra la consola de Code Engine.
  2. Seleccione Empezar a crear.
  3. Seleccione un proyecto de la lista de proyectos disponibles. También puede crear uno nuevo. Tenga en cuenta que debe tener un proyecto seleccionado para desplegar una app.
  4. Seleccione Aplicación.
  5. Introduzca un nombre para la aplicación, por ejemplo, myapp. Utilice un nombre para la aplicación que sea exclusivo dentro del proyecto.
  6. Seleccione ejecutar una Imagen de contenedor y especifique icr.io/codeengine/helloworld como referencia de imagen. Para este ejemplo, no es necesario modificar los valores predeterminados. Para obtener más información sobre el código que se utiliza para este ejemplo, consulte helloworld.
  7. Pulse Crear.
  8. Después de que el estado de la aplicación cambie a Preparado, puede probar la aplicación. Pulse Probar aplicación y, a continuación, pulse Enviar solicitud en el panel Probar aplicación. Para abrir la aplicación en una página web, pulse URL de aplicación.

Salida de ejemplo

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

Ha desplegado su primera aplicación en Code Engine y la ha probado. Vaya a la Guía de aprendizaje: Despliegue de aplicaciones o Trabajar con apps en Code Engine para probar más opciones para aplicaciones.

Ejecución del primer trabajo de Code Engine

Cree y ejecute su primer trabajo de Code Engine utilizando la imagen de icr.io/codeengine/helloworld.

  1. Abra la consola de Code Engine.
  2. Seleccione Empezar a crear.
  3. Seleccione un proyecto de la lista de proyectos disponibles. También puede crear uno nuevo. Tenga en cuenta que debe tener un proyecto seleccionado para crear un trabajo.
  4. Seleccione Trabajo.
  5. Introduzca un nombre para el trabajo, por ejemplo, myjob. Utilice un nombre para el trabajo que sea exclusivo dentro del proyecto.
  6. Especifique icr.io/codeengine/helloworld como referencia de la imagen. Para este ejemplo, no es necesario modificar los valores predeterminados. Para obtener más información sobre el código que se utiliza para este ejemplo, consulte helloworld.
  7. Pulse Crear.
  8. En la página de trabajo, pulse Enviar trabajo para enviar un trabajo basado en la configuración actual.
  9. En el panel Enviar trabajo, acepte todos los valores predeterminados y vuelva a pulsar Enviar trabajo para ejecutar el trabajo.

Cuando el registro está habilitado, se muestra el siguiente ejemplo en los registros. Para obtener información sobre la ejecución de trabajos con el registro habilitado, consulte Visualización de registros.

Salida de ejemplo de la instancia 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

Ha creado y ejecutado su trabajo desde la consola. Vaya a la Guía de aprendizaje: Ejecución de trabajos o Ejecución de trabajos en Code Engine para probar más opciones para trabajos.

Ejecución de la primera función

Cree y ejecute la primera función Code Engine con código de función de ejemplo.

  1. Abra la consola de Code Engine.
  2. Seleccione Empezar a crear.
  3. Seleccione un proyecto de la lista de proyectos disponibles. También puede crear uno nuevo. Tenga en cuenta que debe tener un proyecto seleccionado para crear una función.
  4. Seleccionar función.
  5. Introduzca un nombre para la función. Utiliza un nombre para tu función que sea único dentro del proyecto.
  6. Seleccione Node.js 20
  7. Pulse Crear. La función se crea con código de ejemplo. Puede editar este código en la página Función-> Configuración.
  8. Haga clic en la función Prueba y, a continuación, haga clic en Enviar solicitud en el panel de la función Prueba. Para abrir la función en una página web, haga clic en Función URL.

Salida de ejemplo

{
  "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"
  }
}

Has implementado tu primera función en Code Engine y la has probado. Vaya a Ejecución de una función desde el origen local o Trabajar con funciones para probar más opciones para las funciones.

Puede migrar sus IBM Cloud Functions a Code Engine.

Dirigir su primera flota

Crea y ejecuta tu primera Code Engine flota utilizando la icr.io/codeengine/helloworld imagen.

  1. Asegúrese de haber completado los pasos de preparación necesarios para gestionar una flota.
  2. Abra la consola de Code Engine.
  3. Seleccione Empezar a crear.
  4. Seleccione un proyecto de la lista de proyectos disponibles. También puede crear uno nuevo. Tenga en cuenta que debe tener un proyecto seleccionado para ejecutar una flota.
  5. Selecciona Flota.
  6. Introduzca un nombre para la flota. Utilice un nombre que sea único en todas las flotas del proyecto.
  7. Especifique icr.io/codeengine/helloworld como referencia de la imagen. Para este ejemplo, no es necesario modificar los valores predeterminados. Para obtener más información sobre el código que se utiliza para este ejemplo, consulte helloworld.
  8. Pulse Crear.

Cuando el registro está habilitado, se muestra el siguiente ejemplo en los registros. Para obtener más información sobre la ejecución de flotas con el registro activado, consulte Visualización de registros de flotas.

Salida de ejemplo de la instancia 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

Creaste y dirigiste tu flota desde la consola. Ve a Ejecutar una flota para probar más opciones para las flotas.

Creación de la primera imagen de contenedor a partir del código fuente

Cree y ejecute su primera compilación Code Engine y luego despliegue la imagen del contenedor en una aplicación.

Code Engine puede enviar automáticamente imágenes a un espacio de nombres de Container Registry en la cuenta. Incluso puede crear automáticamente un espacio de nombres. Para enviar imágenes a una cuenta de Container Registry distinta o a una cuenta privada de Docker Hub, consulte Añadir acceso a un registro de contenedor privado.

  1. Abra la consola de Code Engine.
  2. Seleccione Empezar a crear.
  3. Seleccione un proyecto de la lista de proyectos disponibles. También puede crear uno nuevo. Tenga en cuenta que debe tener un proyecto seleccionado para desplegar una app.
  4. Seleccione Aplicación.
  5. Escriba un nombre para la aplicación. Utilice un nombre para la aplicación que sea exclusivo dentro del proyecto.
  6. Seleccione ejecutar una Imagen de contenedor y especifique icr.io/codeengine/helloworld como referencia de imagen. Para este ejemplo, no es necesario modificar los valores predeterminados. Para obtener más información sobre el código que se utiliza para este ejemplo, consulte helloworld.
  7. Seleccione Código fuente.
  8. Pulse Especificar detalles de compilación.
  9. Acepte el valor predeterminado para cada página, pulsando Siguiente y, a continuación, Terminado.
  10. Pulse Crear.

Una vez que se ha enviado la ejecución de la compilación, se envía la imagen de contenedor compilada a Container Registry y, a continuación, la aplicación extrae la imagen y la despliega. Después de que el estado de la aplicación cambie a Preparado, puede probarla. Pulse Probar aplicación y, a continuación, pulse Enviar solicitud en el panel Probar aplicación. Para abrir la aplicación en una página web, pulse URL de aplicación.

Salida de ejemplo

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

Ha enviado el código fuente a Code Engine y ha creado una imagen de contenedor que se ha desplegado en una aplicación, todo ello desde una interfaz.

Vaya a Creación de una imagen de contenedor para explorar y probar más opciones para las compilaciones.

Pasos siguientes para Code Engine

Obtenga más información sobre cómo realizar estas tareas de Code Engine desde la consola o con la CLI de Code Engine.

¿Desea ver más ejemplos de código? Consulte los ejemplos de para IBM Cloud Code Engine GitHub.