- Architectural Overview
- System Requirements
- Deployment Checklist
- Deployment Tools
- Building an Environment and Tiers
- Building a Development Environment
- Building a QA/Staging Environment
- Building a Single Server Deployment Environment
- Building Load Balanced Network Cluster (Web Farm) Deployment
- Deployment Security and Access
Commerce solutions by default can have a lot of complexity and connections in order to operate and support the business needs of your organization. The ECF provides a solid foundation to adapt and integrate as you need, but like any good technology solution a matching process is necessary to control complexity, streamline development, and increase quality.
There are plenty of good approaches for development from classic to iterative and everything in between. How you plan, build, design, integrate, test, and deliver your solutions is up to you, but at a minimum you should adopt some key approaches to standardizing your process as much as possible to make it easy to continue to maintain your solutions and be able to better leverage and create new solutions.
Here is a baseline set of stages for your ECF project.
It is always a good idea to coordinate your requirements, deployment architecture, systems integration needs, and infrastructure upfront. Good planning and preparation will save a lot of time and effort.
During this stage, the primary development of your commerce solution occurs with a strong focus on requirements and iterative delivery with constant communication with your end users and customers. The more you can communicate and show progress during this phase the more solidified your efforts and communication will be as you move into integration and testing.
At a minimum you will be integrating to at least two or three additional systems when you deploy your commerce solution and more than likely it will be more than that depending on the complexity of your solution. Systems integration is always a challenge and you should position yourself with access to the appropriate systems and of course understand the integration approach and options.
In addition, the ECF supports the notion of leveraging the framework by integrating 3rd party tools and components. For example, you may decide that you want to use a menuing component or a content editing component for content administration. You can easily replace existing ECF components and controls with 3rd party vendor products as you wish.
Once you have completed the core development and integration it is critical that you thoroughly test and verify your system from all sides. This includes the public facing portion, business logic you have developed, the backend systems and all interfaces you have with third party systems and controls. It is also important that you test your solution in conjunction with the expected business processes and operational support teams that will be operating and managing the solution.
Deploying your ECF solution will entail appropriate planning and timing to roll out your solution into a live or production environment. Your deployment may take different forms such as a cut-over from an existing system, or if you have a new system, you will simply launch your new site. In either case, proper planning and preparation of this will ensure your customers initial experience will be a good one.
If you have done a good job with the above stages, then the final stage is ongoing maintenance, enhancements, and improvements that are all part of growing and supporting your commerce solution.
ECF is a scalable platform that can be deployed in a wide range of deployment environments, either on a single server, virtual machine, or large web farm network clusters. Below is a helpful illustration of the logical and physical architectural layout of an ECF deployment (click on the thumbnail to enlarge the image):
Before deploying ECF, ensure that your servers satisfy the System Requirements.
Take a look at the Deployment Checklist to mark off different tasks that need to be verified for a successful deployment.
There are different tools available to deploy ECF solutions, including using our own Installer to deploy a vanilla site if you prefer. If you are pushing changes made on a development and QA environment, then it is a matter of copying Web files to the production server and ensuring that each Config File is pointing to the correct servers.
An easy method for copying Web files over to a new server is Richcopy, a powerful GUI wrapper for Robocopy, the standard file duplication command-line utility included with Windows Vista, Windows 7, and Windows Server 2008
There are numerous copy utilities available to users; if you currently use a utility that suits your need, then it should be a capable deployment tool for ECF solutions.
There are multiple ways to architect ECF development environments, deployments, and tiers. When developing an ECF solution, a typical setup includes a development, QA/Staging, and single or clustered server environment.
For other, less common architectural considerations, a general explanation of application deployment environments and n-tiers is explained here: http://msdn.microsoft.com/en-us/library/ee658120.aspx.
Typically, you can build a developer/workstation environment by following these step-by-step installation guides:
It is highly recommended to begin all ECF development using the SDK package and then utilizing the Full Source Code as a reference to see how the code itself works.
A QA/Staging environment is the intermediary between a development and deployment. This is the testing ground for changes made in the development environment. A QA/Staging environment is integral for easily and conveniently moving Web files across from different environments (e.g. moving files from testing to production).
QA/Staging environments are composed of at least two components: QA/staging server and QA/staging database. Often, a QA/staging server is a mirror of a production environment, but designed for testing functionality and changes made during development before deploying to a live production environment.
To build a QA/staging environment, follow these steps:
- Ensure that the QA/staging server satisfies the System Requirements
- Configure your QA/staging database server and ensure that your configuration files point to that database
- Configure your QA/staging server as you would a typical installation of ECF
For single server deployments of ECF solutions, go to the Single Server Deployment document for more details on how to setup this type of production environment. Changes from your QA/Staging server are pushed to your server using whichever copy utility you choose.
For steps on how to deploy ECF in a network cluster, go to the Deploying ECF in Load Balanced and Clustered Server Environments document for more details on how to setup this type of complex production environment.
Once your ECF solution is deployed, protecting and securing your deployment becomes a high priority. Here are some high-level security checks you can do to ensure that Commerce Manager access is restricted.
- Change the default password after a fresh installation of ECF
- Enable a Firewall to restrict remote access to Commerce Manager
- Keep Commerce Manager access available only within your internal network--not publicly accessible. If you need remote access to Commerce Manager, a VPN solution is highly recommended.
- Setup Roles and Permissions for users that do have access to Commerce Manager
- Limit database access by enabling SQL or Windows authentication.
- Enable SSL on your public site
- Set appropriate File and Folder permissions