News: PWA Kit 3.0.0 já está disponível, agora compatível com o Node 18. Atualize seus projetos e ambientes para manter as funcionalidades. Você não poderá implantar seu site usando versões mais antigas.

Visão geral do Managed Runtime

O Managed Runtime fornece a infraestrutura para implantar, hospedar e monitorar sua loja virtual do PWA Kit em uma plataforma de nuvem pública.

O Managed Runtime só é compatível com aplicativos criados com um modelo PWA Kit. O código-fonte dos modelos disponíveis pode ser encontrado nas pastas template-* no repositório do PWA Kit no GitHub.

Este guia aborda as principais partes do Managed Runtime e como acessá-lo.

Antes de usar o Managed Runtime e o Runtime Admin, eles devem estar habilitados e você deve solicitar acesso a eles. Para habilitar o Managed Runtime e o Runtime Admin para sua organização, entre em contato com a equipe de contas do Salesforce. Para ter acesso, peça ao administrador do Commerce Cloud que adicione uma das seguintes funções à sua conta usando Account Manager: Managed Runtime User ou Managed Runtime Admin.

Ambiente é o termo usado para descrever todos os valores de configuração e infraestrutura de nuvem de uma loja virtual determinada hospedada pelo Managed Runtime. Os ambientes são usados para separar sua loja (virtual) de produção de outras lojas (virtuais) que são implantadas para outros fins, como desenvolvimento e teste.

No Managed Runtime API, os ambientes são chamados de “destinos”, mas ambos os termos fazem referência à mesma coisa.

Como os ambientes são executados em microsserviços altamente eficientes que se adaptam de acordo com a necessidade, você pode criar vários ambientes conforme necessário, sem custo adicional. Por exemplo, você pode criar um ambiente efêmero dedicado a um sprint de desenvolvimento ágil ou para um único usuário dentro desse sprint. Quando não precisar mais do ambiente, o encorajamos a eliminá-lo.

Os ambientes marcados como de produção são priorizados para monitoramento pela equipe de Suporte da Salesforce. Para ambientes de Production, você também pode depurar usando o Log Center. Você tem duas opções para marcar um ambiente como de produção:

  1. Use a ferramenta Runtime Admin. Consulte as orientações para criação ou edição de um ambiente na seção Ambientes do guia de Administração.
  2. Use a Managed Runtime API. Os endpoints projects_target_create e projects_target_partial_update apresentam o parâmetro is_production. Para marcar um ambiente como de produção com esses endpoints, defina is_production como true.

Por padrão, é possível marcar até 10 ambientes como de produção. Entre em contato com o suporte para aumentar seu limite.

O código da loja (virtual) que se excuta em um ambiente é chamado de pacote. Com as ferramentas de desenvolvedor incluídas no PWA Kit, é possível gerar e enviar um pacote ao Managed Runtime.

Um pacote é uma fotografia de seu código em um determinado ponto no tempo. É imutável: Depois de criado, um pacote não pode ser modificado. O fato de ter este histórico completo e preciso de pacotes simplifica a solução de problemas.

Depois de transmitir o pacote, você pode usar o Runtime Admin ou a Managed Runtime API para designar esse pacote como “implantado”. Cada projeto pode ter vários pacotes, mas cada ambiente só pode ter um pacote designado como “implantado”. Você pode modificar cada pacote designado como implantado em qualquer momento. Para mais informações, acesse Enviar por push e implantar pacotes.

Para ajudar a gerenciar vários ambientes, cada ambiente também pertence a um projeto e, por sua vez, cada projeto pertence a uma organização. Uma organização pode conter diversos projetos para diferentes lojas (virtuais) e cada projeto pode conter vários ambientes. Um usuário do Managed Runtime pode pertencer a várias organizações para separar diferentes fluxos de trabalho.

Cada organização pode ter um total de 100 ambientes e um máximo de 10 ambientes de Production. Caso precise aumentar esses limites, entre em contato com o representante do suporte da Salesforce.

As organizações e a afiliação do usuário a uma organização são determinadas pelas configurações no Account Manager. O usuário pode pertencer a uma organização como membro ou administrador. Os membros só podem interagir com um projeto no Managed Runtime se tiverem funções atribuídas nesse projeto. Os administradores podem interagir com todos os projetos em uma organização.

