IaaS vs PaaS vs BaaS

Here is a quick table detailing the separation of concerns between various Cloud providers. I look at traditional in-house, Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Backend as a Service (BaaS)

Continue reading

AWS CSA Associate – How I prepared

I’ve been working on AWS for quite sometime and figured I might as well get certified. My goal is to get AWS CSA Professional Certification but since the Associate exam is the prerequisite, I started preparing for it first.

Happy to report, I was able to pass the the AWS CSA Associate exam last week with 90% score. While preparing for the exam I ran into couple of blog posts on how to prepare and what to expect for the exam. This is my brief take on it.

Continue reading

AWS Certified Solutions Architect Associate Notes

While preparing for the AWS CSA Associate exam, I’ve put together few draft notes to help me revise on-going bases.


  • IAM is global
  • root account has admin access
  • by default new users have no permissions
    • access key id and secret access keys are only used for api access and not for console login
  • permissions are by granted by policies
    • administrator access to make someone an admin
    • effect: allow, deny
  • Role allows resources in aws to access other resources. Ex: EC2 can access S3.
    • Role types: Service Roles, Cross account access and Identity provider access

Continue reading

Sitecore 8 Requirements

Reading through the requirements for running Sitecore 8 implementation in production environment, here is my recommendation:

Systems Architecture and Hardware:

  • Quad core processor (up-to 8 threads)
  • 16 GB of RAM
  • Microsoft Windows Server 2012 R2 (64 bit)
  • Microsoft SQL Server 2014
  • MongoDB 3.0
  • IIS 8.5
  • .NET Framework 4.5.2

Solution Architecture

  • Sitecore 8 with xDB
  • Solr for Search

Development Applications

  • Visual Studio 2014

Sitecore Search Index Root Item is not defined

Exception: System.InvalidOperationException
Message: Root item is not defined
Source: Sitecore.Kernel
at Sitecore.Diagnostics.Assert.IsNotNull(Object value, String message)
at Sitecore.Search.Crawlers.DatabaseCrawler.Initialize(Index index)
at Sitecore.Search.Index.AddCrawler(ICrawler crawler)

This is one of the most common errors we see in the sitecore logs or when we try to login to sitecore desktop.

To resolve it, try the following:
– Go to sitecore/admin/showconfig.aspx
– Find all entries for <index> attributes. Ctrl+F “<index”.
– Ensure all index entries have <root></root> node specified.
– Ensure all <root> node paths are valid and do exists in the sitecore respective databases.

Upgrading Sitecore

Lessons learned while upgrading sitecore from 6.5 to 7.2 final release. While most of the steps are pretty straight forward and as documented by sitecore. There are some gotchas that you may want to keep in mind while upgrading it. Here are some of the notes that I’ve compiled while upgrading a project.

Upgrading to .Net 4.5.2

Running the automatic upgrade seems to have worked out fine while using Visual Studio 2013.

6.5 to 6.6

Link to upgrade documentation – http://sdn.sitecore.net/SDN5/Products/Sitecore%20V5/Sitecore%20CMS%206/Update/6_6_0_rev_120918/Upgrade%20to%20This%20Release/from65.aspx

Continue reading

Sitecore Unbucketable Item stored in an Item Bucket

While working with sitecore buckets, it is possible that you will encounter this warning on top of the item:

Unbucketable Item stored in an Item Bucket
This item is stored in an item bucket. However, it is not hidden because its template is not bucketable. If you want to hide this item in an item bucket, you must make the template that is based on bucketable

It could mean that either you have items in that bucket that are not bucketable or the current item itself is unbucketable but is placed inside a bucket item. For former, simply sync the item as shown in the screenshot below and for latter, select the parent bucket item, and try syncing it.

If you still notice this warning, you may want to revert and bucket the item again.
Hope this helps.

Cannot connect to the instance default of Coveo Enterprise Search hosted on localhost port 52800

Coveo Admin kept throwing this error:

Cannot connect to the instance default of Coveo Enterprise Search hosted on localhost port 52800.

Check for following current problems and try again :

The Coveo Enterprise Search service may not have been started.
You may not have administrator rights.
The Coveo Enterprise Search service log on account may have changed.

Turns out the problem was one of the index sources was pointing to a url that was not accessible.

The build stopped unexpectedly because of an internal failure

Ran into this issue the other day where one of the projects from the solution was not building and throwing this error:
Error 1 The build stopped unexpectedly because of an internal failure. Microsoft.Build.Exceptions.BuildAbortedException: Build was canceled. Failed to successfully launch or connect to a child MSBuild.exe process. Verify that the MSBuild.exe "C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" launches successfully, and that it is loading the same microsoft.build.dll that the launching process loaded. If the location seems incorrect, try specifying the correct location in the BuildParameters object, or with the MSBUILD_EXE_PATH environment variable. at Microsoft.Build.BackEnd.NodeProviderOutOfProc.CreateNode(Int32 nodeId, INodePacketFactory factory, NodeConfiguration configuration) at Microsoft.Build.BackEnd.NodeManager.AttemptCreateNode(INodeProvider nodeProvider, NodeConfiguration nodeConfiguration) at Microsoft.Build.BackEnd.NodeManager.CreateNode(NodeConfiguration configuration, NodeAffinity nodeAffinity) at Microsoft.Build.Execution.BuildManager.PerformSchedulingActions(IEnumerable`1 responses) at Microsoft.Build.Execution.BuildManager.HandleNewRequest(Int32 node, BuildRequestBlocker blocker) at Microsoft.Build.Execution.BuildManager.IssueRequestToScheduler(BuildSubmission submission, Boolean allowMainThreadBuild, BuildRequestBlocker blocker) D:\MaM\Server\ClientServices\Dev\ClientService 1.4\Conduit.Mam.ClientServices.Common.Initizliaer\Conduit.Mam.ClientServices.Common.Initizliaer.csproj Conduit.Mam.ClientServices.Common.Initizliaer
The solution was as simple as restarting Visual Studio.