-
Sitecore Environments for Dev, QA, UAT and Production
February 2, 2015 Rodrigo Peplau 3
Background
Some time ago I found this Stack Overflow question discussing multiple aspects of serving a Sitecore solution during different phases of a project life cycle. The question was pretty old but still the only answer was not as good as I know it could be. Due of the relevance of this issue without a good response, I decided to write my version of the answer.
Premisses
So the question from Azeem Siddiqui starts by putting some premisses:
Our organization’s website is moving to Sitecore CMS but we are struggling with setting up the environments for Developers (4), Designers (4), QA persons (3), Authors (10-15) and Approvers (4-10) in a way where they can work independently, I know that there will be dependencies but idea is to minimize it.
Here are couple of rules:
1) Whoever is responsible for the change then they should do it everything until and unless there is any dependency.
2) If one team is working on one feature then it shouldn’t stop or effect other team’s work. For example, if QA is testing the feature then Derringers and Developers should continue their work on the same feature for new enhancements.
Common questions for those experienced with another CMS platforms and seeking to know how Sitecore works in the real life.
The Big Picture
I started my reply with a diagram illustrating a way to setup servers for a Sitecore project, allowing the team to work together without interfering each other.
How people work together?
1) Where the Designers will work? I mean where they will add their html, js and images? On which server? In Sitecore? In Source Control (TFS)?
2) How the Designers and Developers should work together? I know developers will work on their local machine’s in Sitecore. And will promote their work to Integration server but How they will get the Designers stuff? Let suppose the feature has gone into production successfully now only Graphics Design changes are required, let say font styles and some images then where Designers should make these changes? On which Server? And after that how that Sitecore instance will sync with other Sitecore instances. And for design changes I do not want developers for promoting any code or file.
Answer: Both Devs and Designers works at their local machines, using local Sitecore instances. They use TFS as the Source Control system so they can mutually integrate their work. Usually Designers works more in CSS, Javascrips, Images, Sublayouts (markups) and Developers at the code itself. We have a Continuous Integration server in place (Ex: TeamCity) deploying changes to 3 different environments – CI Server (for build healthcheck), QA Server (For QA) and Prod Server (for content edition and public access). When, for instance, a designer has to fix a layout issue, he will do that at his local machine, then commit changes to TFS. Next step, TeamCity will deploy changes to the CI server, if the build is Ok the QA person can trigger a build and test the fixes. If everything is working as expected, someone can trigger the build to the production server, and the fix goes live.
You have this second diagram showing details on how you can setup your Production server to separate Content Authoring and Content Delivery – Here is a search I found several blog posts on setting this up: sitecore content authoring delivery
How to deal with Database changes?
3) What is the safest way to sync the Sitecore environment/databases? Means whatever has been published into production website, we will need back in DEV, QA and UAT environments.
We do not want to do any manual promotion of code, html, js and image files. Is there any way to do these kind of things automatically via tool or Sitecore commands. Personally I do not like the Sitecore packages.
Answer: You need TDS (Team Development for Sitecore) as shown in the first diagram – Use this tool to serialize/deserialize items from one Sitecore instance to another. Then you can have the serialized files to TFS and share across the team and environments. The good thing is you can use TeamCity to automatically push items to CI/QA/Prod environments.
Where to find good documentation?
4) Do you know any good reference? Where I can find answers of similar questions? Any website, book, blog?
I know one document “Understanding Sitecore Deployments 6.2″ but designers part and how the different environments will be synchronized are not discussed over there.
Answer: The main source for info on Sitecore is their SDN – You can register free (or have an extended account if you own a sitecore license). Some other blogs were suggested, such as John West’s and Alex Shyba’s, as well as – why not – this humble blog I’m just starting.
Categories: Continuous Integration, Environments, TDS, Team City
Tags: Continuous Integration, Environments, TDS, Team City, Team Development for Sitecore
How would you do it: 2 levels menu
3 thoughts on “Sitecore Environments for Dev, QA, UAT and Production”
Leave a Reply Cancel reply
Proudly 9x Sitecore MVP
(2016-2024)
Localization
Recent Posts
Recent Comments
- navan on Meet MVPinny: the AI-Powered Sitecore Assistant
- Adriana on Content generation with Sitecore Connect and ChatGPT
- NAVAN on Automatic Sitecore NuGet upgrades with Powershell
- Hedipo S Menezes on Corey Peplau wrote this - WFFM conflict with Unity DI and a lesson on how Sitecore community is so amazing
- Rodrigo Peplau on ERROR [Content Testing]: Cannot find PhantomJS executable at ' (...) /data/tools/phantomjs/phantomjs.exe'. Aborting screenshot generation.
Archives
- June 2024
- April 2024
- February 2024
- December 2023
- November 2023
- August 2023
- July 2023
- January 2023
- February 2022
- December 2021
- November 2021
- March 2021
- July 2020
- February 2020
- September 2019
- July 2019
- April 2019
- March 2019
- December 2018
- February 2018
- January 2018
- November 2017
- September 2017
- August 2017
- July 2017
- March 2017
- February 2017
- November 2016
- September 2016
- August 2016
- July 2016
- April 2016
- November 2015
- September 2015
- July 2015
- April 2015
- March 2015
- February 2015
Categories
- Actions
- Active Directory
- Analytics
- Architecture
- Bug fixing
- CDP/Personalize
- ChatGPT
- Content Edition Experience
- Content Hub
- Continuous Integration
- Dev
- Development
- Environments
- Experience Editor
- Experience Forms
- Front-end
- Health Check builds
- Helix
- How To
- LDAP
- MVP
- MVP Summit
- MVPinny
- Phantom JS
- Powershell
- QA
- Richtext Editor
- Rules
- Security Provider
- SIF
- Sitecore 9
- Sitecore API
- Sitecore Community
- SItecore Connect
- Sitecore Modules
- Sitecore Rocks
- Sitecore Rule Processor
- Sitecore Symposium
- SPE
- SPEAK
- SUG
- Support Ticket
- TDS
- Team City
- Uncategorized
- Upgrades
- Visual Studio
- WFFM
- Workflow
- XConnect
- xDB
- XM Cloud
Hi Daniel,Your post is awesome with lot of inotomafirn.I am dealing with the same situation where we need to access sitecore content along with financial data from REST. REST is hosted on the main sitecore site. We have only one communication channel available between Mobile app/site to server via REST.svc. I already have setup the device with querystring(api=1). I was wondering what can be used as a layout? I have tried the .aspx with no success yet. Can you give me some more inotomafirn about accessing the sitecore for API from REST? Is there a way to avoid direct sitecore access from the mobile app and still get the response in xml/c#/json object? We are doing this to get the Sitecore context to gain the benefit of sitecore resources rather than just accessing the content by targeting the field values.Any help much appreciated,Regards, VP
Hello Pilar,
I think you are looking for Sitecore Item WebAPI (https://sdn.sitecore.net/upload/sdn5/modules/sitecore%20item%20web%20api/sitecore_item_web_api_developer_guide_sc65-66-usletter.pdf). This is a REST API you can use from any web technology.
Wow, this is in every recspet what I needed to know.