Continuous Delivery with Sitecore

5,076
-1

Published on

Every month, Sitecore brings together developers from across the North West to share learning's and discuss their experiences of working with the platform.

As Sitecore partners, we’ve been involved with plenty of these meet ups in the past, and so were pleased to not only host, but also present at, the latest user group event.

In July, Computerlovers’ Richard and Ben talked about what it’s like to work with Sitecore in an agile environment whilst adopting a continuous delivery approach.

Published in: Technology

Continuous Delivery with Sitecore

  1. 1.  What is it ?  Why do we do it ?  How do we do it ?  Integrating with Sitecore ?  What’s next ?  Q & A
  2. 2. Test Deploy PromoteFeedback Implement Build
  3. 3.  Lots of good stuff out there  Recent User group presentation & blog posts  Lee Cook (Aqueduct) Continuous Delivery  Kern Herskind - Exploring Sitecore Item Serialisation  Alexander Doroshenko - Sitecore Continuous Deployment: From Zero to Hero
  4. 4.  It fits with our Agile approach  Reduce Cycle time  Takes the pain out of releases  Automating the mundane leaves more time to innovate  Continuous Feedback leads to Continuous Improvement
  5. 5.  2 week Sprint Cycle  Deploy to UAT at the end of the sprint  Automated Functional & Regression Tests  Client Approval  Deploy to Production
  6. 6. Product Backlog Sprint Backlog Release Daily Scrum Sprint (2 weeks) Sprint review & Retrospective
  7. 7.  Team City Build Server  Solution built on every check-in  Run Unit Tests  Run Functional Tests  Alert dev team on failure
  8. 8.  Visual Studio, SlowCheetah, Config Transforms  NUnit  SVN (Moving to Git)  Team City  Nant, Powershell, Psake, Powercore  Sitecore Courier  Octopus Deploy
  9. 9.  Cucumber  Capybara with Selenium 2 (webdriver) and Poltergeist drivers  Selenium grid 2 hub/nodes for testing in parallel against both desktop and mobile browsers.
  10. 10.  Code is the easy part  Config transforms  Multiple environments  Different Server Profiles (CA/CD)  Code reliant on templates/content items
  11. 11.  Add Transforms to any xml file  Preview Transformations  Transforms run at build time  Works with Octopus Deploy
  12. 12.  Any config file will be merged at runtime – transform files will break Sitecore  3 Options:  Maintain config per environment  Manipulate with Powershell  Single transformation file run against all .config files in includes folder
  13. 13.  Manually create and install packages  Automate Package creation installation  TDS  Unicorn  Courier – more on this later
  14. 14.  Cruise Control  Nant Build Scripts  packaged executable  Nant Deploy Script  Custom config replacements per environment  Manual Package creation  All templates and layouts  Slow prone to errors
  15. 15.  Team City  Octopus Deploy  Packages  Sitecore courier + custom pipeline  Creates update packages delta changes  Reduce package size  Quicker to transfer  Quicker to install  Quicker to publish
  16. 16.  Introduce internal QA environment  Allows existing and new process to run in parallel  Test deployment process  Introduce more functional testing
  17. 17. • Build • Unit Tests • Smoke Tests Dev • Functional Regression Tests • Client Approval UAT • Release Prod 4hrs 4hrs Total: 8hrs
  18. 18. •Build •Unit Tests Dev •Automated Functional Tests •Smoke Tests QA •External Functional / Regression Tests •Client Approval UAT •Release Prod 0hrs 1 hr 1hr Total: 2hrs
  19. 19.  Templates & Layouts serialised to disk automatically on save/move/delete  Item’s checked into source control with code  Build runner generates a differential package against release tag  Update package included in the nuget package  Deployed and installed as part of release to each environment  Release tag updated after release to production  Next sprints work differential against last release
  20. 20.  Courier called using PSake via Runner. Build Parameters can be passed or use defaults
  21. 21.  Courier can install any item Templates, Layouts, System Items and Content Items  But should you?  Risk of overwriting user content  Content packages created and installed manually  Use defensive coding – If a sublayout requires a particular content item that isn’t deployed then hide the component
  22. 22.  Localised developer serialisation folders  Committed to Subversion/Git  Differential package generated using Courier and Serialisation tag  Sitecore Serialisation Issues  Path Length
  23. 23.  Moved to Team City  Automated Deployment Steps through Octopus to QA  Deployment time down from 4hrs to approx 1hr  Per sprint saves approx 1 day developer effort.  Bolstered internal Testing Suite  Reduced Cycle Time for issue resolution
  24. 24.  Git – Feature Branching  Automated deployments to Oxfam environments  Automatic load balancer switching – zero downtime  Increased flexibility to release  One click deployment
  25. 25.  SDN (http://sdn.sitecore.net )  Team City (http://www.jetbrains.com/teamcity)  Octopus Deploy (http://octopusdeploy.com)  SlowCheetah (http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd- 7e854ba318b5)  Sitecore-PowerCore (https://github.com/adoprog/Sitecore-PowerCore)  Sitecore Courier (http://sitecorecourier.codeplex.com)  Sitecore Continuous Deployment: From Zero to Hero (http://sitecoresnippets.blogspot.co.uk/2013/05/sitecore-continuos-deployment-from- zero.html#.Ueahq_nVDzw)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×