News: El PWA Kit 3.0.0 ya está disponible y es compatible con Node 18. Actualice sus proyectos y entornos para mantener la funcionalidad. No podrá implementar su sitio usando versiones anteriores.

Visión general de Managed Runtime

Managed Runtime proporciona la infraestructura para implementar, alojar y supervisar su storefront de PWA Kit.

Managed Runtime solo admite aplicaciones creadas a partir de una plantilla de PWA Kit. Podrá encontrar el código fuente para las plantillas disponibles en las carpetas template-* en el repositorio de PWA Kit en GitHub.

Esta guía cubre las partes principales de Managed Runtime y cómo acceder a él.

Before you can use Managed Runtime and Runtime Admin, they must be enabled and you must request access to them. To enable Managed Runtime and Runtime Admin for your organization, reach out to your Salesforce account team. For access, ask your Commerce Cloud administrator to add either one of the following roles to your account using Account Manager: Managed Runtime User or Managed Runtime Admin.

Un entorno es el término utilizado para describir toda la infraestructura de la nube y los valores de configuración para un storefront en particular alojado por Managed Runtime. Los entornos se utilizan para separar su storefront de producción de otros storefronts que se implementan para otros fines, como el desarrollo o la ejecución de pruebas.

En la Managed Runtime API, los entornos se llaman “objetivos”, pero ambos términos se refieren a lo mismo.

Dado que los entornos se ejecutan en microservicios altamente eficientes que se escalan hacia arriba y hacia abajo automáticamente, puede crear tantos entornos como necesite sin ningún costo adicional. Por ejemplo, puede crear un entorno de corta duración dedicado a un solo sprint de desarrollo ágil o para una historia de un único usuario dentro de ese sprint. Cuando ya no necesite dicho entorno, recomendamos eliminarlo.

El equipo de Soporte de Salesforce les da prioridad respecto al monitoreo a los entornos marcados como de producción. Para marcar un entorno como de producción, tiene dos opciones:

  1. Usar la herramienta Runtime Admin. Las instrucciones paso a paso para crear un entorno o editar un entorno existente se encuentran en la sección Entornos de la guía Administración.
  2. Usar la Managed Runtime API. Los puntos de conexión projects_target_create y projects_target_partial_update incluyen el parámetro is_production. Para marcar un entorno como de producción con estos puntos de conexión, establezca is_production como true.

Por defecto, puede marcar hasta 10 entornos como de producción. Para aumentar su límite, comuníquese con Soporte.

El código del storefront que se ejecuta en un entorno se denomina paquete. Use las herramientas para desarrolladores incluidas en el PWA Kit para generar un paquete y enviarlo a Managed Runtime.

Un paquete es una captura de su código en un momento determinado. Es inmutable: Una vez creado, un paquete no se puede modificar. Disponer de este historial completo y preciso de los paquetes facilita la resolución de problemas de implementación.

Después de enviar el paquete, puede utilizar Runtime Admin o Managed Runtime API para marcar ese paquete como “implementado”. Cada proyecto puede tener varios paquetes, pero cada entorno solo puede tener un paquete designado como implementado. Puede cambiar el paquete designado como implementado en cualquier momento. Para obtener más información, consulte Enviar e implementar paquetes.

Para ayudarle a gestionar varios entornos, cada entorno pertenece también a un proyecto y cada proyecto a una organización. Una organización puede contener múltiples proyectos para múltiples storefronts y cada proyecto puede contener múltiples entornos. Un usuario de Managed Runtime puede pertenecer a varias organizaciones distintas para separar diferentes flujos de trabajo.

Cada organización puede tener un máximo de 100 entornos en total y un máximo de 10 entornos de producción. Si necesita aumentar estos límites, póngase en contacto con su representante de asistencia técnica de Salesforce.

Las organizaciones y la membresía en una organización de usuarios se determinan mediante los ajustes en Account Manager. Un usuario puede pertenecer a una organización como miembro o como administrador. Los miembros solo pueden interactuar con los proyectos en Managed Runtime para los que se les asignó un rol en el proyecto. Los administradores pueden interactuar con todos los proyectos de una organización.

