High-Availability (HA) vs Fault Tolerant (FT) Solutions

High-Availability Solution: As the word says, it means that it is highly available in all the times. Lets see it more clearly what is HA solution exactly means.

  • Consists of set (2 or more) of loosely coupled servers which have fail-over capabilities
    • Loosely coupled means it will be coupled together but not dependent on each other all the time. Not all the servers will be running at all times.
  • System is independent and self-contained
    • It is independent of any other servers in the same cluster. If something happens to one server, other servers will not be affected.
  • Yet the servers are health monitoring each other and if one fails, another will take over and get restarted.
    • Even though the systems are not dependent on each other, it does keeps an eye on the other servers and if one server fails or if the OS hanged, the other server will take over and the application will be started from the other healthy server.
    • For Example: Windows Server Fail-over Clustering
  • It can recover in the magnitude of seconds.
    • But there cannot be a zero-second downtime. But an assured backup.
  • Flexible – recovers any application running on any server in the cluster
    • It recovers any of the application running on any of the server in the same cluster. as they are all independent and one server’s failure does not affect any other server.

Fault Tolerant Solution: This kind of solution will provide no fault solution for the applications running on the server.

  • Tightly coupled systems which provide redundancy.
    • Unlike HA solutions, in FT the servers are tightly coupled, meaning the systems are dependent on each other. The applications running will be the same in both servers.
  • Single copy of the OS and application within running consistently on two physical servers.
    • Common OS for all the servers in the cluster. If any instruction is executed on one system, it is also executed on the second system.
  • If the main system has a hard failure, secondary system takes over. There is no downtime
    • It can bring up the application with zero downtime.

Now that we have seen some details on both, there should be some level of understanding already. To summarize the difference:

HA FT
Loosely Coupled Servers Tightly Coupled Servers
Failover Capabilities Redundancy Capabilities
Systems are independent Mirrored and dependent
Chances to have downtime No downtime

The pros and cons of HA and FT Solutions

Pro for FT: This solution provides great resilience to hardware faults. If one of the server is plugged off, the other takes over immediately without any downtime.

Con for HA: There will be a small downtime for the other server to take over if any of the above issue happens. HA does not provide zero downtime

Pro for HA: All the servers are independent of each other and so if there is any issue with OS in any one of the server, it does not affect the rest in the same cluster.

Con for FT: FT runs using a common operating system, so if there is any issue with OS in one of the server, then both goes down and there will be no protection from software fault scenarios.

Pro for HA: This solution does not need all the servers to be up and running all the time. The resources can be saved a lot if HA is the solution used.

Con for FT: In FT, both servers will be running all the time and consuming more or double the resources and cost. It is almost like running two servers to use only one server.

If the app is a critical app and you are not worried about minimal hardware failures, then FT could be the better solution. But for all other cases, HA could be the better solution. Again it boils down to the business requirement and the kind of applications it is used for and also the SLA that needs to be achieved.

Happy Solutioning!

Posted in My Own Posts | Tagged , , , , | Leave a comment

ShareThePoint SouthEastAsia Conference Slides

You can download all the slides for SharePoint SouthEastAsia (Singapore) Conference here.

Posted in My Own Posts | Leave a comment

Letter to all the SharePoint Interviewers

Hi all,

I hope you are doing good in your job and career and I feel good for you that you are in a position to decide which candidate can go in your company. I hope and wish this letter will help you a little bit more  in your process of selection.

Disclaimer: The below is purely my own opinion based on my own experience and I am not trying to insist on anything.

In this highly technological world, finding a best SharePoint professional is the most difficult task for anyone. First and foremost, there should be some job description with a title of the person you are looking for. It has to be too clear so that you get suitable resumes flowing in. I got a resume for SharePoint Developer and when I called her, she said she wants to become a manager. Then I asked why did you send your resume here? She said she wanted to find out if there is an opening for a manager!

First and foremost step I think should be, to decide the role you are looking for and what could be the best job scope for a person to fit into that role. You can never expect a Developer to be an Administrator unless or otherwise he is an Architect. You cannot expect an Architect to be a Developer unless or otherwise he is willing to do anything that is given to him.

Second will be to check through the resumes and filter effectively for your interview. With such an advanced networking world, the names can be googled to find some basic information about the person you are going to interview. Ask around or google! You might think if this is really necessary to do? Trust me, we had a very bad experience of taking someone who said he/she had worked in a well-known company for 7 years in .net but did not know how to open a solution file in Visual Studio. When I did some basic checks through my friend who was working in that company as a HR for a long time, found that this person was not in that company ever. This does not mean every one cheats but there are people who do this. Close one eye for all those that can, like the last day of work in his previous company if that does not differ too much.

