Tag Archives: DevOps

Managing feature flags with LaunchDarkly

I had the chance to work the Sitecore booth at MSBuild in Seattle last week and took the opportunity to walk around and meet some of the other partners in the Hub. A lot of folks are doing cool things, but one that caught my eye was the work being done by the LaunchDarkly team.

Feature toggling without deployment? Yes please!

Continue reading Managing feature flags with LaunchDarkly

Eleventh day of Christmas… Blogs A-Plenty!

On the eleventh day of Christmas, my true blog gave to me… eleven re-blogged posts!

ten women of Sitecorenine sessions of trainingeight tweets a-tweetingseven VSTS featuressix GIFS a-dancingfive Golden Rules!
Four Community Sitesthree Maturity Modelstwo Sitecore PaaS features, and Sitecore in a NuGet feed.

As a fun twist, each post has been given a new classic ‘link-bait’ title. You won’t believe your eyes!

  1. Three Easy Sitecore Instance Role Configurations
  2. Six Steps to custom TDS Post Deploy Steps
  3. Need Continuous Everything now? Read more!
  4. 7 Sitecore Burst videos… number 4 will surprise you!
  5. You wouldn’t believe what happened at Sitecore Symposium!
  6. This Big Bad Wolf won’t scare you after you read this post
  7. Are you using VSTS and NuGet? You need to read this now!
  8. Got Sitecore? Want HTTP/2? Your IT team is probably telling you no. Here’s why!
  9. Multi-tenant? Multi-site? And SSL? With Sitecore? Yes you can!
  10. I hate best practices and so do you (okay, so this one was already pretty link-baity…)
  11. Can’t find the roles in your TDS package? Read this to unlock the secret.

Third day of Christmas… Maturity Models!

On the third day of Christmas my true blog gave to me… three maturity models!

.. two Sitecore PaaS features, and Sitecore in a NuGet feed.

Customer Experience Maturity Model

Sitecore released a maturity model a while back to guide organizations through the various stages of engaging a customer.  Great for seeing where you line up and how you can get to the next stage. You can download the PDF here:

Sitecore Customer Experience Maturity Model

DevOps Maturity Model

Last year I released a maturity model for continuous improvement of your DevOps practices. I use this as a guide for helping put together a roadmap for organizations looking to improve their delivery. Download it here:

DevOps Maturity Model

SEO Maturity Curve

Nothing like a little search engine optimization to ring in the holiday season! Details of SEO might be constantly changing, but the maturity of investment in SEO is always there. Check it out:

the-seo-maturity-model-across-microsoft

Sitecore Production Deployments: The Big Bad Wolf

SPECIAL NOTE: This article is a lead up for my November 30th #SCUniversity session on Continuous Integration and Deployment. Register for the webinar now!

Do you need to secure 14 signatures and present technical documentation just to run a script on your production database? Does it take a group of enterprise architects to approve a change to your application? Or do you have no restrictions whatsoever but are so afraid of touching the production server in case the slightest change brings everything down?

You are not alone… the word ‘Production’ has become synonymous with ‘Hallowed’ and a culture of fear dominates all changes made to a working production environment. An upcoming production deployment can feel like the Big Bad Wolf is coming to blow your house down.

Big Bad Wolf reading bedtime story to wolf pup

Continue reading Sitecore Production Deployments: The Big Bad Wolf

Continuous Everything: The Art of Repetition

It is very fashionable to apply a single word to pretty much ANYTHING to try to get in on the latest trend. The current ‘Whatever-Ops’ trend (MarketingOps, ChatOps, OpsOps) is one such example. For a while, though, we’ve been having the word ‘Continuous’ thrown in front of a whole lot of activities in the software development world: Continuous Delivery, Continuous Improvement, Continuous Management. There’s a reason for this… repeatable processes are a key ingredient to predictable delivery. And predictable delivery means money in the bank!

Continue reading Continuous Everything: The Art of Repetition

TeamCity FTP plugin 501 error: Cannot accept argument

While investigating options for deploying Sitecore to Azure, I found a TeamCity deploy plugin that supported FTP (among other things). Unfortunately, after trying to get it up and running I ran into the following 501 error while using FTPES (explicit FTPS):

“Failed to upload artifacts via FTP. Reply was: 501 server cannot accept argument”

Investigating on the server, I found the following in the IIS server logs:

“Client IP on the control channel didn’t match the client IP on the data channel”

A little bit of Google digging later, I found some chatter on the issue on the plugin’s GitHub issues list. That thread pointed to a patch build with options to specify Active versus Passive in the FTP mode. It turns out I needed Passive, but the original plugin download didn’t support it.

If you also need this functionality, this is the link to the plugin developer’s build which supports an option to specify Passive versus Active on the FTP mode:

https://teamcity.jetbrains.com/guestAuth/repository/download/bt402/662499:id/deploy-runner.zip?guest=1

 

Sitecore DevOps: Deploying instance role configurations with solution

Those of you who have installed Sitecore in a scaled environment (i.e. multiple instances) know that the process can be somewhat tedious. To configure an instance to use a specific role, you need to manually enable/disable/modify config files to make the instance act as a delivery, authoring, or processing instance. Oh, do you also want to upgrade to the latest update? Be prepared to have to do it all over again.

While we wait for Sitecore to make this process a little bit easier, I decided that enough was enough and I wasn’t doing those steps anymore. Introducing the Sitecore Role Configs!

https://github.com/jst-cyr/Sitecore-Role-Configs

Inspired by the work in @kamsar’s SwitchMasterToWeb, the role configs capture the manual steps from those guides in a single role-specific file. Need to configure a processing instance? Drop the processing config file for your version of Sitecore.

Note: Hardening is not covered in these files, so keep that SwitchMasterToWeb handy!

At the time of writing, I’ve got Sitecore 8.0 Update 3 to Update 7 supported and will be working to get other versions in there as time goes by.

One day, I hope that the need for these files will be completely obsolete and I will laugh at how easy it is to deploy new roles of Sitecore. For now, though, happy deployments, and let me know if you find any issues and I’ll fix them up!