Para asignarle a un usuario la membresía en una organización de administradores, comuníquese con Soporte de Salesforce.

Un usuario puede tener las siguientes capacidades en relación con un proyecto de Managed Runtime:

  • Browse (Examinar): ver el proyecto en Runtime Admin.
  • Manage Redirects (Gestionar redireccionamientos): administrar redireccionamientos del proyecto. Consulte la documentación sobre Redireccionamientos para obtener más información.
  • Deploy (Implementar): implementar nuevos paquetes o revertir la implementación hacia un paquete existente.
  • Manage Team (Gestionar el equipo): ver, añadir, invitar, quitar y editar los roles de los miembros del equipo del proyecto.
  • Access Logs (Registros de acceso): poner en cola registros en todos los entornos.

A cada usuario se le asigna un rol en el proyecto que determina las capacidades que tiene. (Un usuario solo puede tener un rol). Los roles del proyecto pueden asignarse a cualquier usuario de una organización.

La siguiente tabla muestra qué capacidades están asociadas con cada rol:

RolExaminarGestionar redireccionamientosImplementarGestionar equipoRegistros de acceso
Administrador
DesarrolladorNo
Encargado de marketingNoNoNo
Solo lecturaNoNoNoNo

Dentro de cada entorno de Managed Runtime, la aplicación React del paquete publicado se ejecuta dentro de un entorno Node.js. Para responder a las solicitudes de páginas y renderizar los resultados, utilizamos el marco web Exprés con la ayuda de los sistemas de renderización y enrutamiento de PWA Kit. A esta combinación de React, Node y Exprés la llamamos el Servidor de la aplicación. (Aunque, técnicamente hablando, el Servidor de la aplicación funciona con tecnología “sin servidor”). El Servidor de la aplicación está optimizado para funcionar en una infraestructura en la nube que ofrece bajos costos de computación, alta disponibilidad, renderización rápida y una enorme capacidad de escalado.

Debido a que el sistema de renderización y enrutamiento de PWA Kit maneja las diferencias entre los entornos de desarrollo locales y de Managed Runtime, su código se ejecuta de una manera predecible cuando lo implementa. Esta previsibilidad desbloquea la productividad de su equipo de desarrollo al animarles a implementar paquetes con más frecuencia.

Actualmente, el Servidor de la aplicación es compatible con las versiones 1.2 y superiores de Transport Layer Security (TLS).

El código que se ejecuta en el servidor de aplicaciones tiene acceso a las siguientes variables de entorno:

  • DEPLOY_TARGET: La identificación del entorno.
  • EXTERNAL_DOMAIN_NAME: El nombre de dominio establecido en el entorno.
  • MOBIFY_PROPERTY_ID: La identificación del proyecto al que pertenece el entorno.

El servidor de aplicaciones está respaldado por varios servicios de edge, entre ellos:

  • Un firewall de aplicaciones web (WAF) para proteger sus entornos de atacantes.
  • Un servidor proxy para acelerar las solicitudes a la API.
  • Una CDN (content delivery network) para almacenar las solicitudes en caché y acelerar la carga de las páginas.
  • Funciones de edge que procesan las solicitudes y gestionan los redireccionamientos.

El servidor proxy y la CDN se tratan en detalle en nuestra guía sobre Solicitudes de conexión del proxy. La función de edge llamada procesador de solicitudes se aborda en nuestra guía Cómo maximizar la tasa de aciertos en caché.

Los servicios perimetrales de Managed Runtime están distribuidos estratégicamente en nuestra infraestructura de nube pública. Cada servicio está situado lo más cerca posible del usuario para un rendimiento más rápido.

Para gestionar la configuración de sus organizaciones, proyectos, entornos y paquetes, ofrecemos dos herramientas diferentes:

  1. El Managed Runtime Admin, una IU basada en la web.
  2. La Managed Runtime API, una REST API que ofrece la misma funcionalidad que la herramienta basada en la web y algunas capacidades adicionales.

