IBM Cloud Docs
Despliegue de aplicaciones de Cloud Foundry en Code Engine: Iniciación

Despliegue de aplicaciones de Cloud Foundry en Code Engine: Iniciación

Damos la bienvenida a los usuarios de Cloud Foundry a IBM Cloud® Code Engine.

Code Engine es una plataforma totalmente gestionada y sin servidor que ejecuta sus cargas de trabajo contenerizadas. Code Engine incluso compila imágenes de contenedor automáticamente a partir del código fuente. La experiencia de Code Engine está diseñada para que pueda centrarse en escribir el código, no en la infraestructura necesaria para alojarlo.

Code Engine fue diseñado con los siguientes objetivos clave en mente.

  • Centrarse en su código. Code Engine proporciona una experiencia de desarrollador simplificada. No es necesario conocer ni gestionar la infraestructura subyacente.
  • Dar soporte a las características de ejecución modernas como, por ejemplo, el escalado automático, el escalado a cero cuando está desocupado y una integración perfecta con servicios gestionados y seguridad.
  • Dar soporte a todas las aplicaciones nativas en la nube, ya sean aplicaciones de 12 factores, funciones controladas por sucesos o trabajos por lotes de Ejecutar hasta el final. Si se puede contenerizar, Code Engine puede ejecutarlo.
  • Pagar solo por los recursos que realmente utiliza.

Si ha trabajado con Cloud Foundry, muchas de estas características le serán conocidas. Sin embargo, Code Engine también incluye algunas nuevas funciones que le permiten ir más allá de lo que ofrece Cloud Foundry, incluyendo aplicaciones que pueden escalar a cero sin incurrir en cargos. Por lo tanto, una vez superada la diferencia sintáctica de la experiencia del usuario, usted y sus aplicaciones se sentirán como en casa en Code Engine.

Vamos a desplegar una aplicación hello world sencilla para ver cómo funciona Code Engine. Siga los pasos para crear un proyecto, compilar el código y desplegar la aplicación.

Revise los Términos de Cloud Foundry y Code Engine antes de iniciar esta guía de aprendizaje.

Objetivos

  • Conozca las similitudes entre Code Engine y Cloud Foundry.
  • Conozca el proceso general de despliegue de aplicaciones en Code Engine.
  • Despliegue una aplicación a partir de código en el sistema local con Code Engine.

Requisitos previos

Para poder empezar con Code Engine, debe configurar su cuenta e instalar la CLI.

  • Todos los usuarios de Code Engine están obligados a tener una cuenta de pago por uso.

  • Aunque puede utilizar Code Engine a través de la consola, los ejemplos de esta documentación se centran en la línea de mandatos. Por lo tanto, debe instalar la CLI de Code Engine.

    ibmcloud plugin install code-engine
    

    Para obtener más información, consulte Configuración de la CLI de Code Engine. Para obtener más información sobre la CLI, consulte Referencia de CLI de Code Engine.

Inicie una sesión en IBM Cloud

Siga estos pasos para iniciar una sesión en la cuenta IBM Cloud y especifique un grupo de recursos.

  1. Inicie una sesión en la CLI de IBM Cloud.

    ibmcloud login
    
  2. Puede establecer como destino un grupo de recursos ejecutando el mandato siguiente. Para obtener una lista de los grupos de recursos, ejecute ibmcloud resource groups.

    ibmcloud target -g <resource_group>
    

    Salida de ejemplo

    Targeted resource group default
    

Creación de un proyecto

Un "proyecto" de Code Engine es similar a un "espacio" de Cloud Foundry en que agrupa las cargas de trabajo relacionadas en una colección lógica que es significativa para el desarrollador. Puede agrupar cargas de trabajo en diferentes proyectos en función de los criterios que tengan sentido para usted, por ejemplo, estructura de la organización de la empresa, dependencias entre las cargas de trabajo, o entornos de desarrollo frente a entornos de prueba frente a entornos de producción. Tenga en cuenta que las cargas de trabajo dentro de un único proyecto comparten una red privada y están aisladas dentro de los límites de seguridad del proyecto. Todas las cargas de trabajo de un proyecto pueden hablar entre sí libremente sin preocuparse de ser vistas por cargas de trabajo de fuera del clúster. Si las cargas de trabajo de diferentes proyectos desean comunicarse entre sí, la comunicación debe utilizar Internet o una red privada interna de IBM. Para obtener más información, consulte Opciones para la visibilidad de una aplicación de Code Engine.

Cree un proyecto en Code Engine denominado sample.

ibmcloud ce project create --name sample

Salida de ejemplo

Creating project 'sample'...
ID for project 'sample' is 'abcdabcd-abcd-abcd-abcd-abcd12e3456f7'.
Waiting for project 'sample' to be active...
Now selecting project 'sample'.
OK

Observe que el proyecto también está seleccionado por el contexto, por lo que todos los mandatos posteriores relacionados con la aplicación están dentro del ámbito de este nuevo proyecto sample.

