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.
- Desplegar una aplicación
- Crear y ejecutar un trabajo
- Ejecutar código de función
- Creación de la primera imagen de contenedor a partir del código fuente
- Gestionar una flota
¿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.
| 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 tu 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 sabe qué elegir? Consulte Planificación de Code Engine.
¿Cómo se comparan las aplicaciones, los puestos de trabajo, las funciones y las flotas?
| 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 y de instancias concurrentes |
| Aislamiento | Varios arrendatarios | Varios arrendatarios | Varios arrendatarios | De un solo arrendatario |
| Soporte de GPU | No | No | No | Sí |
| Control sobre la configuración de la máquina | Sin control | Sin control | Sin control | control completo |
| Conectividad VPC | A través de Private Path | A través de Private Path | A través de Private Path | Nativo (a través de un grupo de subredes) |
| 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 | Cargas de trabajo a gran escala que requieren un uso intensivo de recursos de computación |
Para más información, consulte Planificación en Code Engine.
Despliegue de su primera aplicación Code Engine
Cree su primera aplicación de Code Engine utilizando la imagen de icr.io/codeengine/helloworld.
- Abre la Code Engine consola.
- Seleccione Empezar a crear.
- 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.
- Seleccione Aplicación.
- Introduce un nombre para la aplicación, por ejemplo,
myapp. Utilice un nombre para la aplicación que sea exclusivo dentro del proyecto. - Selecciona « Usar una imagen de contenedor existente » y especifica «
icr.io/codeengine/helloworld» como referencia de la imagen. Para este ejemplo, no es necesario modificar los valores por defecto. Para obtener más información sobre el código utilizado en este ejemplo, consultehelloworld. - Pulse Crear.
- 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 al Tutorial: Desplegar aplicaciones o Trabajar con aplicaciones en Code Engine para probar más opciones para las 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.
- Abre la Code Engine consola.
- Seleccione Empezar a crear.
- 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.
- Seleccione Trabajo.
- Introduce un nombre para la tarea, por ejemplo,
myjob. Utilice un nombre para el trabajo que sea exclusivo dentro del proyecto. - Especifique
icr.io/codeengine/helloworldcomo referencia de la imagen. Para este ejemplo, no es necesario modificar los valores por defecto. Para obtener más información sobre el código utilizado en este ejemplo, consultehelloworld. - Pulse Crear.
- En la página de trabajo, pulse Enviar trabajo para enviar un trabajo basado en la configuración actual.
- En el panel Enviar trabajo, acepte todos los valores predeterminados y vuelva a pulsar Enviar trabajo para ejecutar el trabajo.
Cuando el registro está activado, en los registros aparece el siguiente ejemplo. Para obtener información sobre la ejecución de trabajos con el registro habilitado, consulte Visualización de registros.
Ejemplo de salida 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.
Ejecutar la primera función
Cree y ejecute su primera función Code Engine con código de función de ejemplo.
- Abre la Code Engine consola.
- Seleccione Empezar a crear.
- Seleccione un proyecto de la lista de proyectos disponibles. También puede crear uno nuevo. Ten en cuenta que debes tener un proyecto seleccionado para crear una función.
- Seleccionar función.
- Introduce un nombre para la función. Utiliza un nombre para tu función que sea único dentro del proyecto.
- Selecciona « Node.js » 22
- Pulse Crear. Su función se crea con código de ejemplo. Puede editar este código en la página Función -> Configuración.
- Haga clic en Probar función y, a continuación, haga clic en Enviar solicitud en el panel Probar función. Para abrir la función en una página web, haz clic en Function 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 Ejecutar una función desde el origen local o Trabajar con funciones para probar más opciones para las funciones.
Dirigir su primera flota
Crea y ejecuta tu primera flota de Code Engine utilizando la imagen icr.io/codeengine/helloworld.
- Asegúrese de haber completado los pasos de preparación necesarios para gestionar una flota.
- Abre la Code Engine consola.
- Seleccione Empezar a crear.
- Seleccione un proyecto de la lista de proyectos disponibles. También puede crear uno nuevo. Ten en cuenta que debes tener un proyecto seleccionado para ejecutar una flota.
- Selecciona Flota.
- Introduce un nombre para la flota. Utiliza un nombre que sea único en todas las flotas del proyecto.
- Especifique
icr.io/codeengine/helloworldcomo referencia de la imagen. Para este ejemplo, no es necesario modificar los valores por defecto. Para obtener más información sobre el código utilizado en este ejemplo, consultehelloworld. - Pulse Crear.
Cuando el registro está activado, en los registros aparece el siguiente ejemplo. Para obtener más información sobre la ejecución de flotas con el registro activado, consulte Visualización de registros de flotas.
Ejemplo de salida 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
Has creado y gestionado 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.
- Abre la Code Engine consola.
- Seleccione Empezar a crear.
- 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.
- Seleccione Aplicación.
- Escriba un nombre para la aplicación. Utilice un nombre para la aplicación que sea exclusivo dentro del proyecto.
- Selecciona Compilar imagen de contenedor a partir del código fuente.
- Pulse Especificar detalles de compilación.
- Acepte los valores predeterminados para cada página, haciendo clic en Siguiente y luego en Listo.
- 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.
- Gestión de proyectos
- Despliegue de aplicaciones
- Ejecución de trabajos
- Funciones de ejecución
- Compilación de imágenes de contenedor
¿Desea ver más ejemplos de código? Consulte el repositorio de muestras de IBM Cloud Code Engine GitHub.