Managed Runtime 개요

Managed Runtime은 PWA Kit 스토어프런트를 배포, 호스팅 및 모니터링할 수 있는 인프라를 제공합니다.

이 가이드에서는 Managed Runtime의 주요 요소와 액세스 방법에 대해 설명합니다.

Managed Runtime을 사용하려면 먼저 액세스 권한을 요청해야 합니다. Commerce Cloud 관리자에게 연락하여 Account Manager를 사용하여 Managed Runtime User 또는 Managed Runtime Admin 역할 중 하나를 추가하도록 요청하십시오.

환경은 Managed Runtime에서 호스팅하는 특정 스토어프런트의 모든 클라우드 인프라 및 구성 값을 설명하는 용어입니다. 환경은 개발, 테스트 등의 다른 용도로 배포되는 스토어프런트와 프로덕션 스토어프런트를 구분하는 데 사용됩니다.

Managed Runtime API에서는 environment(환경)을 "타겟(target)"이라고 부르지만 두 용어는 같은 것을 나타냅니다.

환경은 자동으로 확장 및 축소되는 매우 효율적인 마이크로서비스에서 실행되므로, 추가 비용 없이 필요한 만큼의 환경을 만들 수 있습니다. 예를 들어 단일 애자일 개발 스프린트 전용으로 수명이 짧은 환경을 만들거나, 스프린트 내의 단일 사용자 사례를 위한 환경을 만들 수 있습니다. 환경이 더 이상 필요하지 않은 경우 해당 파일을 삭제하는 것이 좋습니다.

Production 환경

Production으로 표시된 환경은 Salesforce의 지원 팀이 우선적으로 모니터링합니다. 다음 두 가지 방법으로 환경을 Production으로 표시할 수 있습니다.

  1. Runtime Admin 도구를 사용합니다. 새 환경을 생성하거나 기존 환경을 편집하는 방법에 대한 단계별 지침은 관리 가이드에서 환경 섹션을 참조하십시오.
  2. Managed Runtime API를 사용합니다. projects_target_create 엔드포인트와 projects_target_partial_update 엔드포인트 모두에는 is_production 매개변수가 있습니다. 환경을 프로덕션으로 표시하려면 이 is_productiontrue로 설정합니다.

기본적으로 최대 10개의 환경을 Production으로 표시할 수 있습니다. 한도를 늘리려면 지원 팀에 문의하십시오.

환경에서 실행되는 스토어프런트 코드를 번들이라고 합니다. PWA Kit에 포함된 개발자 도구를 사용하여 번들을 생성하고 Managed Runtime에 푸시합니다.

번들은 특정 시점의 코드 스냅샷입니다. 번들은 변경이 불가능합니다. 번들을 만든 후에는 변경할 수 없습니다. 이렇게 완전하고 정확한 번들 기록이 있으면 배포 문제를 쉽게 해결할 수 있습니다.

번들을 푸시한 후 Runtime Admin 또는 Managed Runtime API를 사용하여 번들을 "배포됨" 상태로 지정할 수 있습니다. 각 프로젝트에는 여러 번들이 있을 수 있지만 각 환경에는 배포됨 상태로 지정된 번들이 하나만 있을 수 있습니다. 배포됨 상태로 지정된 번들은 언제든지 변경할 수 있습니다. 자세한 내용은 번들 푸시 및 배포를 참조하십시오.

여러 환경을 쉽게 관리할 수 있도록 각 환경은 프로젝트에 속하고 각 프로젝트는 조직에 속합니다. 조직은 여러 개의 스토어프런트에 대한 여러 프로젝트를 포함할 수 있으며 각 프로젝트는 여러 환경을 포함할 수 있습니다. Managed Runtime 사용자는 여러 조직에 속할 수 있으며, 이 경우 서로 다른 작업 스트림이 구분됩니다.

각 조직은 총 최대 100개의 환경과 최대 10개의 프로덕션 환경을 가질 수 있습니다. 이러한 한도를 늘려야 할 경우 Salesforce 지원 담당자에게 문의하십시오.

조직은 Account Manager에서 생성되고 Managed Runtime에 복제됩니다. 조직의 멤버십은 Account Manager의 멤버십 설정에 따라 결정됩니다. 사용자는 멤버 또는 관리자로 조직에 속할 수 있습니다. 멤버는 프로젝트 역할이 할당된 Managed Runtime의 프로젝트에 대해서만 상호 작용할 수 있습니다. 관리자는 조직 내의 모든 프로젝트와 상호 작용할 수 있습니다.

사용자는 Managed Runtime 프로젝트에 다음 기능을 사용할 수 있습니다.

  • 탐색: Runtime Admin에서 프로젝트를 봅니다.
  • 리디렉션 관리: 프로젝트의 리디렉션을 관리합니다.
  • 배포: 새 번들을 배포하거나 배포를 이전 번들로 되돌립니다.
  • 팀 관리: 프로젝트에서 팀원의 역할을 보고, 추가하고, 초대하고, 제거하고, 편집합니다.

각 사용자에게는 수행할 수 있는 작업을 결정하는 프로젝트 역할이 할당됩니다. (사용자별로 역할을 하나만 할당할 수 있습니다.) 프로젝트 역할은 조직의 어느 사용자에게나 할당될 수 있습니다.

다음 표는 각 역할과 관련한 기능을 보여줍니다.

