Cargas de trabajo de aplicación
IBM Cloud® Code Engine está diseñado para satisfacer las necesidades de los desarrolladores que desean que su código se ejecute. {{site {{site.data.keyword.codeengineshort}} abstrae la carga operativa de crear, desplegar y gestionar cargas de trabajo en Kubernetes para que los desarrolladores puedan centrarse en lo que más les importa: el código fuente. Los desarrolladores pueden desplegar y escalar sus aplicaciones, escritas en cualquier entorno o lenguaje, delegando la complejidad de crear y gestionar sus cargas de trabajo en Code Engine. Aprende a trabajar con aplicaciones en Code Engine.
¿Qué son las cargas de trabajo de aplicación?
Una aplicación, o app, ejecuta el código para servir solicitudes HTTP. Además de las solicitudes HTTP tradicionales, IBM Cloud® Code Engine también da soporte a aplicaciones que utilizan WebSockets como protocolo de comunicaciones. El número de instancias en ejecución de una aplicación se amplía o reduce automáticamente (hasta cero) en función de las solicitudes entrantes y de los ajustes de configuración. Una app contiene una o varias revisiones. Una revisión representa una versión inmutable de las propiedades de configuración de la app. Cada actualización de una propiedad de configuración de la app crea una nueva revisión de la app.
¿Cómo se comparan las aplicaciones con los trabajos y las funciones?
Característica | Aplicación | Trabajo | Función |
---|---|---|---|
Tiempo de ejecución (duración) | Larga ejecución (10 minutos por solicitud) | Larga ejecución (hasta 24 horas) | Ejecución corta (2 minutos o menos) |
Latencia de inicio | Medio | Inicio planificado | Bajo |
Terminación | Ejecución continua | Ejecución hasta la finalización | Ejecución hasta la finalización |
Invocación | Bajo petición o en ejecución permanente | Planificado | Bajo petición, instantánea |
Modelo de programación | Compilación y ejecución basada en contenedor | Compilación y ejecución basada en contenedor | Archivos de código fuente específicos del idioma y metadatos de dependencia |
Paralelismo | Ejecución paralela, flexible | Ejecución en paralelo de bajo a medio | Ejecución paralela alta |
Escalado horizontal | Basado en el número de solicitudes | Basado en la definición de carga de trabajo de trabajo | Basado en sucesos o invocaciones directas |
Optimizado para | Carga de trabajo de larga ejecución altamente compleja y escalado bajo demanda | Cargas de trabajo planificadas o planificadas con altas demandas de recursos | Tiempo de inicio y escalado rápido |
Para obtener más información, consulte Planificación de Code Engine.
¿Cuáles son las características clave de trabajar con aplicaciones de Code Engine ?
Revise los temas siguientes para obtener más información sobre cómo trabajar con aplicaciones en Code Engine.
- Aislamiento
- Registro
- Ejecución de aplicaciones
- Escalado
- Seguridad
- Desencadenamiento de aplicaciones con sucesos
- Visibilidad
Aislamiento
Code Engine es un servicio regional multiarrendatario en el que los arrendatarios comparten la misma infraestructura de cálculo y red. En particular, la red y la infraestructura de cálculo son recursos compartidos y algunos componentes de gestión son comunes a todos los arrendatarios. Sin embargo, los arrendatarios y sus cargas de trabajo se aíslan entre sí utilizando proyectos Code Engine. Code Engine impide la comunicación entre proyectos, proporcionando aislamiento a las aplicaciones dentro de un entorno de varios arrendatarios. Además, hay controles de acceso que se realizan en un nivel de recurso para permitir únicamente a los usuarios autorizados realizar determinadas operaciones en recursos de proyecto, como por ejemplo aplicaciones u otras cargas de trabajo de Code Engine.
Para obtener más información sobre el aislamiento de carga de trabajo, consulte Aislamiento de carga de trabajo deCode Engine.
Registro
Cuando trabajas con aplicaciones ' Code Engine ' con la consola y con el registro activado, los registros se reenvían a una instancia de servicio ' IBM Cloud Logs ' que está asociada a tu proyecto ' Code Engine '. En la instancia de servicio IBM Cloud Logs, los registros se indexan, lo que permite realizar búsquedas de texto completo en todos los mensajes generados y realizar cómodas consultas basadas en campos específicos. Consulte Obtención de registros para aplicaciones.
La información sobre eventos del sistema también puede ser útil para solucionar problemas al ejecutar trabajos. Se puede ver la información de sucesos del sistema con la CLI. Consulte Obtención de información de sucesos del sistema para aplicaciones.
Para obtener más información sobre el registro, consulte Visualización de registros.
Ejecución de aplicaciones
Tanto si su código existe como fuente en un archivo local o en un repositorio Git, como si su código es una imagen de contenedor que existe en un registro público o privado, Code Engine le proporciona una forma simplificada de ejecutar su código como una aplicación.
Puede desplegar y ejecutar aplicaciones en Code Engine de las siguientes maneras:
-
Ejecutar desde una imagen de contenedor existente. Cree una aplicación y proporcione una referencia a su imagen para utilizarla al desplegar la app con Code Engine.
-
Ejecutar desde código fuente existente sin ninguna imagen de contenedor. Si está empezando con el código fuente que se encuentra en un repositorio Git o en la estación de trabajo local, puede apuntar a la ubicación del origen y Code Engine se encarga de crear la imagen. Code Engine da soporte a la creación a partir de un Dockerfile y Cloud Native Buildpacks, que inspecciona el código fuente para determinar cómo se debe compilar y empaquetar como una imagen de contenedor.
Para obtener más información sobre el despliegue y la ejecución de aplicaciones, consulte Trabajar con apps en Code Engine.
Escalado
Las aplicaciones Code Engine se escalan hacia arriba o hacia abajo en función de las solicitudes entrantes. Las aplicaciones siguen el modelo escala a cero, donde no se crean instancias en ausencia de tráfico, lo que lleva a la optimización de costes. Cuando hay una solicitud entrante, una app se escala automáticamente de cero para acomodar la carga de trabajo.
Con Code Engine, puede controlar el escalado automático estableciendo el número mínimo y máximo de instancias. También puede especificar la simultaneidad de la aplicación especificando el número de solicitudes que se deben ejecutar en paralelo para una instancia de aplicación específica para ayudar a determinar cuándo se suministra una nueva instancia.
Para obtener más información sobre cómo escalar la aplicación, consulte Configuración del escalado de aplicación.
Seguridad
Code Engine proporciona protección DDOS inmediata para su aplicación. Code Engine Cloud Internet Services (CIS) proporciona la protección DDoS sin coste adicional para usted. La protección DDoS cubre los ataques de los protocolos de Capa 3 y Capa 4 (TCP/IP) de la Interconexión de Sistemas (OSI), pero no los ataques de Capa 7 HTTP ). Véase Protección DDoS.
Code Engine también proporciona una malla de servicios para utilizar su capa de red, que permite el tráfico TLS (Transport Layer Security) mutuo en las aplicaciones, protegiendo así la comunicación de servicio a servicio y usuario a servicio.
Para obtener más información sobre la seguridad, consulte Code Engine y seguridad.
Desencadenamiento de aplicaciones con sucesos
Puede configurar las aplicaciones Code Engine para recibir sucesos cron, sucesos IBM Cloud Object Storage o temas Kafka. Cuando se suscribe a un generador de sucesos, debe especificar el nombre de la aplicación de destino para recibir los sucesos.
Para obtener más información sobre cómo trabajar con generadores de sucesos, consulte Iniciación a las suscripciones.
Visibilidad
Con Code Engine, puede determinar el nivel adecuado de visibilidad para su aplicación definiendo los endpoints, o mapeos de dominio del sistema que están disponibles para recibir peticiones. Una aplicación se puede exponer a Internet, a la red privada IBM Cloud o solo a otros recursos del mismo proyecto Code Engine.
De forma predeterminada, cada aplicación en ejecución obtiene su propio punto final protegido TLS, que puede correlacionar con su propio dominio.
Además, puede asignar su propio dominio personalizado a una aplicación Code Engine para dirigir las solicitudes desde su URL personalizada a su aplicación. Si desea dirigirse a la aplicación con un dominio de su propiedad, puede utilizar una correlación de dominios personalizada. Cuando establece una asignación de dominio personalizada en Code Engine, define una asignación 1-to-1 entre su nombre de dominio completo (FQDN) y una aplicación Code Engine en su proyecto.
Para obtener más información sobre la visibilidad, consulte Opciones de visibilidad para una aplicación Code Engine y Configuración de correlaciones de dominio personalizadas para la aplicación.
¿Cómo puedo empezar con las aplicaciones?
Para desplegar una aplicación Code Engine simple con la imagen de ejemplo icr.io/codeengine/helloworld
, consulte Creación de la primera app Code Engine.
Además, puede probar una guía de aprendizaje de aplicación, consulte Despliegue y escalado de aplicaciones.
Para profundizar en el trabajo con aplicaciones, consulte Trabajar con aplicaciones en Code Engine.