Creación de un directorio y código fuente

  1. Cree un directorio en la estación de trabajo local denominado myapp y navegue hasta el mismo. En este directorio, guarde todos los archivos necesarios para crear la imagen y para ejecutar la aplicación.

    mkdir myapp && cd myapp
    
  2. Cree un archivo denominado server.js y copie el siguiente código fuente en él.

    const http = require('http');
    
    
    http.createServer(function (request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
      response.end( "Hello world\n" );
    }).listen(8080);
    

    Este ejemplo utiliza Node.js. Puede sustituir código de cualquier ejecución soportada.

Despliegue de la aplicación

Envíe el código a Code Engine utilizando el mandato application create. Debe proporcionar un nombre para la aplicación y la ubicación del código fuente. El ejemplo siguiente crea una aplicación denominada myapp que utiliza la estrategia buildpack y proporciona la ubicación del código fuente en el directorio actual (.).

ibmcloud ce app create --name myapp --build-source . --strategy buildpacks

Salida de ejemplo

Creating application 'myapp'...
Packaging files to upload from source path '.'...
Submitting build run 'myapp-run-220999-210706331'...
Creating image 'private.us.icr.io/ce--6ef04-khxrbwa0lci/app-myapp:220418-0207-askql'...
Waiting for build run to complete...
Build run status: 'Running'
Build run completed successfully.
Run 'ibmcloud ce buildrun get -n myapp-run-220000-210706331' to check the build run status.
Waiting for application 'myapp' to become ready.
Configuration 'myapp' is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready.
Run 'ibmcloud ce application get -n myapp' to check the application status.
OK

https://myapp.abcdbwa0lci.us-south.codeengine.appdomain.cloud

Y eso es todo. Ahora tiene una aplicación orientada a Internet. El código de la aplicación es el mismo que el que se utiliza para una aplicación Cloud Foundry, son sólo los mandatos de Code Engine que son ligeramente diferentes.

Vamos a examinar detenidamente el mandato app create anterior. Tenga en cuenta que la salida del mandato app create proporciona información sobre la progresión de la ejecución de compilación antes de crear y desplegar la app.

  1. Code Engine recibe una solicitud para crear una aplicación a partir del código fuente (en lugar de extraerla directamente de una imagen).
  2. Code Engine comprueba si hay un ID de servicio de IAM y una clave de API asociados con el proyecto seleccionado. Este ID de servicio debe estar autorizado para leer y escribir en IBM Cloud Container Registry. Si no existe ningún ID de servicio, Code Engine crea uno automáticamente. Tenga en cuenta que este ID de servicio se utiliza en las siguientes solicitudes de compilación de Code Engine que se ejecutan desde el mismo proyecto.
  3. Este ejemplo crea código a partir de un origen local (--build-source .). El código fuente se empaqueta en un archivo de archivado y se carga en un espacio de nombres gestionado dentro de la instancia de IBM Cloud Container Registry en su cuenta. Tenga en cuenta que solo puede especificar IBM Cloud Container Registry como destino para las compilaciones locales. Para obtener más información sobre IBM Container Registry, incluida información sobre los límites de cuota y el acceso, consulte Cómo empezar con IBM Cloud Container Registry.
  4. Code Engine compila el código fuente en una imagen. La imagen de origen se crea en el mismo espacio de nombres que el archivo de archivado de origen.
  5. Una vez completada la compilación, la aplicación se despliega. Puede acceder a la aplicación desde el URL proporcionado.

Con Code Engine, obtendrá automáticamente muchas de las mismas características que Cloud Foundry, como por ejemplo el escalado automático y el despliegue de actualizaciones en color azul y verde, pero también disfrutará de las ventajas de las nuevas características como, por ejemplo, el escalado a cero, teniendo la seguridad de no pagar si la aplicación no está activa.

¿Desea obtener más información sobre sus opciones para compilar el código fuente? Consulte los mandatos application create y job create.

¿Desea obtener más información sobre las aplicaciones y los trabajos? Consulte Trabajar con aplicaciones en Code Engine y Trabajar con trabajos y ejecuciones de trabajo.

Limpieza

Cuando finalice esta guía de aprendizaje, puede limpiar los recursos que ha creado con los mandatos siguientes.

Suprimir la aplicación

ibmcloud ce app delete --name myapp

Cuando suprime la aplicación, también se suprimen los archivos de compilación asociados.

Por último, suprima las imágenes que la compilación ha creado en IBM Cloud Container Registry.

  1. Vaya a Registry en la consola de IBM Cloud.
  2. Busque el archivo y la imagen que están asociados con la aplicación buscando el nombre de la aplicación.
  3. Seleccione el archivo y la imagen y suprímalos.

Próximos pasos

  1. ¿Está empezando la migración? Consulte Iniciación.
  2. Comparar la terminología de Cloud Foundry con Code Engine.
  3. Despliegue de aplicaciones de Cloud Foundry en Code Engine: Iniciación (página actual)
  4. ¿Su aplicación utiliza enlaces de servicio? Consulte Migración de los enlaces de servicio.
  5. Obtenga información sobre el escalado y la gestión del tráfico.
  6. Busque Equivalentes de Code Engine a los mandatos de Cloud Foundry.
  7. Añada una correlación de dominio personalizado desde la consola.
  8. ¿Le queda alguna duda? Pruebe las Preguntas frecuentes sobre la migración de aplicaciones de Cloud Foundry a Code Engine.

Información adicional