DB sharding vs partitioning

Hi there,
I came accross DB sharding/partitioning and realised that i will soon have to implement that concept but i am looking for the right option to choose from as it is new territory here.

Looking at it i would opt for sharding but is this really the way to go.
In overall i will have a user table that will grow really big and each user will have their comments, posts, messages, followers etc…

can anybody help me in terms of what i need and waht will be the best approach in terms of growth and reliability please.

Thanks so much for any help,

Regards

Jerome