Deploy
Install changes in staging and production environments.
Functional Headings
- Bootstrapping Infrastructure - Deploy
- Integrating Change - Deploy
- Preparing New Versions
- Validating New Versions
- Deploying Versions
- Managing Change - Deploy
Deploy Capabilities
- Bootstrapping Infrastructure - Deploy
- Master and Patch Branches — (sf) Individual package branches are stood up under a master folder in the Version Control System, where each branch under master represents the main packaging org or a patch org. (TBD)
- Pilot, Beta, and GA Rollouts — New capabilities are often available as an optional Pilot, followed by a public beta, before being designated Generally Available (GA). (TBD)
- Preview Channel — Development and validation of new practices is staged so that designated early adopters can use changes and enhancements first before the capability is available to all subscribers. (TBD)
- Integrating Change - Deploy
- Batch Size of One — Successful builds are automatically uploaded to a proxy test package, push deployed to a firewall sandbox instance, and subjected to a full set of regression tests. (TBD)
- Dev TSO Template Refresh — (sf) At the end of the sprint, a new development TSO templates is provisioned, in case it is needed for patch development. (TBD)
- GNG Baseline — Just prior to the sprint retrospective, a master pull request and an updated change log are generated, for review at the retrospective and Go/NoGo meeting. (TBD)
- Go/NoGo — Following the Sprint Review and Retrospective, stakeholders meet to determine if the new work increment is potentially releasable, or whether there are known impediments. (TBD)
- TSO Template Bot — A Selenium script automates provisioning the templates, and the confirmation email is processed as an inbound message and parsed. New template ID is captured in an object and made available to ChatOps and Visualforce Request form. (TBD)
- UI Regressions — Selenium Nightwatch tests are included where appropriate to assure that the user interface will continue to work as expected. (TBD)
- Preparing New Versions
- Milestone TSO Source Template — (sf) When creating a transient branch, a new trial template is provisioned to represent the new version. (TBD)
- New Version Agile Board — The version creation and validation process is tracked in a shared checklist and/or Agile board, and included in the issue tracker. (TBD)
- Transient Branch — To freeze the work increment being released, a temporary branch is created from develop, and a pull request created from the transient branch to packaging or production. (TBD)
- Tag Issues — Identify the changes for the new version by tagging the corresponding JIRA issues. (May be done in GNG Baseline.) (TBD)
- Automatic Change Log — The change log is determined by observing the Git pull request, with little or no human intervention. (TBD)
- Merge and Deploy — The new increment is merged, and deployed to the packaging org or production (using the Ant Migration Tool or SFDX tool). All metadata in the repository is deployed using a blank manifest (TBD)
- Tag Repository — The packaging or production branch in Git is tagged using the JIRA version ID. (TBD)
- Firewall Install Test — Install the new version into the firewall sandbox environment. (TBD)
- Upgrade Install Test — Upgrade a GA trial environment to the latest version. (TBD)
- Upgrade Preview TSO — Install the new version into the Preview TSO, which generates production-like environments. (TBD)
- One Button Milestone Install — The Firewall and Upgrade Sandbox Install and Test tasks are automated, and, on success, trigger the GA Trial success, and ultimately the TSO install. (TBD)
- No Pull Request Left Behind — Prior to merging a new work increment, open pull requests from prior sprints are reviewed, to ensure completed work is not left outstanding. (TBD)
- Version Agile Board — A version agile board tracks the progress of a set of changes from build to operate. The board provides columns to represents phases of work, such as To Do, Building, Certifying, Deploying. The board may include preview, general, and maintenance releases. (TBD)
- Validating New Versions
- Validation — The latest work increment, is examined at the close of each sprint, to determine whether the version is ready-for-primetime. For MPs, a milestone version is validated. For CSs, a full staging sandbox is validated. For MPs, patch versions are run through the same gauntlet as major versions. (TBD)
- Version Certification — Each new version is validated following a detailed checklist and exploratory test plan. If all checklist items pass, the version is certified for production use. Uncertified versions are deprecated. (TBD)
- Scope / Tests — Validation includes both regression tests and feature acceptance tests, in automated and exploratory form. #TestLikeACustomerr (TBD)
- Version Issue Resolved — The issue for the version is resolved in the New Version issue tracker and indicates its resolution status (failed certification, certified but not deployed, certified and deployed). (TBD)
- Toggle Tests — Validations are performed with all features toggled off, all features toggled on, and with only new features toggled on. (TBD)
- Release Ready — The packaging and pre-launch production orgs kept in a state of continual release readiness. (TBD)
- Scope / Docs — Validation includes the relevant help topics and other documentation (ApexDocs, Developer Guides). (TBD)
- Graceful degradation — Apex unit tests can make configuration changes during a test run to confirm features work as expected when enabled or disabled. (TBD)
- Health Check — The packaging and business orgs continue to pass the Salesforce Security Health Check following each major release, with a score of 80% or above. New subscriber orgs are reviewed with the Salesforce Optimizer before launch. (TBD)
- Deploying Versions
- Configuration Wizard — New implementation setup is streamlined through use of a configuration wizard that collect and updates settings. (TBD)
- Connected Deployment — Direct deployment leverages a connected application (and user credentials are not required). (TBD)
- Deploy From Hub — (sf) Using a secure Salesforce app in our business org, any certified version can be pushed to subscriber staging or production orgs, individually or in groups, typically with the latest features disabled, and other needed updates automatically applied. (TBD)
- Direct Deployment — (sf) New permissions and reports are deployed post-upgrade by Connected Deployment or by leveraging user credentials. (TBD)
- Feature Configuration Audit Trail — Any change to feature configuration (including validation rules) is recorded in a supplemental audit trail log and made available as part of Push Metrics. (TBD)
- Feature Toggles — (sf) Custom metadata feature toggles may be hidden from the subscriber and activated through the LMA. (TBD)
- Jumpstart Org — (sf) To assist with implementing a package for new subscribers, a Jumpstart trial is maintained with the latest GA versions for use by new implementations. (TBD)
- Org Details Object — (sf) To track additional detail about subscriber orgs, a custom object in the business org is linked to the LMA and the subscribers Account object. The org details aggregates the API applications installed for each subscriber, the instance, the my domain name, the production org ID, as well as the staging/preview sandbox IDs, and refresh history. Ideally, an automation posts an alert whenever a new org is added, to queue followup actions. (TBD)
- Patch Org Validation — (sf) Prior to re-launching the preview channel, the GA patch orgs are provisioned early and tested with a deploy to be sure the org provisioned correctly. (TBD)
- Push Major Upgrades — Queue automated deployments of new versions from build server o to individual subscribers or subscriber groups. On Force.com, Deploy Fom Hub queues deployments form the business org. (TBD)
- Rock Steady API — (sf) Global components are stable with a low regression rate, including behaviors of Global Apex class methods and variables, Apex triggers, custom metadata, custom objects, fields, validations, and workflows. (TBD)
- Rollout Tracking — The progress being made on a major version rollout is tracked in a shared checklist and/or Agile board. (TBD)
- Scalable Deployment — When Direct Deployment is used, scale agents on a platform like AWS, so that many subscribers can be upgraded at once. (TBD)
- Sharpen the AX — (sf) The AppExchange entry is updated to the latest version for each new GA major version, without concern of prompting a security review. (TBD)
- Toggle Off — Optional features promoted to GA or Beta in a release can be deployed in an activated or deactivated state and toggled on or off by the subscriber. (TBD)
- Upgrade Slot Select — Subscribers can select their own upgrade slot within a window, or accept a default upgrade date. (TBD)
- Zero Step Tolerance — (sf) Any upgrade steps are automated or optional and can be invoked by subscribers. (TBD)
- Managing Change - Deploy
- Staging Data Refresh — External IDs are included with standard and custom objects so that updated records can be pulled from production at any time. (TBD)
- External Regression Test Suite — New regression tests for Global API methods are created in an external package as part of the development task, and UI changes include modifications to the Selenium Nightwatch scripts. (TBD)
Please submit feedback to the DreamOps Success Group http://dreamops.org/group.