역할탐색리디렉션 관리배포팀 관리
관리자
개발자아니요
마케터아니요아니요
읽기 전용아니요아니요아니요

각 Managed Runtime 환경에서, 게시된 번들의 React 앱은 Node.js 환경 내에서 실행됩니다. 페이지 요청에 응답하고 결과를 렌더링하기 위해 PWA Kit의 렌더링라우팅 시스템을 통해 Express 웹 프레임워크를 사용합니다. 이러한 React, Node 및 Express의 조합을 앱 서버라고 합니다. (단, 엄밀히 말하면 앱 서버는 "서버리스" 기술을 기반으로 실행됩니다.) 앱 서버는 낮은 컴퓨팅 비용, 고가용성, 빠른 렌더링 및 대규모 확장 용량을 제공하는 클라우드 인프라에서 실행되도록 최적화되었습니다.

PWA Kit의 렌더링 및 라우팅 시스템은 로컬 개발 환경과 Managed Runtime 환경 간의 차이를 처리하므로 코드를 배포할 때 코드가 예측 가능한 방식으로 실행됩니다. 이러한 예측 가능성은 개발 팀이 번들을 더 자주 빌드하도록 유도하여 생산성을 높입니다.

현재 앱 서버는 Transport Layer Security(TLS, 전송 계층 보안) 버전 1.2 이상을 지원합니다.

모든 스토어프런트 번들은 Node 14.x를 사용해야 합니다.

환경 변수

앱 서버에서 실행 중인 코드는 다음 환경 변수에 액세스할 수 있습니다.

  • DEPLOY_TARGET: 환경의 ID
  • EXTERNAL_DOMAIN_NAME: 환경의 도메인 이름 세트
  • MOBIFY_PROPERTY_ID: 환경이 속한 프로젝트의 ID

앱 서버는 다음과 같은 몇 가지 엣지 서비스를 지원합니다.

  • 공격자로부터 환경을 보호하는 웹 애플리케이션 방화벽(WAF)
  • API 요청 속도를 높이는 프록시 서버
  • 요청을 캐시하고 페이지 로드 속도를 높이기 위한 컨텐츠 제공 네트워크(CDN)
  • 요청을 처리하고 리디렉션을 처리하는 엣지 함수

프록시 서버 및 CDN은 요청 프록싱 가이드에서 자세히 다룹니다. 요청 프로세서라는 엣지 함수는 캐시 적중률 극대화 가이드에서 다룹니다.

Managed Runtime의 엣지 서비스는 퍼블릭 클라우드 인프라 전체에 전략적으로 배포됩니다. 각 서비스는 더 빠른 성능을 위해 사용자에게 최대한 가깝게 배치됩니다.

조직, 프로젝트, 환경 및 번들에 대한 설정을 관리할 수 있도록 다음 두 가지 도구를 제공합니다.

  1. 웹 기반 UI인 Managed Runtime Admin
  2. 웹 기반 도구와 동일한 기능과 일부 추가 기능을 제공하는 REST API인 Managed Runtime API

환경에 새 코드 번들을 배포하는 것과 같은 일상적인 작업의 경우 Runtime Admin 도구를 사용합니다. 지속적인 통합 스크립트의 일부로 환경을 자동으로 생성하는 등 프로그래밍 제어가 필요할 때마다 API를 사용합니다.

관리자 도구를 사용하면 다음과 같은 다양한 설정을 직접 구성할 수 있습니다.

  • 허용되는 IP 주소
  • 현재 배포된 번들
  • 배포 지역
  • 프록시
  • 리디렉션
  • 사용자 권한
  • Production 환경 플래그

다음과 같은 일부 설정의 경우 지원 요청을 개설해야 합니다.

  • 정적 IP 주소(VPN용)

관리 도구에 대한 액세스는 Account Manager 역할과 API 키로 제어됩니다. 지속적 통합(CI) 및 지속적 전송(CD) 프로세스의 경우 일반적으로 자체 API 키를 가진 전용 봇 사용자가 조직에서 프로비저닝합니다.

재미있는 사실: 스토어프런트처럼 Runtime Admin 도구는 Managed Runtime에 배포되는 헤드리스 React 앱입니다.

스토어프런트를 구축할 때는 다음과 같은 Managed Runtime 환경의 제약 조건을 고려하십시오.

  • 경로 /는 HTTP GET 요청만 받습니다.
  • 요청 및 응답 크기는 6MB를 초과할 수 없습니다.
  • Set-Cookie 헤더는 지원되지 않습니다.
  • 앱 서버 요청 실행 시간 한도는 20초입니다.
  • 처리되지 않은 promise 거부가 있으면 앱 렌더링이 중단됩니다.
  • HTTP 요청 헤더 x-mobify-cachebreaker: 1를 사용하여 CDN 캐시를 우회할 수 있습니다.

이제 Managed Runtime의 주요 부분에 대한 개요를 살펴보았습니다. 이제 실제로 사용해 보겠습니다. 먼저 번들 푸시 및 배포 가이드를 참조하십시오.

Managed Runtime을 사용하려면 먼저 액세스 권한을 요청해야 합니다. Commerce Cloud 관리자에게 연락하여 Account Manager를 사용하여 Managed Runtime User 또는 Managed Runtime Admin 역할 중 하나를 추가하도록 요청하십시오.