Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Process for provisioning a cloud project

This topic is part of a series of articles related to getting started with Commerce (SaaS).

All development work is the responsibility of the Implementation Team. As a result, implementation teams need to initiate the request to provision Commerce (SaaS) environments in the cloud for Optimizely customers. This article outlines the process, environments, and resources involved to ensure a smooth transition for implementation teams and Optimizely customers.

Setup and configure

There are multiple data points that are needed to initiate a Commerce (SaaS) project. Optimizely uses Git source control and infrastructure tools to deploy Commerce (SaaS) websites to the cloud environment.

Optimizely does not support the use of File Transfer Protocol (FTP) and blocks use of port 21 in the PAWS environment.

The customer needs to provide Optimizely with the following data points during onboarding:

  • Email addresses for deployment notifications
  • Email addresses for outage notifications
  • Authorized implementation teams, or Optimizely Implementation teams, for project access
  • Public facing go-live, production URL**

Implementation team provides the necessary information via the project initiation form. Please work with your Onboarding agent to have them fill out this form on your behalf.

Additionally, the implementation team will authorize the GitHub account name insite-teamcity-build read-only access to the new repository for each Commerce (SaaS) instance/project in the cloud. If the GitHub repository does not exist, a private GitHub repository will be created and the account listed above will be authorized with read-only access.

Project initiation form

To provide the data points needed to provision the Commerce (SaaS) environment, submit a request. Select Commerce (SaaS) Support for Please choose your issue below. Select Project Initiation for the Commerce (SaaS) Request Type.

📘

Note

This form should not be used when requesting a PIM instance.

Environments

Optimizely will provision and maintain two hosting environments: Sandbox and Production. The Sandbox environment supports customer UAT testing scenarios, while the Production environment is the live site where commerce is conducted. The implementation team must host all development and test environments.

Commerce (SaaS) uses a mix of hosting services. The core of the application and database are hosted in Azure for new customers. Other services, including File Storage and Search, are provided through AWS.

Prepare for production

As you look to provision your production website, make sure that the following things are in place:

  • Check if there is a 'production' branch with extensions.dll and versionInfo.yaml in the GitHub repo.
  • Confirm the versionInfo.yaml for production matches sandbox.
  • Determine if the email domain SPF record has exceeded 7 (Mailgun requires 3, and the limit is 10) using this tool https://dmarcian.com/spf-survey/
  • If more than 7 records exist, you must reduce the number of records or use a subdomain for Mailgun.

📘

Note

As a best practice, content created (such as new CMS pages or content added to CMS pages) in the Development environment should be used for User Acceptance Testing, not for go-live content. Additionally, Optimizely assists in a one-time migration of content from the Sandbox environment to the Production environment prior to go-live. Once the site is live, any content modifications or new content should be created in the Production environment. To maintain PCI compliance, Optimizely cannot copy content from Production back to Sandbox; therefore, attempting to mirror Production in Sandbox is not possible. If content is created in Sandbox, it must be manually copied over to Production by the customer.

Basic pipeline

Workflow Pipeline

Integrate backend systems

The Windows Integration Service (WIS) used for integrating backend systems such as ERPs is the responsibility of the implementation team in coordination with the customer. The WIS relies on a close proximity to those systems and uses push/pull requests to transfer data between backend systems and the commerce application.

Database Requests

Optimizely Implementation teams may request a copy of a Sandbox database with written permission from the customer. Direct access to the database is not available, only copies. Please submit database requests to the support portal.

All projects must be PCI compliant. The implementation team assumes all responsibility for PCI compliance on behalf of the client.

Deploy code

ITo ensure a smooth process for conducting code deployments to Optimizely Hosting environments, the ensuing guidelines should be followed:

Target EnvironmentDescription
SandboxImplementation team pushes local git repository changes to the remote sandbox branch.
Server side extensions will be loaded from Git via Team City
Theme source is configured and project theme is initialized
Sandbox will always contain the latest build provisioned by Optimizely
Custom domains are not allowed
ProductionBase code updates/releases will be deployed via a set schedule.
Insite[CC1]  Software will deploy production updates via the schedule published in the Commerce (SaaS) Communication article in the Help Center.
Your team can opt-out of the scheduled upgrade and defer to another date
Please provide three (3) business days advanced notice.
Off-hours production deployments are available; please be sure to indicate this need in all production requests.
Submit deployment requests via the Code Deployment Request Form

Set up the local development environment

Deploy to Commerce (SaaS)

Deployment support

All prioritized requests should be submitted to and marked according to the status indicated below:

PriorityTimeline
Urgent – Impacting Critical Business ProcessLess than 2 business hours
High – Interruption to Business ProcessLess than 4 business hours
Normal – Interruption to WorkflowLess than 12 business hours
Low – Non-ImpactLess than 2 business days