Para atribuir a afiliação de admin da organização a um usuário, entre em contato com o Suporte da Salesforce.

Um usuário pode executar as seguintes ações em um projeto do Managed Runtime:

  • Navegar: Ver o projeto no Runtime Admin.
  • Gerenciar redirecionamentos: Gerenciar redirecionamentos para o projeto. Para saber mais, consulte a documentação sobre redirecionamentos.
  • Implantar: Implantar novos pacotes ou reverter implantações para um pacote mais antigo.
  • Gerenciar equipe: Exibir, adicionar, convidar, remover e editar as funções dos membros da equipe do projeto.
  • Acessar logs: Fazer o monitoramento de logs em tempo real em todos os ambientes.

Cada usuário recebe uma função de projeto que determina quais ações ele pode executar (um usuário pode ter apenas uma função.) As funções de projeto podem ser atribuídas a qualquer usuário da organização.

A tabela a seguir mostra as ações associadas a cada função:

FunçãoAcessarGerenciar redirecionamentosImplantarGerenciar equipeAcessar logs
AdminSimSimSimSimSim
DesenvolvedorSimSimSimNãoSim
Profissional de marketingSimSimNãoNãoNão
Somente leituraSimNãoNãoNãoNão

Com cada ambiente do Managed Runtime, o aplicativo React no pacote publicado se executa dentro de um Node.js. Para responder às solicitações de página e renderizar os resultados, usamos o framework Express da Web com a ajuda dos sistemas de renderização e roteamento do PWA Kit. Chamamos essa combinação de React, Node e Express do App Server. (Embora, em termos técnicos, o App Server se execute em uma tecnologia “sem servidor”.) O App Server é otimizado para executar em qualquer infraestrutura de nuvem que ofereça custos de computação baixos, alta disponibilidade, rápida renderização e capacidade massiva de dimensionamento.

Como o sistema de renderização e roteamento do PWA Kit trata as diferenças entre os ambientes de desenvolvimento local e os ambientes do Managed Runtime, seu código se executa de maneira previsível quando implantado. Essa previsibilidade promove a produtividade da sua equipe de desenvolvimento, pois a encoraja a implantar pacotes com mais frequência.

Atualmente, o App Server é compatível com a versão 1.2 e superior do protocolo Transport Layer Security (TLS).

Os códigos em execução no App Server têm acesso às seguintes variáveis de ambiente:

  • DEPLOY_TARGET: ID do ambiente.
  • EXTERNAL_DOMAIN_NAME: O nome de domínio definido no ambiente.
  • MOBIFY_PROPERTY_ID: ID do projeto ao qual o ambiente pertence.

Há vários serviços de borda que prestam suporte ao App Server, inclusive:

  • Um firewall de aplicativo web (WAF, web application firewall) para proteger seus ambientes de invasores
  • Um servidor proxy para agilizar as solicitações de API
  • Uma rede de entrega de conteúdo (CDN, content delivery network) para guardar em cache e agilizar o carregamento da página
  • Funções de borda que processa solicitações e trata os redirecionamentos

O servidor proxy e a CDN são vistos em detalhes em nosso guia Solicitações de proxy. A função de borda chamada processador de solicitação é tratada no guia Como maximizar a taxa de acertos do cache.

Os serviços de borda do Managed Runtime estão distribuídos estrategicamente por toda nossa infraestrutura de nuvem pública. Cada serviço se encontra localizado o mais perto possível do usuário, para um melhor desempenho.

Para gerenciar as configurações de suas organizações, projetos, ambientes e pacotes, oferecemos duas ferramentas:

  1. O Managed Runtime Admin, uma IU baseada na web.
  2. A Managed Runtime API, uma REST API que oferece a mesma funcionalidade que a ferramenta da web, além de alguns recursos extras.

Use a ferramenta Runtime Admin para tarefas de rotina, como implantar um novo pacote de códigos em um ambiente. Use a API sempre que necessitar de controle programático, como criar automaticamente um ambiente como parte de um script de integração contínua.

As ferramentas de administração dá a você uma maneira de definir várias configurações de maneira autônoma, como:

  • Endereços IP permitidos
  • Cabeçalhos de controle de acesso permitidos
  • Pacote atualmente implantado
  • Região de implantação
  • Proxies
  • Redirecionamentos
  • Autorizações do usuário
  • Indicador do ambiente de produção