Third, always do not prepare any technical questions and it has to be on the prompt if you are a good SharePoint Professional ;). When you go through the resume, you can decide on which questions you want to ask and again this is based on the role that the person is being interviewed for.

  1. If the person is a developer or an administrator, then ask questions related to his developing experience, how well he solves issues, what he did for performance tuning or what is his practice of coding if he is a developer and what is his day to day activity as an administrator or somewhat related questions if he is an administrator. You can sure ask one or two basic questions like how many site collections can be there in a content database or how many content databases can be used for a site collection. But don’t go beyond the basics as there is no one who knows the answer for everything that you ask and even if he answers it does not mean he will work effectively.

I will list down what I want to see in a person who is being interviewed for a developer and see if this list makes sense to you too.

  1. Can he communicate properly?
  2. Can he answer basic SharePoint questions?
  3. Can he do what he is asked to do? Attitude is the most important thing I want to see
  4. Can he answer at least one situational question based on his previous experience that he has mentioned in his resume?
  5. I always ask this question: What is the best thing you like about SharePoint, and what is the thing that you hate the most. Trust me I had decided based on the answer given to this question too.

More than enough to judge a person and I hope everyone will accept that these are the only thing we can see or get from a telephonic interview. When this is cleared then you can call him or her for a face to face interview. One advantage of face to face is that you can see how confident the person is when answering even though the telephonic will also help us to know by the shivering of the voice.

  1. If the person who is interviewed for an Architect, he or she should be very good in communication. Cannot proceed further if he or she fails in communicating properly. The questions need to be more situational and functional rather than technical. An architect is a person who is too sound theoretically. That does not mean he is not good in practical knowledge, he has to cross development first to become a good architect so he should be not bad in practical knowledge too. Need to check on his knowledge a little bit and then discuss about his approach to implementation of a project. His experience in SDLC process and how he will manage if there are many requests coming in at the same time. More on situational questions. This will sure help to know a person more than just asking technical questions.

I hope all these or at the least few are agreeable.

There are a few “completely don’t do this list” in my book.

  1. Do not ever talk about races when you are interviewing. Cannot and should not ask, “So! What was your previous company’s manager’s nationality? Were you ok with working along this particular race?”
  2. Don’t ask about SDLC if the person says I have been doing support only all along and my part is to develop what my team lead asks me to. Please don’t keep asking him the same questions again and again.
  3. Don’t ask the person if he has leaded a team before if that’s not mentioned in the resume and more over if the resume only talks about his job scope as developing web parts.

If you want a best person to be working with you, look for a good person and make him the best.

Positive Attitude and a Learning Interest are the only ones which cannot be taught, rest all can be. So find a person who has a good attitude towards work and with a positive learning interest and some working knowledge in SharePoint (this is a must too!!) and a little bit of passion towards SharePoint which might be travelling with him for long. All the best in your search…

Regards,

A SharePoint Interviewer who loves to interact, share and learn.

Posted in Interviews, My Own Posts | Tagged , | Leave a comment

Update Term Store Programmatically

Yet another useful tool uploaded here.

Description:

This is to help all those who are looking for a sample application to upload the term store programmatically. If there is a big list of items which needs to be updated, the best way would be to use an excel to migrate but this code will be a base to work on for the major codes. This is also for just a basic understanding on how to update the Term Store programmatically.

For the Reference, I have added Microsoft.SharePoint.Taxonomy and also tried to use the Elevated Permissions to add the term store. This is just a sample code, So I have used basic names like “My Group”, “My Term”. Please do go ahead and update it and change and do add more as per your needs. This is how it looks after you run the code. Check this tool from your Site Settings –> Term Store Management Tool

TermStore

Posted in My Own Posts | Leave a comment

PowerShell Script to break inheritance

I uploaded yet another PowerShell script here. This script is to break inheritance in all the items of a list, targeting files inside folders too. Breaking inheritance for a large list will help in performance testing.

Hope this helps

 

Posted in My Own Posts | Leave a comment

Powershell Script to aid Performance Testing

I uploaded a PS script in this link. This script will create the number of folders you specify, and the number of files you specify inside those folders for any document library or a SharePoint list. This will help to check on the performance for larger lists in your SharePoint site.

I hope it will be helpful for many.

 

Posted in My Own Posts | Leave a comment

Manage List and Library – Part 2

Filtered Views – More on Indexes:
When we create a view for a SharePoint List, its always advised to index the first column that is specified in the filter. Other columns may or may not be indexed as the view does not use those indexes. It always goes with the first column.

If the filter needs to be on two columns, then AND is always suggested rather than OR as OR filter increases the number of items returned and indexing will not help anymore.

Important Note:
1. Do not index look up column as it does not help in list view threshold. Instead use another data type column as primary or secondary index.
2. Check the recycle bin for deleted items. They are still residing in the database and it will also affect the returned list based on the filter used.
Let us see some examples which columns should be indexed based on our filter.
If we are filtering based on: New Items
Column to be indexed: Created

If we are filtering based on a specific column for eg.: Department
Column to be indexed: Department

3. Even if we created indexes based on the filters like above, certain additional operations might not be benefited by this as they still need to look into the entire library and perform the required operation.

Posted in My Own Posts | Leave a comment