Utilice la herramienta Runtime Admin para tareas rutinarias, como la implementación de un nuevo paquete de código en un entorno. Utilice la API siempre que necesite un control programático, como la creación automática de un entorno como parte de un script de integración continua.

Las herramientas de administración le ofrecen una forma de autoservicio para configurar muchos ajustes, lo que incluye:

  • Direcciones IP permitidas
  • Paquete implementado actualmente
  • Región de implementación
  • Proxies
  • Redireccionamientos
  • Permisos de usuario
  • Indicador de entorno de producción

El acceso a las herramientas de administración se controla con los roles de Account Manager y una clave de API. Para los procesos de integración continua (CI) y entrega continua (CD), los usuarios de bots dedicados con sus propias claves de API suelen estar aprovisionados por su organización.

Dato curioso: Al igual que su storefront, la herramienta Runtime Admin una aplicación de React headless que se implementa en Managed Runtime.

Cuando construya su storefront, tenga en cuenta las siguientes limitaciones de los entornos de Managed Runtime:

  • Los entornos solo responden a solicitudes cuyo encabezado Host de HTTP coincida con el Nombre del servidor externo configurado en Runtime Admin.
  • El tamaño máximo de los paquetes es de 400 MB y el tamaño máximo de todos los archivos ssr_only y ssr_shared dentro del paquete es de 249 MB.
  • Los activos estáticos que pueden cargarse y enviarse son los siguientes tipos de contenido: application/javascript, application/json, image/png ,image/gif, image/jpeg, image/svg+xml, image/webp, text/css, text/plain y las fuentes (ttf, woff, woff2, otf, etc.). Todos los demás tipos de contenido deben ser enviados por un sistema externo.
  • La ruta / solo acepta solicitudes HTTP GET.
  • El tamaño de la solicitud y la respuesta no puede superar los 6 MB.
  • Las cookies, incluidos la Cookie de solicitud de HTTP y el encabezado Set-Cookie de respuesta de HTTP, no son compatibles por defecto. Se las puede habilitar configurando el atributo allow_cookies en un entorno con el punto de conexión projects_target_partial_update y utilizando la versión 3.1.0 o posterior de PWA Kit.
  • El tamaño máximo de la línea de solicitud de HTTP y los encabezados es de 10240 bytes. Las solicitudes que superen este tamaño arrojan un error HTTP 413 Contenido demasiado grande.
  • El tiempo de ejecución para las solicitudes de servidor de la aplicación se limita a 20 segundos.
  • Los rechazos de promesas no controlados rompen la renderización de la aplicación.
  • Puede omitir la caché de la CDN utilizando el encabezado de solicitud HTTP: x-mobify-cachebreaker: 1
  • El prefijo de la ruta de acceso /mobify se reserva para los puntos de conexión administrados. Estos puntos de conexión incluyen:
    • /mobify/ping: arroja un código de respuesta HTTP 200 cuando el entorno está operando correctamente.
    • /mobify/redirect/$path: arroja una respuesta similar a projects_target_redirect_retrieve.
    • /mobify/proxy/$name: arroja una respuesta de un proxy.
  • Las solicitudes de HTTP que se originan en entornos de Managed Runtime no utilizan direcciones IP fijas. Para permitir las solicitudes de lista del servidor de la aplicación, utilice el Rango de IP de AWS para EC2. Para permitir las solicitudes de lista de conexiones de proxy, utilice CLOUDFRONT_ORIGIN_FACING.

Las conexiones de proxy de Managed Runtime tienen diferentes restricciones.

Puede suscribirse a las actualizaciones sobre la disponibilidad de los servicios de Managed Runtime en Estado de Salesforce.

Ahora que tiene una visión general de las principales partes de Managed Runtime, es el momento de poner manos a la obra. Un buen punto de partida es la guía de Envío e implementación de paquetes.

Before you can use Managed Runtime and Runtime Admin, they must be enabled and you must request access to them. To enable Managed Runtime and Runtime Admin for your organization, reach out to your Salesforce account team. For access, ask your Commerce Cloud administrator to add either one of the following roles to your account using Account Manager: Managed Runtime User or Managed Runtime Admin.