Tuesday, August 29, 2017

AWS Costing

If you ask any AWS geek , what is the biggest change they have noticed after moving On-Prem workloads to Cloud, you will mostly hear typical well known answers "better management" , "Less Operations overhead "...so on ..

One important trait which they aquire but will not acknowledge as they are not aware either is acquiring  a  "Mulah mindset" . [ for those who are wondering what mulah is, let me make it simple. mulah ~ money"]

Be an  Architect , IT manager, Developer one thing you need to be good at when working with AWS is costing. I know its hard , never had to deal with costing before so frequently  as old school style only involved painful money discussion during the budget cycle  when capital investment needs to be budgeted during initial stages of planning. 

Good part is, you don't need to have a Phd to understand costing but do need to spend some effort to get used to calculation. [ Paradigm shift is good thing]

AWS provides some good tools and lots of information to make life easier . Below are some useful links

Monday, August 28, 2017

AWS Elastic Beanstalk vs AWS CloudFormation

One question , i get in most of sessions when talking about Elastic Beanstalk is
"difference between Elastic beanstalk and CloudFormation"

I would like to keep this explanation very simple.

Use  Elastic Beanstalk when you want to deploy the application from supported developer tool and don't want to worry about provision of infrastructure prior to deployment. Elastic beanstalk framework will provision the infrastructure and deploy the code to servers.

Use CloudFormation  when you want a framework to define collection of related AWS resources and provision them in an orderly and predictable fashion

Important to Note 

AWS CloudFormation supports Elastic Beanstalk application environments as one of the AWS resource types

Detailed Information :


Elastic Beanstalk

Tuesday, July 11, 2017


Came across a very good , simple to understand comparison between AWS and DIY (Do-It Yourself)

Scale Up
Elastic Service(On-Demand/ When needed)
Assume Reliable Infrastructure
Assume Infrastructure Failure
Diverse Technical Expertise
Application Based Expertise
Application Unaware of Infrastructure
Application aware infrastructure
High Upfront Cost
Usage Based Cost
Design, Build, Operate
Limited Knowledge/ Shared Support
Showback , charge back challenging
Showback , Chargeback can be achieved by granular monitoring of usage

AWS vs Azure

Age old question .....

Check this comparison matrix


Tuesday, August 02, 2016

Polyglot Solution - Database Scaling

I keep getting question around database scalability and generally seasoned architects have a good idea about scaling the Databases by providing the polyglot solution.

This one is for the newbies who would like to understand more about database scaling, mainly in today's cloud world wherein just using one type of database is not good architecture strategy for prime time rollout of applications for larger audience with huge data exchange potential

If you do a google search "Polygot Persistence" you will get a large number of document detailing the definition

If you are looking for document more technical in nature , download  this document

Hope you have fun with Polyglotting!!!

Monday, March 30, 2015

Export Term Set to Excel - SharePoint Metadata Services - Powershell Script

# Add SharePoint PowerShell Snapin
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

 # File and Directory Location
$dirLocation = "D:\temp\TermStore\"
$date = get-date -Format yyyyMMdd
New-Item ($dirLocation + $date) -Type Directory | Out-Null
$file = New-Object System.IO.StreamWriter(($dirLocation + $date) + "\Terms.csv")

# Connect to site with MMS service connection
$taxonomySite = Get-SPSite -Limit 1
# Connect to Term Store in the Managed Metadata Service Application
$taxonomySession = Get-SPTaxonomySession -site $taxonomySite
$taxonomyTermStore =  $taxonomySession.TermStores | Select Name
$termStore = $taxonomySession.TermStores[$taxonomyTermStore.Name]

# Ampersands are stored as full width ampersands within the MMS database.
[Byte[]] $amp = 0xEF,0xBC,0x86

# CSV headers
$file.Writeline("Term Name,Id,Owner,CreatedDate,LastModifiedDate,TermSet,TermSetOpenStatus,GroupName")

# Term counter
$i = 0

foreach ($group in $termStore.Groups) {
    foreach ($termSet in $group.TermSets) {
        foreach ($term in $termSet.GetAllTerms()) {
            [Byte[]] $amp = 0xEF,0xBC,0x86;
            $file.Writeline("""" + $term.Name.Replace([System.Text.Encoding]::UTF8.GetString($amp), "&") + """" + "," + $term.Id + "," + $term.Owner + "," + $term.CreatedDate + "," + $term.LastModifiedDate + "," + $term.TermSet.Name + "," + $term.TermSet.IsOpenForTermCreation + "," + $term.TermSet.Group.Name);
            Write-Host -ForegroundColor Cyan  "# Exporting TermSet: " -NoNewline
            Write-Host -ForegroundColor White $termSet.Name -NoNewline
            Write-Host -ForegroundColor Cyan  " Term: " -NoNewline
            Write-Host -ForegroundColor White $term.Name -NoNewline
            Write-Host -ForegroundColor Green " - Done"        

Write-Host -ForegroundColor Cyan  "# Exported " -NoNewline
Write-Host -ForegroundColor Green  $i -NoNewline
Write-Host -ForegroundColor Cyan  " terms"

Thursday, January 29, 2015

Deploying SSL in multiple web application in same Server

I keep getting question on how to deploy SSL to multiple web application in same server. Found this great article to achieve the same


Wednesday, January 28, 2015

Error while crawling MySite users wherein MySite Web application is set up with SSL

Error Message:


An unrecognized HTTP response was received when attempting to crawl this item. Verify whether the item can be accessed using your browser. ( WebExceptionStatus: TrustFailure The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.; SearchID = 22908598-2E57-4053-96F5-FBB55B029959 )


Ensure the SSL cert is registered under "Manage trust" in SharePoint central Admin

Step 1: Export the SSL Certificate
  •  Open the cert from browser. Click on the lock  in address bar 
  • Go to the tab called “Certification Path”, select the root CA certificate and click “View Certificate”
  • Select the “Details” tab and click on “Copy to file”
  • Save the file in your machine

Step 1: Import it in SP Central Admin

  • Go to SP Central Administration  / Security / Manage Trust. Click on “New”, add the root CA certificate from the local machine 

This should do the trick