O acesso a ferramentas de administração é controlado pelas funções do Account Manager e uma chave de API. Para processos de integração contínua (CI, continuous integration) e entrega contínua (CD, continuous delivery), usuários bot dedicados com suas próprias chaves de API são geralmente aprovisionados por sua organização.

Dado rápido: Como a sua loja virtual, a ferramenta Runtime Admin é um aplicativo React headless que é implantado no Managed Runtime.

Durante a construção da sua loja virtual, lembre-se das seguintes limitações dos ambientes do Managed Runtime:

  • Os ambientes só respondem a solicitações cujos cabeçalhos HTTP Host correspondem ao Nome de host externo definido no Runtime Admin.
  • O caminho / só aceita solicitações HTTP GET.
  • O tamanho da solicitação e da resposta não pode exceder 6 MB.
  • O tamanho máximo da linha e dos cabeçalhos da solicitação HTTP é 10240 bytes. Solicitações que ultrapassam esse tamanho retornam um erro HTTP 413 Content Too Large.
  • Os cookies, incluindo a solicitação Cookie HTTP e o cabeçalho de resposta Set-Cookie HTTP, não são aceitos por padrão. Eles podem ser habilitados definindo o atributo allow_cookies em um ambiente com o endpoint projects_target_partial_update. Você também pode ativar os cookies nas Configurações do ambiente no Runtime Admin. Os cookies são aceitos no PWA Kit versão 3.1.0 ou superior. Consulte Personalizar com cookies.
  • As solicitações com cabeçalhos que começam com _ não são aceitas. Essas solicitações serão descartadas.
  • As solicitações HTTP originadas de ambientes Managed Runtime gerenciado não usam endereços IP fixos. Para permitir solicitações de listas do App Server use o Intervalo de endereços IP da AWS para EC2. Para permitir solicitações de listas de Proxies, use CLOUDFRONT_ORIGIN_FACING.
  • O prefixo de caminho /mobify está reservado para endpoints gerenciados. Esses endpoints incluem:
    • /mobify/ping: Retorna um código de resposta HTTP 200 quando o ambiente está funcionando corretamente.
    • /mobify/redirect/$path: Retorna uma resposta parecida com projects_target_redirect_retrieve.
    • /mobify/proxy/$name: Retorna uma resposta de um proxy.
  • É possível ignorar o cache da CDN com este cabeçalho de solicitação HTTP: x-mobify-cachebreaker: 1
  • As allowlists de IP de ambiente aceitam até 250 endereços IP. Esse limite não pode ser aumentado.
  • Os cabeçalhos de controle de acesso de ambiente aceitam até 2 cabeçalhos. Cada cabeçalho:
  • O tempo de execução das solicitações do App Server está limitado a 20 segundos.
  • As rejeições de promessa não processadas interrompem a renderização do aplicativo.
  • O tamanho máximo de pacotes é 400 MB, e o tamanho máximo de todos os arquivos ssr_only e ssr_shared no pacote é 249 MB.
  • Os ativos estáticos que podem ser enviados e exibidos estão limitados aos seguintes tipos de conteúdo: application/javascript, application/json, image/png ,image/gif, image/jpeg, image/svg+xml, image/webp, text/css, text/plain e fontes (ttf, woff, woff2, otf, etc.). Todos os outros tipos de conteúdo precisam ser exibidos por um sistema externo.

Os Proxies do Managed Runtime apresentam outras limitações.

Inscreva-se para receber atualizações sobre a disponibilidade dos serviços do Managed Runtime no Salesforce Status.

Agora que você tem uma visão geral das principais partes do Managed Runtime, é hora de colocar a mão na massa! E um bom lugar para começar é o guia Enviar por push e implantar pacotes.

Antes de usar o Managed Runtime e o Runtime Admin, eles devem estar habilitados e você deve solicitar acesso a eles. Para habilitar o Managed Runtime e o Runtime Admin para sua organização, entre em contato com a equipe de contas do Salesforce. Para ter acesso, peça ao administrador do Commerce Cloud que adicione uma das seguintes funções à sua conta usando Account Manager: Managed Runtime User ou Managed Runtime Admin.