Planning your Sitecore 9 upgrade?

With support for Sitecore 8.2 coming to an end 31st Dec 2019, several clients are planning their migration to Sitecore 9 if they have not done so already. This post describes the process and some of the tasks involved in upgrading from Sitecore 8x.

There are two main approaches when upgrading you might consider:
1. Upgrade existing instances – the upgrade is performed against the existing instances and rolled out to all environments.
Pros:

  • Additional infrastructure is not required for the upgrade

Cons:

  • Usually Requires a code freeze while the upgrade is rolled out to all environments.
  • Unanticipated Issues can arise during the upgrade that can cause delays in the development lifecycle.

2. Clean Approach – setup a clean environment and clean Sitecore instances, migrate data.

Pros:

  • Upgraded and tested in isolation of the current production instance.
  • Provides an opportunity to upgrade the OS & SQL.
  • Easily rollback if issues occur.
  • Code freeze to existing solution not required for the entire duration of the upgrade and bug fixes and new features can be rolled out and worked on in parallel to the upgrade.

Cons:

  • Additional Infrastructure is required for the new environments to run in parallel. We would need to spin up new servers to support the new environment as these would be running on different versions of the operating system and version of software to meeting the requirements of Sitecore 9.
  • We will have the additional overhead of managing two sets of environments for a period of time while.

The clean approach effectively means you a Sitecore 8x environment – current site and a brand new Sitecore 9 environment – for the upgraded site.

Once you have switched over to 9 you can decommission the old environment. Continue reading

Load Testing with JMeter Advanced

In my previous post in this series on load testing I provided an introduction to JMeter to help get you started in this post I’ll explore the following topics and provide solutions to some challenges you may come across while creating your load tests.

Continue reading

How to Prevent DEF from creating Duplicate items in Sitecore

I ran into an issue with Sitecore’s Data Exchange Framework v1.4.1 where my pipeline batches would intermittently create thousands of duplicate Sitecore items. This caused a bit of management overhead having to clean out the duplicates.  Following some investigation, I decided to add some defensive coding by introducing a Custom Resolve Sitecore Item Processor to replace Sitecore’s OOTB pipeline step and prevent duplicates from being created.

removeduplicates.jpg Continue reading

Troubleshooting Sitecore Solr Index

I’ve worked on various Sitecore implementations where the customer has often run into issues with data not being returned as expected the first thing I do now to troubleshoot is to check the Solr Index.

Check Solr Is Up

  1. If you are not sure of the address of your Solr instance you can locate the url in the following configuration file app_config/includes/Sitecore.ContentSearch.Solr.DefaultIndexConfiguration.config and the setting, for example: <setting name=”ContentSearch.Solr.ServiceBaseAddress” value=”https://localhost:8983/solr“></setting>
  2. Use Solr Ping to check the status of the master solr index http://localhost:8983/solr/sitecore_master_index/admin/ping?wt=json
  3. You should receive the following output with the status of OK:
    SolrPing

Continue reading

Handling failed messages with Deadletter Queue and Sitecore Workflow

In my last post, I implemented a message queue which decoupled our application and provided a level of redundancy for our messages. But what about messages that are not processed successfully? This could occur for a number of reasons there might be an issue with the consuming application, a network issue or even an invalid message request.

A Deadletter queue, also known as an undelivered-message queue is a holding queue for messages that cannot be delivered to their destination. They provide a mechanism for persisting your failed messages without continually trying to process the same message. The deadletter queue could then be monitored and any failed messages can be examined and appropriate corrective action taken.

deadletterqueuesitecore

Continue reading

Produce and Consume Messages with Sitecore

In my previous post, I looked at message queues and how they can be utilized in your solution architecture. In the second part of this series, I will explore how you can add messages to a Message queue (Message Publisher) and Consume messages (Consumer) from a message queue with Sitecore and AWS SQS.

Using the example of an Events Booking site where a user finds an event they are interested in complete an event registration form which gets submitted to Event Bookings Application via an API. The Booking Application is known to go down and it is not uncommon to run into connection issue with the API causing booking requests to get lost. The Booking Application is old and unreliable and occasionally goes down.

By adding a Message Queue we decouple the website from the booking application and provide a level of resilience. If an outage does occur or there is an API connection issue instead of messages being lost they will be persisted on the queue. When the booking application comes back online or connection has been restored the messages on the queue will get processed.

SitecoreMessageQueues

Continue reading