To get started with Force.com, all you need is a computer and an internet connection. What you don’t need are application servers, web servers, databases, and the costly provisioning and configuration of these resources. Instead, the Force.com platform provides an environment, also called organizations, which are simply provisioned in the cloud when you request them. An environment lets you instantly start developing and testing your cloud computing application, and you don’t need to touch a single server. You save precious time and can start building your application immediately.
In Force.com terminology, environments and organizations are synonyms. In other words, an instance of the Force.com platform is an environment and is also called an organization, which is frequently shortened to org. Throughout this article, environments and organizations will be used interchangeably. A good way to think about an instance of Force.com, is to think about Gmail: when you sign up for Gmail, you get a unique username and access to your private email account in the cloud. Similarly, when you sign up for a Force.com org, you get a unique username and private access to your Force.com cloud computing environment. Here are some important characteristics of an environment:
So an environment is an instance of the Force.com infrastructure and platform that lets you access, deploy or create applications with various feature sets, depending on the configuration of the environment.
Types of Environments
Broadly speaking, there are three types of environments:
As you spend more time with Force.com, you’ll notice you can implement many features within the production environment. For instance, you can easily build a custom object, field, or validation rule directly in your production environment without the need of a development or test environment. However, some features, like Apex Code, can only be created in development environments. Salesforce always recommends that you use a development environment when building a Force.com app. You can then use Force.com IDE and/orPackaging to deploy to production or commercial customers.
Typical Use of Environments
Depending on your relationship with salesforce.com, you may need one or more of these types of environments. If you are a customer or prospect, you will use a production environment to run your business. If you are a developer or partner, you will most likely have multiple development and test environments to build functionality and thoroughly test. If you are a customer, developer and partner, then you’ll have all of the above. Registered partners are eligible for additional environment options that are outlined below.
Environment Licenses and Upgrading
It is important to note that each environment has a license. This license is used to describe the type of environment. There are 4 production licenses: Group Edition, Professional Edition, Enterprise Edition and Unlimited Edition. Environment licenses can change, but they can only go up in edition, not down. So you can start with Group Edition, upgrade to Professional Edition, upgrade to Enterprise Edition and finally upgrade to Unlimited Edition. You cannot go the opposite way. So once you reach Enterprise Edition, you can only upgrade to Unlimited and not downgrade to Professional or Group Edition. Depending on the license you purchase, Force.com Edition will either run on top of Enterprise or Unlimited Edition. Therefore, you can transition from the Enterprise version of Force.com Edition to the Unlimited version, but not vice versa.
Developer Edition is a special development license that does not allow the conversion to production. The same is true for Sandbox. You cannot upgrade Sandbox, but you can purchase additional or different types of Sandbox if you have Enterprise, Unlimited or Force.com Edition.
Please note: Upgrading a license is different than upgrading the platform. When we release a new version of the Force.com platform, all editions and licenses are upgraded to this new release automatically. For example, as you read this article, all environments are on a particular release. When the next release goes live, all environments (which includes the various editions and licenses) will automatically be upgraded to the new release. See the Release Information page for more information about current releases.
Production Force.com environments store the live data that is actively used to run your business. Most of the production environments in use today are Salesforce CRM customers who purchased Group Edition, Professional Edition, Enterprise Edition, or Unlimited Edition. If you do not require any of the Salesforce CRM functionality, you can sign up for Force.com Edition.
When developing an application to use internally, you typically know the features and limits of your production environment. However, as a partner looking to build a Force.com application with commercial intent, it’s important to understand the different environments, thereby ensuring that the application you build will work in the desired environment. You can find a detailed feature comparison guide of the production Sales Cloud, Service Cloud and Force.com Edition environments on their respective pages.
You can develop a custom Force.com application for your own production use, for existing salesforce.com customers, or for any business or organization in the world. When building an application, it is recommended you use a development environment.
Development environments are used strictly for developing and testing apps. These environments contain test data that are not business critical. Development can be done inside your browser or with the Force.com IDE, which is based on Eclipse. There are two types of development environments: Developer Edition and Sandbox.
A Developer Edition environment is a free, fully-featured copy of the Enterprise Edition environment, with less storage and users. DE is a logically separate environment, ideal as your initial development environment. You can sign-up for as many DE organizations as you need. This allows you to build an application designed for any of the Salesforce production environments.
Sandbox is a nearly identical copy of your production environment available to Enterprise or Unlimited Edition customers. The sandbox copy can include data, configurations, or both. It is possible to create multiple sandboxes in your production environments for a variety of purposes without compromising the data and applications in your production environment.
Note: Since Force.com Edition runs on top of Enterprise or Unlimited Edition, you can potentially have the same number of Sandboxes listed below.
The multiple variations of these two environments are outlined in the table below:
Development Environment | User Licenses | Data Storage | API Enabled* | Notes |
---|---|---|---|---|
Developer Edition | 2 full CRM licenses 3 Force.com Platform licenses and more… | 5 MB | Yes | Sign-up is Free! |
Partner Developer Edition¹ | 20 full CRM licenses 20 Force.com Platform licenses and more…and more… | 250 MB(about 125,000 records) | Yes | This is a DE org with more storage, features and licenses. Free for enrolled partners. |
Full-copy Sandbox² | Same as production environment | Yes | This is a nearly identical copy of your production org including data and customization. You may order up to a maximum of 3 full sandboxes. Unlimited Edition includes 1 full sandbox. Enterprise Edition customers may purchase a full-copy sandbox for an additional fee. | |
Partial Data Sandbox | Same as production environment | 5 GB | Yes | Partial Data sandboxes include all of your organization’s metadata and add a selected amount of your production organization’s data that you define using a sandbox template. A Partial Data sandbox is a Developer sandbox plus the data you define in a sandbox template. It includes the reports, dashboards, price books, products, apps, and customizations under Setup (including all of your metadata). Additionally, as defined by your sandbox template, Partial Data sandboxes can include your organization’s standard and custom object records, documents, and attachments up to 5 GB of data and a maximum of 10,000 records per selected object. A Partial Data sandbox is smaller than a Full sandbox and has a shorter refresh interval. You can refresh a Partial Data sandbox every 5 days. |
Developer Sandbox² | Same as production environment | 1 GB | Yes | Developer Pro sandboxes copy all of your production organization’s reports, dashboards, price books, products, apps, and customizations under Setup, but exclude all of your organization’s standard and custom object records, documents, and attachments. You can refresh a Developer Pro sandbox once per day. |
Developer Sandbox | Same as production environment | 200 MB | Yes | Developer sandboxes are special configuration sandboxes intended for coding and testing by a single developer. Multiple users can log into a single Developer sandbox, but their primary purpose is to provide an environment in which changes under active development can be isolated until they’re ready to be shared. Just like Developer Pro sandboxes, Developer sandboxes copy all application and configuration information to the sandbox. You can refresh a Developer sandbox once per day. |
* This includes both the Force.com Web Services and Metadata API – limits can be found here
1.0Available for registered Force.com ISV and Consulting Partners
2. You can refresh each sandbox 29 days from its previous refresh or creation
Developer Edition is ideal if:
Partner Developer Edition is ideal if:
Sandbox is ideal if:
Best Practices and Development Considerations
Before you deploy your app to production or release it to customers, migrate your app to a dedicated testing environment where you can perform integration tests with large sets of data, do security checks for multiple users and profiles, and uncover bugs or discover enhancements you’d like to add. Automated test scripts can’t determine a user’s level of satisfaction with your app, so you’ll want to train several new users to evaluate your application in a real-world setting without affecting your business data. In essence, you’ll want to create another development environment that mimics your production environment, and have beta testers use it. You have multiple options for creating a dedicated testing environment. One is to create a sandbox copy of your production environment and deploy directly from your development environment to your sandbox. In this way, you’ll test not only the finished application, but the procedure used to deploy the completed application as well.
If you don’t have a sandbox, you can use a DE environment as your testing environment. The standard DE environment may be limiting because of license and storage limits. However the table below outlines larger test environments available to partners, customers, and developers:
Testing Environment | User Licenses | Data Storage | API Enabled* | Notes |
---|---|---|---|---|
Partner Test Edition(Enterprise/Platform Edition)¹ | 25 full CRM licenses 20 Force.com Platform licenses and more… | 1 GB(about 1,000,000 records) | Yes | This is Enterprise Edition with more storage, features, licenses and 3 Sandbox orgs |
Partner Test Edition(Professional Edition) ¹ | 10 PE licenses and more… | 1 GB(about 1,000,000 records) | Yes | This is Professional Edition with more storage, features, licenses and the ability to install Beta Managed Packages |
Sandbox² | See Development Environments for details |
* This includes both the Force.com Web Services and Metadata API – limits can be found here
1. Available for registered Force.com ISV and Consulting Partners
2. You can refresh each sandbox 29 days from its previous refresh or creation
Partner Test Edition (Enterprise/Platform Edition) is ideal if:
Partner Test Edition (Professional Edition) is ideal if:
Sandbox is ideal if:
Best Practices and Testing Considerations
Now that you have a better understanding of environments and what’s available for you to leverage, let’s take a look at a few scenarios that outline what a customer, developer, and partner may experience.
Scenario 1: You are a Developer looking to get started for free building a Force.com application
Scenario 2: You are a Customer who wants to build a new Force.com application for your production environment
Scenario 3: You are a Partner who wants to build a Force.com application to sell
Scenario 4: You are a Partner who wants to build and sell a composite app that integrates with Force.com
This article provides an overview of the various Force.com environments. The Force.com platform provides a variety of robust environments for developing and testing. Whether you are a developer looking to build a Force.com app for your production environment or a partner looking to commercialize your next SaaS app on Force.com, there are many environments you can leverage throughout the app life-cycle.